Чек-лист отладки
Проходите по этим пунктам по порядку. Прыжок сразу к «почини это» как раз и заставляет AI ходить кругами.
- Воспроизведите ошибку надёжно. Найдите точные шаги, которые вызывают баг каждый раз. Баг, который вы не можете воспроизвести, — это баг, исправление которого вы не можете подтвердить: вы будете лишь вечно гадать, исчез ли он. Если он проявляется время от времени, охотьтесь за переменной, которая его переключает: конкретный ввод, состояние «вошёл в систему» против «вышел», медленная сеть.
- Прочитайте саму ошибку. Не пробегайте глазами. Сообщение об ошибке и верхушка стека вызовов обычно называют файл и строку, где всё пошло не так. Новички часто проматывают самое полезное предложение на экране, потому что оно выглядит пугающе.
- Соберите контекст. Соберите текст ошибки, стек вызовов, релевантный код и одно предложение с описанием того, чего вы ожидали.
- Передайте AI полную картину. Вставьте всё перечисленное выше в одно сообщение. Дайте ему сформировать гипотезу.
- Формулируйте гипотезу, а не исправление. Спросите «что могло это вызвать?» прежде чем «почини это». Неверное исправление по неверной теории — пустая трата времени — а иногда оно добавляет второй баг поверх первого.
- Добавьте логирование, чтобы проверить гипотезу. Подтвердите, что код действительно делает, прежде чем менять его.
- Применяйте двоичный поиск к проблеме. Сужайте место, где всё ломается, многократно деля подозрительную область пополам.
- Исправляйте первопричину, а не симптом. Убедитесь, что исправление устраняет причину поломки, а не только видимый сбой.
- Проверьте исправление и проверьте на регрессии. Заново выполните шаги воспроизведения. Затем убедитесь, что соседние функции по-прежнему работают.
Порядок не случаен. Каждый шаг производит улики, которые нужны следующему шагу. Воспроизведение даёт вам что читать; чтение даёт контекст для сбора; контекст даёт AI материал для гипотезы. Пропустите шаг — и вы скармливаете следующему дыру.