ci-cd

7 posts

Ваш API сломался в продакшене, потому что CI тестировал код, а не contracts

Большинство CI pipelines находят синтаксические ошибки и логические баги. Они пропускают изменения, ломающие обратную совместимость API contracts, которые реально валят продакшен. Вот как это исправить.

Каждый раз, когда API ломался в продакшене у моей команды, он проходил CI. Все разы. Юнит-тесты были зелёными. Интеграционный набор тестов проходил. Деплой…

Abstract interpretation звучит как требование для PhD. Больше это не так.

Как запускать формальный статический анализ в CI-пайплайне с помощью Infer, с рабочими конфигами и реалистичными компромиссами.

Abstract interpretation — это тот термин, от которого инженеры закрывают вкладку. Звучит так, будто нужен семестр теории решёток, чтобы понять. Большинство…

Ваша литературная программа сломана, пока CI не может сделать tangle без вас

Literate programming обещает единственный источник правды, но ручные шаги weave и tangle ломают CI/CD-пайплайн. Вот как автоматизировать извлечение и генерацию документации, чтобы ваши Markdown-файлы оставались каноническими.

Если ваш пайплайн сборки не может работать без того, чтобы вы открыли терминал и набрали , у вас нет литературной программы. У вас есть дневник с прикреплённым…

Ваш компилятор проверяет синтаксис. Ваши тесты должны проверять архитектуру.

Большинство команд документирует правила архитектуры в вики. Вот как записать их в виде исполняемых тестов, которые ломают CI, когда ваш граф зависимостей уходит от задуманного.

Ваш набор тестов проверяет, что возвращает 42 при правильном входе. Он не проверяет, что может импортировать . Компилятор доволен и тем, и другим. Ваши…

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

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

Кто-то в вашей команде только что импортировал в . PR компилируется. Тесты проходят. Код-ревью — триста строк, и никто не замечает. Три месяца спустя вы хотите…

Мутационное тестирование занимает 4 часа. Как команды реально используют его в CI?

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

Если ваш набор мутационного тестирования занимает четыре часа, поздравляем. Вы доказали то, что все и так подозревали: в вашем тестовом наборе есть пробелы. Вы…

Детерминированные guardrails для AI codebases

Проверка человеком непоследовательна. Проверка AI ещё хуже. Единственная масштабируемая защита для codebases, сгенерированных AI, — детерминированное enforcement: правила, которые валят сборку, а не советы, которые игнорируют.

Стандартный совет для кода, сгенерированного AI, звучит так: «проверяйте его внимательно». Этот совет верный и бесполезный в масштабе. Разработчик, проверяющий…