DeepSeek Код 👁 12

TDD-цикл red-green-refactor для новой функции

TDD red-green-refactor: пошаговое написание функции через падающие тесты с разбором каждой итерации.

Промпт Запустить →
Проведи меня по циклу red-green-refactor для одной функции: маленькими шагами, где каждый шаг заканчивается запускаемым тестом.

Что пишем: [ЗАДАЧА: функция, которая по списку сделок считает выручку за период и отдаёт сумму по месяцам, пропуская отменённые сделки]
Стек: [СТЕК: Python 3.11, pytest]
Что уже известно про данные: [ДАННЫЕ: у сделки есть дата, сумма и статус; статусы — paid, cancelled, pending; даты приходят строками в ISO]

Дай до 5 итераций, в каждой:
1. RED — один тест, который сейчас падает, и точное сообщение, которым он падает.
2. GREEN — минимальный код, чтобы тест прошёл. Именно минимальный: заглушка на этом шаге нормальна.
3. REFACTOR — что улучшаем или явное «оставляем как есть» с причиной.
4. Какое новое поведение проверит следующий тест и почему именно оно следующее.

Отсечка. Не пиши в первой же итерации полную реализацию — тогда это не TDD, а обычное написание кода
с тестами после. Не добавляй в GREEN то, чего не требует текущий тест: обработка pending появляется
в той итерации, где для неё есть тест, а не «на будущее». Не переходи к следующей итерации, пока
предыдущий тест не зелёный. Порядок итераций объясняй риском: сначала то, где ошибка дороже
(пропуск отменённых сделок), а не то, что проще.

Проверка перед выдачей: по каждой итерации сверь, что код из GREEN действительно проходит свой тест
и НЕ проходит тест следующей итерации. Если проходит оба — шаг был слишком большой, разбей его.
Запустить промпт →

Пример результата

Итерация 1 RED: def test_empty_returns_zero(): assert sum_positive([]) == 0 Ошибка: NameError — функция не существует. GREEN: def sum_positive(items): return 0 REFACTOR: оставляем — минимум. Итерация 2 RED: def test_one_positive(): assert sum_positive([5]) == 5 GREEN: def sum_positive(items): return sum(items) REFACTOR: оставляем. Итерация 3 RED: def test_skips_negatives(): assert sum_positive([3, -1, 5]) == 8 GREEN: return sum(x for x in items if x > 0) REFACTOR: оставляем — read-friendly.

Похожие промпты

Рефакторинг легаси-модуля в Kimi: карта, план, код по шагам
Kimi
Рефакторинг легаси-модуля в Kimi: карта, план, код по шагам
Kimi
Сайт-визитка с 3D одним промптом — Kimi K3
Claude
Системный промпт для AI Agent ноды n8n — Claude
DeepSeek
Телеграм-бот на n8n в DeepSeek: схема нод, которую можно собрать за вечер

Полезные статьи

Как сделать мультфильм нейросетью по сценарию: промты и замеры
Дипсик и фото: как загрузить, что умеет и почему не грузится
Локальные нейросети для видео: замеры на карте 12 ГБ

Все гайды →