Белые компании, которые не нарушают законодательство и нанимают по трудовым договорам, проигрывают галерам — им надо платить большой подоходный. К примеру, для Oracle сотрудник с зарплатой в $4k обходится в $7k/mo, а галера может платить $5k на едином. В результате, у нас нет офисов разработки Facebook, Google, MS. Программисты теряют в деньгах, и вынуждены ехать в другие страны за интересными проектами. Эта система поможет местным продуктовым компаниям, которые хотят работать вбелую, показыывать обороты и привлекать инвестиции.
По какому критерию большой? Red Hat, Percona, Skyeng всегда работали на удаленке. Это надо за деревьями леса не видеть, чтобы думать, что нет крупных проектов с удаленкой.
Вписывать в трекер больше часов, чем реально, и продавать один код двум заказчикам — это, конечно, успех.
согласен, байкшеддинга я стараюсь избегать
Покрытие кода не дает уверенности, к сожалению. Я как-то исправлял ошибку, и вместе с ней тест, который проверял, что поведение ошибочно. Ошибка заключалась в том, что метод возвращал константу 1 вместо пустой строки. Прямо так и было написано: return !(int)(bool)$result; а в тесте assert is_int(), assert >0;
Вообще, бизнесу не нужна уверенность, бизнесу нужны продажи.
Конечно! Предлагаю Вам тоже почитать ;) Сможем обсудить по делу, буду рад!
Возможно, рекламировать свои продукты в комментариях без добавления полезной для читателей информации в контексте статьи — не лучшая идея.
В мире бизнеса нет понятия «дорого», есть понятие «выгодно» :) В Oracle переписывают, но статья не про него.
Я специально избегаю темы SOA/microservices. Статья вышла на 7 печатных страниц + примеры кода — это и так слишком много. Service mesh, saga — темы для отдельных работ. Тема обеспечения единственности исполнения достойна целой книги.
В статье как-раз много примеров использования фасада и композиции. Пакет в PHP — примерно то же, что в js, python и home brew :)
Темы «php умирает», управление SBOM, покрытие тестами и документирование — это разные вопросы, и каждый достоин большого обсуждения не в одном комментарии.
Чувствую, что Вы не видели проектов на ноде, не собирали фронт Gulp-ом :) В мире веб-разработки обратная совместимость обеспечивается далеко не всеми популярными платформами.
Да, редакция убрала PHP из заголовка и оформила иллюстрацией. Java на серверах — да, но правила и guideline для мобильных приложений меняются часто, и без обновлений аппы убирают из маркета. Python тоже касается, особенно касательно перехода с 2 на 3. JS в меньшей степени, однако, непонятно что лучше — считать null объектом, или поломать BC.
Может быть и бесплатным, при соблюдения ограничений их нестандартной лицензии. Запрет для «third parties other than your employees and contractors to access (Sentry), so that such third parties directly benefit from the error-reporting or application monitoring» для использования в enterprise-среде, в группе компаний не подходит. Для маленьких проектов, где все оформлено в рамках одного субьекта — нормально. Но доступ в sentry сотрудников и контрактников, у которых договора с разными юридическими лицами, из разных стран — нарушение. Впрочем, аутсорсинг на такие вещи часто забивает.
Здесь сразу три вопроса.
1. Файловые логи, конечно, не рассматриваются. Сервисы зачастую работают на «бездисковых» блейдах, в которых стоят небольшие диски только для запуска OS.
Вариантов решений несколько. Мне понравилось решение с on-premise sentry, когда логи отправляются в sentry, который запущен на собственном сервере, однако sentry дорогой.
Популярный вариант — ELK, но простым решение назвать нельзя, elastic — капризный монстр. На днях ребята жаловалсь, что попробовали просто переключить на него монолог — эластик стал ругаться на неверный формат данных, надо разбираться.
Иногда делают по классике — из приложения в syslog, а дальше аггрегация на центральном севере, но надо понимать, что syslog медленный, и в стандартных реализациях есть ограничение на размер записи, всего несколько килобайт, так что записать в лог пользовательский ввод не получится.
2. Надо проектировать поддержку глобального сквозного идентификатора событий в сервисах, по этому идентификатору можно будет вытягивать логи по всем сервисам. Событие — это http-запрос от пользователя, запуск по cron или задача, которая выполняется в заданное время.
3. А дальше уходим в тему event sourcing и, возможно, saga.
починайте з контекстiв
Объем кода не имеет значения. Влияют другие факторы. Важен так называемый «Software Bill of Materials» — компоненты ПО, библиотеки, зависимости. Проблем с кодом приложений обычно намного меньше, чем с зависимостями. Когда любой кодер в команде имеет право выполнить composer require или npm install без анализа поддержки библиотеки, отправить обновленный список зависимостей в работу, а затем уволиться, сроки обновления версии php можно называть от полугода до года. Когда SFBM управляем, а QA имеют отработанную схему тестирования, срок обновления даже очень большого объема кода на следующую мажорную версию — до месяца.
В этом и суть статьи.
Когда уровень квалификации специалиста непонятен — это Уолли из комиксов про Дилберта! :) Если что-то нельзя оценить — это просто не часть бизнеса. Это может быть важная часть жизни, но с бизнесом это не связано.
Переезд в облако — это уровень компетенции CTO и SRA. CEO может поставить задачу CTO оценить требуемые ресурсы, ожидаемое изменение SDLC и SLA.
А планы и должны «ехать». Планы — это цель + критерий успеха с milestones. Регулярно измеряем. Не вписываемся — меняем или критерий оценки, или задачу, или исполнителей.
Односторонняя коммуникация — это молитва, по приказам надо докладывать о ходе исполнения и по результатам. Декомпозиция выполняется строго до уровня квалификации исполнителя, иначе будет или «чайка-менеджмент», или «микроменеджмент». Соответственно, для тимлида и сисадмина нужно делать разный уровень декомпозиции. Остальные темы достойны отдельных статей.
Считают. В Европе нет единого налога, там просто сумма до налогов. Для того, чтобы нанять здесь людей легально, надо тратить больше, чем в восточной Европе. Здесь человек выбирает между $4k в Oracle вбелую, или $5k по единому. Например, в Oracle менеджмент выбирает между украинцами по 7 и поляками по 7. Найти 100 человек проще в Польше, потому что там нет варианта «5 без налогов».