Шаблон — сделай ревью
и почему нельзя просить об этом в том же чате
Что это
Ревью — запрос найти в коде проблемы. У него есть особенность, которой нет у остальных: ИИ плохо критикует код, который сам только что написал. В том же разговоре он склонен подтверждать свои решения, а не оспаривать их.
Поэтому ревью почти всегда начинается с переноса кода в чистую сессию.
Как выглядит в коде
Плохо
Сделай ревью этого кодаБез указания, что искать, получишь список общих мест: «добавьте обработку ошибок», «используйте аннотации типов», «вынесите константы». Всё верно и всё бесполезно — такое же можно написать не глядя на код.
Хорошо
Вот функция из моего проекта. Я её не писал, нужен разбор.
Ищи в таком порядке:
1. Случаи, когда она вернёт неверный результат молча, без ошибки
2. Необработанные краевые случаи: пустые данные, None, обрыв сети
3. Всё, что сломается при одновременном вызове из двух мест
Стиль и именование не комментируй.
Для каждой находки: что сломается и при каких данных.
Если находок нет — так и скажи, не придумывай.
<код>Три отличия: задан порядок важности, отсечено лишнее, и явно разрешено ничего не найти.
Фраза, которая меняет результат
Вот функция из моего проекта. Я её не писал.
Снимает с ИИ роль автора, защищающего свою работу. Проверяется легко: попроси ревью своего же кода в том же чате и в новом — разница заметна сразу.
Как сказать ИИ
Задай порядок, а не просто список
Без приоритетов ревью превращается в перечень из двадцати пунктов, где опечатка в комментарии стоит рядом с потерей данных. Проси сортировать по тяжести последствий:
Отсортируй находки от самой опасной к самой мелкой.
Для каждой скажи, что будет, если её не чинить.Разреши не найти ничего
ИИ склонен выдавать находки, потому что об этом попросили. Если их нет, он придумает. Одна фраза это снимает:
Если серьёзных проблем нет — скажи прямо, что нет.
Придумывать замечания не надо.Три вопроса вместо ревью
Когда разбирать весь код не нужно, работают короткие точечные вопросы:
Есть ли здесь место, где данные могут потеряться без ошибки?Что из этого сломается, если функцию вызовут дважды подряд?Какую строку ты бы переписал первой и почему?Последний вопрос особенно хорош: он заставляет выбрать одно, а не перечислять всё подряд.
На что смотреть
Ревью из общих мест. «Добавьте логирование», «подумайте о производительности» — замечания, которые подходят любому коду. Признак того, что в запросе не было сказано, что искать.
Выдуманные проблемы. ИИ ссылается на поведение библиотеки, которого нет, или на край, невозможный по логике проекта. Проверяй по коду и документации.
Пропущено главное. Отсутствие замечаний не значит, что код хороший, — значит только, что ИИ ничего не нашёл. Своей проверки это не отменяет.
Ревью своего же кода в том же чате. Самая частая ошибка. Новая сессия стоит тридцати секунд и меняет качество разбора сильнее, чем любая формулировка.
Шпаргалка
Ревью — в чистой сессии, с фразой «я этот код не писал».
Скажи, что искать и в каком порядке важности.
Отсеки лишнее: «стиль не комментируй».
Разреши не найти ничего, иначе придумает.
Находки — гипотезы, проверяй каждую по коду.
«Какую строку переписал бы первой» — короткая замена полному ревью.