~/VibeHandbook
PDF бесплатно

Глава 08 · 05

Итерируйте по diff'ам, а не по переписываниям

Когда код уже есть, сопротивляйтесь желанию запросить всё целиком заново. Расплывчатые продолжения вроде «сделай лучше» выбрасывают рабочий код и заново вносят баги, которые вы уже исправили. Укажите на конкретное изменение, которое хотите.

Это неправильно, перепиши всё целиком.
Функция работает, но есть две проблемы:
1. Ошибка в строке с `throw new Error` должна возвращать тип
   Result вместо выброса исключения — повтори паттерн из
   функции validateUser выше.
2. Цикл перечитывает `items.length` на каждой итерации; вынеси его.

Покажи мне только diff для этих двух изменений.

Здоровый цикл — это плотная петля: промптите модель, читаете вывод, затем дорабатываете маленьким точечным diff'ом — никогда не полным переписыванием — пока не станет верно:

   ┌─────────┐     ┌─────────┐     ┌─────────┐
   │ ПРОМПТ  │ ──▶ │ МОДЕЛЬ  │ ──▶ │ ВЫВОД   │
   └─────────┘     └─────────┘     └────┬────┘
        ▲                               │
        │                               ▼
        │                          ┌─────────┐
        │         ок?              │ ОБЗОР   │
        │   да ◀───────────────────┤ diff    │
        │                          └────┬────┘
        │                               │ нет
        │     правка (мал. diff)        │
        └───────────────────────────────┘
                                    дрейф? ▶ откат к последней хорошей

Запрос diff'а (а не полного переписывания) держит изменения пригодными к ревью и сохраняет части, которые уже работают. Относитесь к выводу AI как к 'у коллеги: комментируйте конкретные строки, запрашивайте точечные правки. Когда изменение уходит не туда и с каждым ответом код всё дальше от того, что вы хотели, не продолжайте латать — откатитесь к последней версии, которой доверяли, и пере-промптите оттуда с более чётким описанием. Итерировать вперёд по сломанной основе — лишь множить беспорядок.

Хотите офлайн-версию?

Скачайте всю книгу в PDF или EPUB — бесплатно.