Сначала тесты, потом код — звучит как лишний шаг, а…
Сначала тесты, потом код — звучит как лишний шаг, а экономит время
Интуиция подсказывает: попросить агента сразу написать рабочий код, а тесты потом, или вообще не просить. Но есть подход, который работает надёжнее: сначала просить тесты, и только потом — саму реализацию.
Как это работает
Ты описываешь, что должна делать функция или часть проекта — а именно что на входе, что должно получиться на выходе, какие граничные случаи важны. Агент на основе этого описания сначала пишет тесты — проверки, которые должны пройти, если код работает правильно. И только после этого пишет сам код, который должен эти тесты проходить.
Почему это лучше, чем просить код сразу
✳️ Тесты заставляют явно продумать поведение до того, как написана реализация. Если тест нельзя сформулировать — значит, задача сама по себе ещё не до конца ясна, и это выясняется на дешёвом этапе, а не посреди готового кода
✳️ У тебя появляется способ проверить результат, даже не читая код. Тесты либо проходят, либо нет — это понятный сигнал "работает / не работает"
✳️Правки становятся безопаснее. Если позже агент меняет код, тесты сразу показывают, не сломалось ли что-то, что раньше работало — без этого правки превращаются в игру в угадайку "вроде не должно было ничего задеть"
✳️Это ловит расхождение между "что ты хотел" и "что понял агент" раньше. Если тесты написаны не по тому сценарию, который ты имел в виду — это видно сразу по формулировкам тестов, ещё до того, как написан код
Как это формулировать:
Не "напиши код для X", а "сначала напиши тесты для X — какие случаи должны быть покрыты, что на входе и что должно получиться на выходе. Покажи тесты мне, и только после подтверждения переходи к реализации."
Где можно пропускать этот шаг:
— совсем маленькие, одноразовые скрипты, где цена ошибки минимальна и проверить результат можно глазами за секунду
— чисто визуальные правки (цвет, отступы, текст), где тест не особо что-то добавляет к тому, что и так видно
Готовый промпт:
Прежде чем писать реализацию, напиши тесты для следующей задачи:
[описание — что должна делать функция/часть проекта, входные и
выходные данные, важные граничные случаи]
Покажи тесты мне для проверки. После того как я подтвержу —
переходи к написанию кода, который должен проходить эти тесты.
✳️ Ссылка
#полезное
Похожие записи
Оцените материал:
Присоединяйтесь и подпишитесь на рассылку самых свежих новостей по Email
Получайте свежие новости и идеи на почту. Без спама — только самое интересное.
Нажимая «Подписаться», вы соглашаетесь с политикой конфиденциальности.
