Шаблон — новая функция
самый частый запрос в работе
Что это
Новая функциональность — то, что просят у ИИ чаще всего. У этого запроса есть устойчивая форма: назвать место, описать поведение, очертить границы, задать проверку.
Шаблон ниже — не форма для заполнения, а напоминание. Со временем он проговаривается сам, но первое время в него полезно заглядывать.
Как выглядит в коде
Шаблон
Где: <файл или модуль; как устроено рядом>
Что: <поведение — что на входе, что на выходе>
Границы: <чего не делать; что не трогать>
Готово, когда: <проверяемое условие>Плохо
Нужна функция для работы с подписками пользователей«Работа с подписками» — это и добавить, и удалить, и проверить, и список показать. ИИ выберет сам, и скорее всего напишет класс на двести строк со всеми четырьмя операциями, половина из которых не нужна.
Хорошо
Где: storage.py, рядом с load_subs(). Данные в SQLite,
подключение через get_conn() из db.py.
Что: функция add_sub(user_id: int, city: str) -> bool.
Добавляет подписку. Возвращает False, если такая подписка
уже есть, True если добавили.
Границы: только эта функция, остальные не трогай.
Новых зависимостей не добавляй.
Готово, когда: повторный вызов с теми же аргументами
возвращает False и второй строки в таблице не появляется.Результат предсказуем: одна функция, понятная сигнатура, проверяемое поведение.
Как сказать ИИ
Что обязательно
Сигнатура. Имя, аргументы с типами, что возвращает. Это самая дешёвая подробность и самая полезная: она отсекает половину разночтений. Не знаешь, как назвать, — опиши словами, ИИ предложит.
Поведение в неудачном случае. Что делать, если данных нет, сеть отвалилась,
аргумент пустой. Не скажешь — ИИ выберет сам, и чаще всего выберет молча вернуть
None.
Границы. Фраза «остальные функции не трогай» экономит больше всего времени. Без неё ИИ охотно «заодно улучшит» соседний код, и дифф разрастается с десяти строк до двухсот.
Что необязательно
Не надо расписывать алгоритм, если он очевиден, — это работа ИИ. Не надо просить комментарии в каждой строке: они замусоривают код и устаревают первыми.
Когда функций несколько
Не проси пять функций одним запросом. Попроси первую, прочитай, прими — и дальше
остальные одной фразой «сделай так же для delete_sub и list_subs». ИИ подхватит
стиль уже принятого кода, и проверять будет проще.
На что смотреть
Функция делает больше, чем просили. Признак: внутри появились логирование, кеш, повторные попытки, валидация, о которых речи не было. Само по себе не вредно, но это код, который ты не заказывал и не проверял.
Молчаливая обработка ошибок. return None вместо исключения, except: pass, значения по умолчанию там, где должна быть ошибка. Код не падает и
поэтому кажется рабочим — а потом приходится искать, откуда взялся None.
Сигнатура удобна ИИ, а не тебе. Семь аргументов, из них пять необязательных, словарь вместо явных параметров. Если вызов читается плохо — переделай сразу.
Функция не вписана в проект. Своё подключение к базе вместо get_conn(),
свой формат логов, свой стиль именования. Чаще всего это причина 2 из статьи
3.1: ИИ просто не видел, как устроено рядом.
Шпаргалка
Четыре строки: где · что · границы · готово, когда.
Сигнатура — самая дешёвая и самая полезная подробность.
Всегда говори, что делать в неудачном случае.
«Остальное не трогай» экономит больше всего времени.
Несколько функций — по одной, потом «сделай так же».
Проверь: не делает ли функция больше, чем просили.