Повторение и практика
Ключевые выводы
- Баг — это разрыв между тем, что вы ожидали, и тем, что произошло: дайте AI обе стороны плюс точные шаги воспроизведения, а не просто «оно сломано».
- Вставляйте ошибку дословно и верх стек-трейса; первая строка, указывающая на ваш файл, почти всегда и есть точка старта.
- Подтверждайте, прежде чем менять: добавьте помеченную строку лога, чтобы проверить гипотезу, и применяйте двоичный поиск (в коде или истории коммитов), чтобы на каждом шаге вдвое сужать пространство поиска.
- Исправляйте первопричину, а не симптом — охранная проверка или try/catch, которые лишь останавливают сбой, обычно только маскируют настоящую проблему.
- Когда AI ходит кругами, сбросьте контекст к тому, что вы знаете наверняка, попросите его объяснить, а не исправлять, и добавляйте улики вместо догадок.
Попробуйте сами
В следующий раз, когда что-то сломается, напишите отчёт о баге до того, как просить исправление. В свежем чате дайте AI три вещи: шаги воспроизведения, что вы ожидали и что произошло на самом деле — с ошибкой, скопированной дословно, и верхними кадрами стек-трейса. Затем, вместо «исправь это», попросите гипотезу и дешёвый способ её подтвердить (обычно строку лога). Запустите эту проверку, вставьте вывод обратно и только тогда позвольте AI предложить исправление. Заметьте, насколько прямее путь, чем у «оно не работает, помоги».
У меня есть баг. Прежде чем предлагать исправление, дай мне гипотезу и дешёвый
способ её подтвердить (например, строку лога) — пока не редактируй код.
Шаги воспроизведения: [что ты сделал]
Ожидалось: [что должно было произойти]
На деле: [что произошло]
Полная ошибка и стек вызовов:
[вставь дословно]
Релевантный код:
[вставь функцию, которая упала, плюс всё, что она вызывает]
Что могло это вызвать и что мне залогировать, чтобы подтвердить это, прежде чем что-либо менять?