10 промптов для программиста: от code review до миграции БД

Десять шаблонов промптов для частых задач разработчика. Подставьте свой код и отправьте через API: код на Python, расчёт стоимости и советы по формулировкам.

3 мин · · разработка · автоматизация

Промпты для программиста экономят время на задачах, которые повторяются каждый день: проверить код, переписать запутанную функцию, написать тесты, разобраться с трейсбеком. Ниже десять шаблонов: подставьте свой код вместо плейсхолдеров в фигурных скобках и отправьте через чат или API. В конце — код на Python, расчёт стоимости и советы, как улучшать ответы.

Как отправлять промпты через API

Все примеры работают через OpenAI-совместимый API Zukko и официальный Python SDK openai:

bash
from openai import OpenAI

client = OpenAI(
    base_url="https://api.zukko.pro/v1",
    api_key="fetch_ваш_ключ",
)

response = client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": "ваш промпт"}],
)
print(response.choices[0].message.content)

Подойдёт любая модель из списка Zukko: claude-sonnet-5, claude-opus-5-5, gpt-5.6-sol, а для простых задач — более дешёвые glm-5.3 или glm-5.3-flash. Актуальный список — GET https://api.zukko.pro/v1/models или страница «Модели» в кабинете. Какая модель лучше справляется с вашими задачами, проверьте сами: отправьте один и тот же шаблон нескольким моделям и сравните ответы. Подробнее о SDK — в справке по Python. Без кода шаблоны можно вставлять в чат в браузере.

1. Code review

Код для ревью: {КОД} Проверь код на: 1. Ошибки логики и граничные случаи 2. Уязвимости 3. Нарушения стиля проекта ({СТИЛЬ}, например PEP 8) 4. Пропущенную обработку ошибок Для каждой проблемы: строка, суть, исправленный фрагмент. Если проблем нет, так и напиши.

Когда использовать: перед коммитом и перед открытием PR.

2. Рефакторинг

Перепиши этот код, чтобы его было проще читать и поддерживать. Поведение и публичный интерфейс должны остаться прежними. Язык и версия: {ЯЗЫК_И_ВЕРСИЯ}. {КОД} После кода коротко перечисли изменения и зачем каждое нужно.

Когда использовать: длинные функции, дублирование, вложенные условия.

3. Unit-тесты

Напиши unit-тесты на pytest для этой функции. Покрой обычные случаи, граничные значения и ошибки. Тесты должны быть независимыми, общие данные вынеси в fixtures. {КОД}

Когда использовать: новая функция, подготовка к рефакторингу, повышение покрытия.

4. Разбор ошибки

Ошибка (полный traceback): {ОШИБКА} Код, где она возникла: {КОД} Окружение: {ВЕРСИИ_ЯЗЫКА_И_БИБЛИОТЕК} Объясни причину, укажи место в коде и предложи исправление. Если данных не хватает, скажи, что ещё нужно показать.

Когда использовать: непонятный traceback, поведение, которое не воспроизводится локально.

5. SQL-запрос

Напиши запрос для PostgreSQL, который: - {ТРЕБОВАНИЕ_1} - {ТРЕБОВАНИЕ_2} Схема: - users (id, name, email, created_at) - orders (id, user_id, total, created_at) - items (id, order_id, product_name, price) Объём: в orders примерно {ЧИСЛО} строк. После запроса предложи индексы, которые ему помогут.

Когда использовать: сложные выборки, отчёты, оптимизация медленных запросов.

6. Регулярное выражение

Напиши регулярное выражение на Python для задачи: {ЗАДАЧА}. Должно совпадать: {ПРИМЕРЫ} Не должно совпадать: {КОНТРПРИМЕРЫ} Ответ: pattern = r"..." и короткое объяснение каждой части.

Когда использовать: разбор логов, валидация форматов, извлечение данных из текста.

7. Документация

Напиши docstring в формате Google для этой функции: параметры, возвращаемое значение, исключения (Raises) и короткий пример вызова. {КОД}

Когда использовать: публичные функции, API, код перед релизом.

