Когда ограждение кричит: сначала сортировка, потом починка
Ограждения полезны лишь тогда, когда вы хорошо на них реагируете, и режим отказа предсказуем: сборка краснеет, вы немного паникуете и вставляете ошибку AI со словами «исправь». Иногда это срабатывает. Часто это порождает исправление, которое заставляет красный текст исчезнуть, не устранив того, что на самом деле было не так, — AI ослабляет тест, расширяет тип или оборачивает падающий вызов в try/catch, который проглатывает проблему.
Прежде чем позволить ему что-либо «исправить», потратьте десять секунд на сортировку. Отказов ограждений на самом деле всего три вида:
- Настоящий баг, который вы только что внесли. Проверка делает свою работу. Чините код, а не проверку.
- Тест, который теперь устарел. Вы намеренно изменили поведение, и старое утверждение больше не совпадает. Обновите тест так, чтобы он утверждал новое правильное поведение — обдуманно, а не рефлекторно.
- Нестабильная или неверная проверка. По-настоящему редкость. Здесь подозревайте самого себя; это та корзина, в которую люди сваливают настоящие баги, потому что только она позволяет двигаться дальше.
Инструкция, которая удерживает AI честным, — заставить его диагностировать прежде, чем он что-либо изменит:
Тест «never discounts below zero» падает.
Сначала скажи мне, ПОЧЕМУ он падает — что код делает сейчас
против того, что ожидает тест. Затем скажи, что верно: код
или тест. НИЧЕГО не меняй, пока я не подтвержу.
Эта одна пауза — разница между ограждением, которое вас защищает, и ограждением, которое вы тихо приучили AI обходить. Красная проверка — это информация; худшее, что вы можете сделать, — заплатить за то, чтобы сделать её зелёной, не прочитав, о чём она вам говорила.