А
Шаблоны запросов
всё, что есть в книге, на одном месте
Что это
Шаблоны из глав 3, 13 и 14, собранные вместе. Подставь своё в угловые скобки. Для каждого указана статья, где разобрано, почему он устроен именно так.
Работа с кодом
Новая функция (статья 3.4):
Проект: <стек, версии>. Файл: <путь>.
Нужна функция <имя>: принимает <что>, возвращает <что>.
Крайние случаи: <пусто / ошибка сети / нет данных>.
Ограничения: новых библиотек не добавляй, стиль как в файле.
Покажи только изменённый фрагмент.Исправить баг (статья 3.5):
Что делаю: <шаги>.
Что ожидаю: <результат>. Что получаю: <результат>.
Ошибка целиком: <текст с трейсбеком>.
Версии: <язык, библиотеки>.
Сначала скажи, в чём причина. Правку — после моего «да».Рефакторинг (статья 3.6):
Вот код: <фрагмент>.
Поведение менять нельзя. Нужно: <что именно улучшить>.
Не трогай: <файлы, функции>.
Покажи дифф, а не файл целиком, и объясни каждое изменение одной строкой.Объясни этот код (статья 3.7):
Объясни этот код построчно, как человеку, который знает
основы, но не знает эту библиотеку.
Отдельно: что здесь может сломаться и при каких данных.Ревью (статья 3.8):
Сделай ревью: <код>.
Ищи: необработанные ошибки, крайние случаи, утечки секретов,
лишние зависимости, места, где поведение неочевидно.
Формат: список, по строке на находку, с номером строки.
Не переписывай код.Тесты (статья 3.9):
Напиши тесты на <функция/модуль>, pytest.
Покрой: обычный случай, границы, пустой ввод, ошибку.
Без моков там, где можно без них.
Каждый тест — одна проверка, имя теста описывает случай.Приёмы
Сначала план (статья 3.10):
Задача: <описание>.
Не пиши код. Сначала план: какие файлы затронешь,
что в каждом изменится, в каком порядке.
Код после моего «да».Пусть ИИ задаёт вопросы (статья 3.11):
Прежде чем писать код, задай мне вопросы, ответы
на которые изменят решение. По одному за раз.
Если вопросов нет — скажи, какие допущения ты делаешь.Ограничить зону правок (статья 3.13):
Меняй только файл <путь> и только функцию <имя>.
Остального не касайся. Если для решения нужно тронуть
что-то ещё — скажи об этом, но не делай.Проект целиком
Десять вопросов (статья 13.6):
Задумка: <две-три фразы>.
Задай мне по одному вопросу и дождись ответа:
что делает одним предложением; что хранится; где хранится;
кто пользуется и сколько их; что нельзя потерять;
внешние сервисы и поведение при отказе; что меняется чаще;
окружения и секреты; запуск и перезапуск; как узнаю о поломке.
Код не пиши. В конце собери ответы в мини-ТЗ.Разбиение на части (статья 13.1):
Задумка: <описание>. Не пиши код. Разложи на части:
1) что хранится — сущности с полями
2) что происходит — действия
3) что видно снаружи — экраны или адреса
Для каждого действия укажи, какие сущности оно трогает.Архитектурная справка (статья 13.5):
Вот дерево проекта и ключевые файлы.
Собери черновик справки по шести блокам: что это, стек,
структура, зависимости, где что лежит, чего не делать.
Где не уверен — пиши «?», не придумывай.Проверка кода по справке (статья 13.5):
Вот справка и код, который ты написал.
Проверь свой код на соответствие справке: зависимости,
расположение файлов, запрет на новые библиотеки.
Нарушения — списком.Перед выпуском
Что ломается при сборке (статья 12.1):
Проект собирается у меня, но падает после установки.
Перечисли, чем запуск при разработке отличается от артефакта
в этом проекте: пути, переменные окружения, ресурсы, версии.
По пункту на строку.Правка с ценой (статья 12.1):
Сборка падает: <ошибка>. Нужны два варианта:
правка кода и правка настроек сборки.
Для каждого скажи, что перестанет проверяться.
Выбирать буду я.Совместимость при обновлении (статья 12.3):
Я меняю <поле / схему / эндпоинт>.
Старые клиенты обновляются не сразу.
Что у них сломается и как сделать это изменение без поломки?
Отдельно: какая часть не откатывается.Чек-лист публикации (статья 12.4):
Составь чек-лист публикации под мой проект.
Стек: <перечисли>. Публикуется: <куда>.
Раздели на «один раз на проект» и «перед каждым выпуском».
Только моё, без общих советов.