8. Сообщение коммита

Вот diff изменений: {DIFF} Напиши сообщение коммита в формате Conventional Commits: <type>: <заголовок до 50 символов> <описание, если нужно: что и зачем изменено> Типы: feat, fix, refactor, docs, test, chore.

Когда использовать: перед коммитом, особенно после большого рефакторинга. Удобно передавать вывод git diff --staged.

9. План миграции БД

Текущая схема: {ТЕКУЩАЯ_СХЕМА} Что нужно изменить: {ТРЕБОВАНИЯ} Таблица содержит примерно {ЧИСЛО} строк и работает под нагрузкой. Составь план миграции для Alembic: 1. Шаги по порядку, без долгих блокировок таблицы 2. Как откатить каждый шаг 3. Как проверить результат

Когда использовать: новые колонки, переименования, смена типов на больших таблицах.

10. Проверка безопасности

Код: {КОД} Проверь код на: 1. SQL-инъекции 2. XSS (если формируется HTML) 3. Отсутствие валидации входных данных 4. Секреты, записанные прямо в коде 5. Ошибки в проверке прав доступа Для каждой находки: риск, пример атаки, исправление.

Когда использовать: код, который принимает пользовательский ввод, перед выкладкой в production.

Пример: ревью из скрипта с учётом токенов

bash
from openai import OpenAI

client = OpenAI(
    base_url="https://api.zukko.pro/v1",
    api_key="fetch_ваш_ключ",
)

REVIEW_TEMPLATE = """Код для ревью:

{code}

Проверь код на ошибки логики, уязвимости и пропущенную обработку ошибок.
Для каждой проблемы: строка, суть, исправленный фрагмент."""

Для длинных ответов удобен стриминг. Сервер присылает последний чанк с usage и пустым choices, поэтому перед обращением к chunk.choices[0] нужна проверка:

bash
stream = client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": prompt}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Как улучшить ответы

  • Конкретика вместо «проверь код». «Проверь на SQL-инъекции и гонки при параллельных запросах» даёт более полезный ответ.
  • Примеры. Для regex и парсеров покажите два-три примера, что должно и что не должно совпадать.
  • Контекст. Одна строка вроде «это API на FastAPI под нагрузкой 1000 RPS» меняет советы.
  • Формат ответа. Попросите таблицу, список или только код — так ответ удобнее разбирать и сравнивать.

Подробнее про параметры запроса — в справке по chat completions.

Частые вопросы

Можно ли объединить несколько шаблонов в одном запросе?

Да: например, «сначала найди ошибки, затем напиши тесты для исправленной версии». Но длинная многошаговая задача в одном запросе обычно даёт менее аккуратный результат, чем два последовательных запроса.

Сколько стоит один запрос?

Стоимость считается по токенам. В Zukko claude-sonnet-5 и gpt-5.6-sol стоят $0.3 за 1M входных и $0.3 за 1M выходных токенов. Допустим, шаблон с функцией на 50 строк занял 750 токенов, а ответ — 800. Тогда (750 + 800) × $0.3 / 1 000 000 ≈ $0.00047. Точные цифры по каждому запросу есть в response.usage и в разделе «Использование» в кабинете. Ключ для API создаётся в кабинете.

Как сохранять историю промптов?

Записывайте каждый запрос в JSONL вместе с реальным расходом из usage:

bash
import json
from datetime import datetime


def log_call(prompt: str, answer: str, usage) -> None:
    entry = {
        "time": datetime.now().isoformat(),
        "prompt": prompt[:200],
        "answer": answer[:500],
        "prompt_tokens": usage.prompt_tokens,
        "completion_tokens": usage.completion_tokens,
    }
    with open("prompt_log.jsonl", "a", encoding="utf-8") as f:
        f.write(json.dumps(entry, ensure_ascii=False) + "\n")

Что делать, если модель выключена?

Шлюз вернёт HTTP 503 с кодом model_disabled. Возьмите другую модель из GET https://api.zukko.pro/v1/models и повторите запрос.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.

Промпты для программиста: 10 готовых шаблонов · Zukko