Идеи и инсайты · Страница 9

Исследуем AI-first разработку, кодовые ограждения и архитектуру одноразовости.

Ваш доменный слой импортирует Postgres. Ваш CI всё равно.

Диаграммы чистой архитектуры отлично смотрятся на доске. Вот как заставить пайплайн сборки принудительно соблюдать направление зависимостей, чтобы доменный код не мог обращаться к инфраструктуре.

Ваша архитектурная диаграмма уже ложь

Архитектурная документация гниёт в тот момент, когда вы её сохраняете. Вот как поддерживать её в актуальном состоянии с помощью диаграмм, генерируемых из кода, ADR и автоматизированных архитектурных тестов.

Ваш цикл повторов предполагает, что первый запрос не удался. Скорее всего, это не так.

Таймаут или сбой не означают, что ваш API-запрос был потерян. Вот как ключи идемпотентности делают повторы безопасными, и как паттерн хранения на самом деле предотвращает дублирование.

У вашего веб-сервиса есть путь корректного завершения. Это и есть баг.

Crash-only софт обрабатывает каждый сбой как крах, а каждый запуск — как восстановление. Для веб-сервисов это означает удаление логики завершения и проектирование состояния, которое переживёт kill -9.

Как убить выжившего мутанта, когда вы не понимаете, что он изменил

Мутационное тестирование нашло выжившего, и вы понятия не имеете, что делает мутация. Вот пошаговый метод написания правильного теста без предварительного понимания мутанта.

Код аутентификации нуждается в 90% покрытии мутациями. Ваши строковые утилиты — нет.

Почему принудительное единое покрытие мутациями для всей кодовой базы — ошибка, и как установить пороговые значения для каждого модуля в соответствии с реальным риском.

Ваши тесты проходят. Mutation score — 40%. Вот что на самом деле говорят выжившие мутанты.

Code coverage говорит, что всё в порядке. Mutation testing говорит, что ваши тесты — в основном декорация. Вот как выжившие мутанты выявляют этот разрыв и как его устранить.