Красно-зеленый TDD — Агентные инженерные паттерны — Блог Саймона Уиллисона
Красно-зеленый TDD — Агентные инженерные паттерны — Блог Саймона Уиллисона
Полный перевод, конспект и структурированный разбор материала
Перевод
Руководства > Паттерны агентной инженерии
Red/green TDD (Красно-зеленый TDD)
«Используй red/green TDD» — на редкость лаконичный способ получить более качественные результаты от ИИ-агента для кодинга.
TDD расшифровывается как Test Driven Development (разработка через тестирование). Это стиль программирования, при котором вы гарантируете, что каждый написанный фрагмент кода сопровождается автоматическими тестами, доказывающими его работоспособность.
Наиболее строгая форма TDD — это разработка сначала через тесты (test-first development). Сначала вы пишете автоматические тесты, убеждаетесь, что они падают (выдают ошибку), а затем итеративно дорабатываете реализацию до тех пор, пока тесты не пройдут успешно.
Как оказалось, это потрясающе подходит для ИИ-агентов. Серьезный риск при работе с ИИ-агентами заключается в том, что они могут написать нерабочий код, или создать ненужный код, который никогда не будет использоваться, или и то, и другое сразу.
Разработка сначала через тесты помогает защититься от обеих этих распространенных ошибок, а также гарантирует создание надежного набора автотестов, защищающего от регрессий в будущем. По мере роста проекта увеличивается и вероятность того, что новое изменение сломает существующий функционал. Наличие всеобъемлющего набора тестов — безусловно, самый эффективный способ поддерживать работоспособность этих функций.
Важно убедиться, что тесты падают до того, как вы напишете код для их успешного прохождения. Если пропустить этот шаг, есть риск написать тест, который уже проходит (зеленый), и в результате вы не сможете должным образом проверить и подтвердить вашу новую реализацию.
Именно это и означает «red/green» (красный/зеленый): на «красной» фазе мы видим, как тесты падают, а на «зеленой» — подтверждаем, что теперь они проходят успешно.
Любая хорошая модель понимает фразу «red/green TDD» как сокращение для гораздо более длинной инструкции: «используй разработку через тестирование, сначала напиши тесты, убедись, что они падают, и только затем внедряй изменения, чтобы они прошли успешно».
Пример промпта: