Лучшие промпты для работы с кодом: 12 шаблонов, которые экономят время
Код-ревью, поиск бага, тесты, рефакторинг, SQL, регулярки: 12 промптов для ChatGPT и Claude с переменными и объяснением, почему они работают.
Хороший промпт для кода отличается от плохого не «волшебными словами», а тем, сколько контекста и ограничений он передаёт модели. Ниже 12 шаблонов, которыми мы пользуемся сами. Каждый написан с переменными в формате {{имя}} или {{имя|значение по умолчанию}}: подставьте свои данные, и промпт готов.
Три правила, которые важнее любого шаблона
- Дайте контекст. Язык, версия, фреймворк, ограничения окружения. «Node 22, ESM, без внешних зависимостей» экономит три уточняющих круга.
- Опишите формат ответа. «Только diff», «сначала список проблем, потом код», «без пояснений». Иначе модель выберет формат сама, и обычно это длинное эссе.
- Попросите проверить себя. «Перечисли допущения», «какие случаи не покрыты». Это дешёвый способ поймать галлюцинацию до того, как код попал в репозиторий.
Ревью и понимание кода
1. Код-ревью
Сделай код-ревью фрагмента на {{язык|TypeScript}}.
Контекст: {{контекст|сервис на Node 22, ESM}}.
Найди по порядку важности: ошибки, проблемы безопасности, гонки и утечки,
затем читаемость. Для каждой проблемы: строка, почему это проблема, исправление.
Стиль и форматирование не обсуждай. Если всё в порядке — так и скажи.
{{код}}
Почему работает: порядок важности и запрет на «стиль» убирают шум. Фраза «если всё в порядке — так и скажи» снижает соблазн придумать проблему.
2. Объяснить чужой код
Объясни, что делает этот код, человеку, который знает {{язык}}, но не знает этот проект.
Сначала одно предложение: зачем он нужен. Затем по шагам. В конце — неочевидные места
и что сломается, если их изменить.
{{код}}
3. Оценить сложность и узкие места
Оцени временную и пространственную сложность функции. Укажи, на каких входных данных
она станет узким местом при {{масштаб|1 млн записей}}, и предложи одну оптимизацию
с оценкой выигрыша. Не переписывай всё целиком.
{{код}}
Ошибки и отладка
4. Найти причину бага
Ожидаемое поведение: {{ожидание}}.
Фактическое поведение: {{факт}}.
Окружение: {{окружение}}.
Что я уже проверил: {{проверено|ничего}}.
Назови 3 наиболее вероятные причины по убыванию вероятности. Для каждой — как
проверить её за минуту. Код исправления не пиши, пока мы не найдём причину.
{{код}}
Почему работает: запрет на исправление до диагностики не даёт модели «чинить» не то. Поле «что я уже проверил» отсекает очевидные советы.
5. Разобрать стектрейс
Разбери стектрейс. Найди первую строку из моего кода (не из библиотек),
объясни, что пошло не так, и предложи минимальное исправление.
{{стектрейс}}
Тесты
6. Тесты к функции
Напиши тесты на {{фреймворк|Vitest}} для функции ниже.
Покрой: обычный случай, граничные значения, пустой ввод, ошибочный ввод.
Каждый тест — одна проверка, название описывает поведение, а не реализацию.
Моки — только для сети и времени.
{{код}}
7. Найти непокрытые случаи
Вот функция и её тесты. Перечисли сценарии, которые тесты не покрывают,
от самого рискованного. Для трёх первых напиши тесты.
Функция:
{{код}}
Тесты:
{{тесты}}
Рефакторинг и перенос
8. Рефакторинг без изменения поведения
Отрефактори код: {{цель|убрать дублирование и упростить ветвления}}.
Поведение и публичный интерфейс не меняй. Ответ — только diff в формате unified.
После diff — список рисков, если они есть.
{{код}}
9. Перевести с одного языка на другой
Перепиши код с {{откуда|Python}} на {{куда|Go}}, идиоматично для целевого языка,
а не построчно. Сохрани поведение, включая обработку ошибок. Отметь места,
где поведение неизбежно отличается.
{{код}}
Данные и утилиты
10. SQL-запрос по описанию
СУБД: {{субд|PostgreSQL 17}}. Схема:
{{схема}}
Напиши запрос: {{задача}}.
Объясни, какие индексы нужны, чтобы он работал быстро на {{объём|10 млн строк}}.
Если задача неоднозначна — сначала спроси.
11. Регулярное выражение с тестами
Составь регулярное выражение ({{диалект|JavaScript}}) для: {{что найти}}.
Дай 5 строк, которые должны совпасть, и 5, которые не должны.
Объясни выражение по частям.
12. Сообщение коммита
Напиши сообщение коммита в формате Conventional Commits по diff ниже.
Заголовок до 72 символов, в повелительном наклонении. В теле — зачем, а не что.
{{diff}}
Типичные ошибки в промптах для кода
Вставлять весь файл, когда вопрос про одну функцию. Модель тратит внимание на нерелевантное, а длинный ответ потом сложно проверить. Дайте функцию, её типы и места вызова — этого почти всегда достаточно.
Не указывать версию. «Как сделать X в React» и «как сделать X в React 19 с серверными компонентами» — разные вопросы. То же с Python 2 и 3, Postgres 12 и 17, Next.js Pages и App Router.
Просить «улучшить код». Улучшить можно что угодно и бесконечно. Назовите цель: скорость, читаемость, меньше зависимостей, совместимость со старым API.
Принимать первый ответ. Если ответ выглядит правдоподобно, задайте один вопрос в догонку: «какие допущения ты сделал?» или «где этот код упадёт?». Это занимает 20 секунд и часто находит проблему.
Смешивать задачи в одном чате. Через 40 сообщений модель начинает путать старые и новые версии кода. Когда задача сменилась, начните новый чат и перенесите туда только итог.
Как превратить удачный промпт в шаблон
Если промпт сработал хорошо, не оставляйте его в истории. Замените конкретику на переменные: язык, фреймворк, сам код. Значение по умолчанию ставьте для того, что у вас почти всегда одинаково:
Было: Напиши тесты на Vitest для функции parseDate.
Стало: Напиши тесты на {{фреймворк|Vitest}} для функции ниже.
Так один промпт работает во всех проектах, а вы меняете только то, что действительно отличается.
Как не потерять хорошие ответы
Удачный промпт — половина дела. Вторая половина — найти ответ через месяц, когда снова понадобится тот самый SQL или регулярное выражение. Несколько привычек:
- Давайте чатам говорящие названия. «Ревью: auth middleware» находится быстрее, чем «Помощь с кодом».
- Один чат — одна задача. Смесь из пяти тем потом невозможно ни найти, ни переиспользовать.
- Сохраняйте шаблоны в одном месте, а не в заметках, мессенджере и закладках одновременно.
В Chatsavo поиск понимает фильтр по коду (Pro). Запрос
регулярное выражение email есть:код роль:ии
найдёт ответы ИИ с блоками кода, где речь шла о регулярке для email, — и в ChatGPT, и в Claude (поиск по всем сайтам — тоже в Pro). Клик по результату прокрутит чат к нужному сообщению.
Библиотека промптов в панели, переменные вида {{имя|значение}} и быстрый вызов через «/» в поле ввода — в ближайших обновлениях. А 40 стартовых промптов для разработки, текстов и анализа уже открыто лежат на странице /prompts.
Chatsavo работает на ChatGPT и Claude; Gemini, Grok и Алиса — в тестировании; DeepSeek, Perplexity и GigaChat — позже. Если вы часто возвращаетесь к старым ответам с кодом, попробуйте 7 дней Pro бесплатно — установка.
Найдите любой старый чат за секунду
Chatsavo добавляет папки и поиск по тексту в ChatGPT и Claude. Бесплатно, тексты остаются в браузере.