Программирование с ИИ
ENRU
3.16

Антипаттерны запросов

семь способов потратить время впустую

Что это

Запросы, которые выглядят нормально и регулярно не работают. Каждый из них легко узнать по формулировке — и у каждого есть короткая замена.

Статья закрывает главу 3: если предыдущие пятнадцать говорили, как надо, то эта — как не надо, и почему именно.

Как выглядит в коде

1. «Сделай красиво»

Не так
Отрефактори этот модуль, сделай покрасивее

Красота не определена, поэтому ИИ подставит свою: другую архитектуру, другие имена, другой стиль. Дифф будет огромным, а поведение поедет.

Замена: назови конкретное изменение формы. «Разбей функцию на три», «вынеси повторяющийся блок», «переименуй d в user_data».

2. «Исправь всё»

Не так
Пройдись по файлу и исправь все проблемы

Проблемы не названы, значит, ИИ будет их искать — и найдёт, даже если их нет (та же ловушка, что в ревью, статья 3.8). Получишь двадцать правок, из которых половина не нужна, а две что-то сломают.

Замена: сначала попроси список находок, прочитай его, выбери — и только потом правки.

3. «Ты ошибся»

Не так
Нет, ты ошибся. Исправь.

Не сказано, в чём ошибка. ИИ согласится — он почти всегда соглашается — и изменит что-нибудь наугад. Иногда то, что работало.

Замена: факты вместо оценки. «Запустил, получил KeyError: main на строке 11. Ожидал ответ „Город не найден“».

4. «Почему не работает?»

Не так
Почему не работает?

ИИ не видит ни запуска, ни ошибки, ни окружения. Он начнёт гадать и выдаст пять версий, из которых проверять придётся все.

Замена: шаблон из статьи 3.5 — что делал, что ожидал, что получил, трейсбек целиком.

5. Тот же запрос, но настойчивее

Не так
Я же сказал — БЕЗ внешних библиотек!!!

Повтор с нажимом не добавляет информации. Если первый запрос был понят не так, второй такой же будет понят не так же.

Замена: переформулируй, а не повторяй. Назови конкретную библиотеку, которую он добавил, и чем её заменить. На длинной ветке — начни новую сессию (статья 5.4): иногда разговор уже «заражён» неверным контекстом, и чистый старт дешевле.

6. Задача из пяти задач

Не так
Добавь команду /stats, почини баг с часовыми поясами,
вынеси тексты в отдельный файл и напиши тесты

Четыре задачи в одном запросе дают один большой дифф, в котором не разобраться. Что-то сделано хорошо, что-то плохо, откатить по отдельности нельзя.

Замена: по одной. Принял — следующая. Это не медленнее: время уходит не на запросы, а на проверку, а проверять маленькими кусками быстрее.

7. Вежливость вместо содержания

Не так
Привет! Надеюсь, у тебя всё хорошо. Не мог бы ты, если тебе
не сложно, посмотреть мой код и, возможно, что-нибудь
подсказать? Буду очень благодарен!

Вежливость не вредит, но и не помогает — а здесь она заняла место, где должны были быть файл, версия и вопрос. Та же беда с извинениями и долгими объяснениями, почему ты не разбираешься в теме.

Замена: сразу к делу. Общайся как хочешь, но следи, чтобы содержание в запросе всё-таки было.

Как сказать ИИ

Сводка: слева то, что хочется написать, справа — то, что работает.

АнтипаттернЗамена
«сделай красиво»назови конкретное изменение формы
«исправь всё»сначала список находок, потом выбор
«ты ошибся»факты: что запустил, что получил
«почему не работает?»что делал · что ожидал · что получил
тот же запрос настойчивеепереформулируй или начни новую сессию
пять задач в однойпо одной, с проверкой между
вежливость вместо сутифайл, версия, вопрос

Общее у всех семи одно: в запросе нет информации, которой у ИИ не было. Раздражение, повтор, вежливость и обобщения её не добавляют — добавляют только факты, имена файлов, версии, примеры и критерии.

На что смотреть

Разговор пошёл по кругу. Третья попытка объяснить одно и то же — сигнал остановиться. Либо задача сформулирована неясно, либо в контексте сессии накопилось лишнее. Новая сессия с нормально сформулированной задачей почти всегда быстрее.

Хочется поспорить. Спор с ИИ — потраченное время: он уступит, а решение от этого не улучшится. Вместо спора — факты и переформулировка.

Запрос длиннее, чем задача. Три абзаца на правку одной строки означают, что ты объясняешь не задачу, а своё отношение к ней.

Шпаргалка

  • «Сделай красиво», «исправь всё», «ты ошибся» — в запросе нет информации.

  • Согласие ИИ не означает, что ошибка была.

  • Повтор с нажимом не работает: переформулируй.

  • Пять задач в одном запросе дают один непроверяемый дифф.

  • Пошло по кругу на третьей попытке — начинай новую сессию.

  • Спорить бесполезно: он уступит, решение не улучшится.