Промпты для программистов
Промпты для разработчиков и для тех, кто пишет код с помощью ИИ без большого опыта: скрипты на Python, SQL-запросы, исправление багов, тесты, перевод кода на другой язык и технические задания.
Исследования о генерации кода сходятся в одном: модель пишет лучше, когда ей заранее заданы требования к результату — обработка ошибок, крайние случаи, читаемость, — и когда её просят сначала разобраться в задаче, а потом писать. Отдельный приём — просить модель проверить собственный код как ревьюер или тестировщик.
[…] или {…} — на свои и отправьте в ChatGPT, Claude, DeepSeek, GigaChat или YandexGPT. Под каждым примером — ссылка на исследование, которое объясняет, почему приём работает.18 примеров промптов
-
Пример 1. Задача
Владелец небольшого интернет-магазина просит Claude написать Python-скрипт для обработки файла с заказами (CSV), и хочет, чтобы через полгода в этом коде можно было легко разобраться и что-то поправить — сам он не программист, но код будет отдавать фрилансеру на доработку.
ПРОМПТНапиши функцию на Python, которая читает файл orders.csv (колонки: дата, клиент, товар, сумма) и выводит сводку продаж по товарам за месяц. Дополнительно — требование к качеству кода: Качество: поддерживаемость Смысл: код должен легко читаться и редактироваться человеком, который видит его первый раз — например, фрилансером, который будет его чинить. Правила: - Разбей логику на отдельные функции с одной задачей каждая - Не делай вложенность условий и циклов больше 2 уровней - Используй понятные имена переменных, а не x, tmp, data1 Критерии приёмки: - Каждая функция помещается на экран без скролла - Нет повторяющихся блоков кода (copy-paste) - У каждой функции есть короткий докстринг, что она делает
Из разбора исследования: ISO-обогащение требований к коду: детальные спецификации качества побеждают однострочные пожелания
-
Пример 2. Задача
У вас есть Python-скрипт, который выгружает данные из Google Sheets и собирает отчёт. Вы попросили Claude "почистить" код — вынести повторяющуюся логику в функцию. После этого скрипт стал падать с KeyError .
ПРОМПТВот ошибка, которая появилась после того, как ты переписал код: {текст ошибки} Вот что именно изменилось (было → стало): {старый фрагмент кода} → {новый фрагмент кода} Не исправляй пока ничего. Сначала ответь: 1. В чём точная причина ошибки? 2. Что нужно поправить — назови конкретные переменные, ключи или функции.Из разбора исследования: RefactorAssist: диагноз причины ошибки перед исправлением кода — двухшаговый ремонт LLM-рефакторинга
-
Пример 3. Задача
Переводишь Python-скрипт для парсинга логов в Java для интеграции в корпоративную систему мониторинга. В коде куча вложенных условий и регулярок — прямой перевод через ChatGPT выдаёт код, который компилируется, но неправильно обрабатывает edge cases (пустые строки, спецсимволы).
ПРОМПТМне нужно перевести Python-функцию в Java. Используем двухшаговый подход: ШАГ 1: Создай NL-Specification — построчное описание логики на естественном языке без синтаксиса Python. Формат: - Сохрани структуру (отступы показывают вложенность) - Опиши ЧТО делает каждая строка, не КАК написано в Python - Без упоминания Python-специфичных конструкций (list comprehension, lambda, etc) Вот код: [вставь свой Python-код] ШАГ 2: После того как создашь NL-Specification, переведи ЕГО (не исходный Python-код) в Java. ШАГ 3: Проверь: соответствует ли Java-код NL-Specification построчно? Если есть расхождения — исправь.
Из разбора исследования: BabelCoder: перевод кода через естественно-языковое описание логики
-
Пример 4. Задача
Написать функцию на Python для парсинга объявлений с Авито — извлечь цену, название, ссылку из HTML.
ПРОМПТНапиши функцию на Python для парсинга объявлений с Авито. Требования: - Функция должна содержать ровно 25 строк кода - Используй библиотеку BeautifulSoup - Начни с docstring - Добавь обработку исключений - Стиль: подробные комментарии к каждому шагу - Верни результат как список словарей
Из разбора исследования: Парадокс ограничений: почему избыток требований ломает LLM
-
Пример 5. Задача
Ты готовишься к собеседованию в IT-компанию. Прорешал тестовое задание — написал код на Python для обработки данных клиентов. Нужен фидбек: правильно ли решил, где косяки, что улучшить перед отправкой.
ПРОМПТТы — опытный Python-разработчик и твоя задача — дать мне фидбек на моё решение тестового задания. Задача: написать скрипт для парсинга CSV-файла с данными клиентов, фильтрации по статусу "активный" и экспорта в JSON. Нужно обработать ошибки и оптимизировать по времени. Вот моё решение: [вставить код] Дай фидбек, явно выделив: - Правильное решение (как надо было) - Моё решение (сильные и слабые стороны) - Разрыв между ними (что упустил) - 3 конкретных совета, как улучшить подход к похожим задачам Уложись в 200 слов.
Из разбора исследования: Структурированный фидбек от AI: как студенты-физики получали помощь с аргументами
-
Пример 6. Задача
Вы копируете в Claude тикет из трекера (Jira/GitHub Issues) с описанием бага, стектрейсом, версиями библиотек, шагами воспроизведения — и просите исправить код.
ПРОМПТВот баг-репорт. Разбираю его по важности для тебя: [ГЛАВНОЕ — фокусируйся здесь] Описание проблемы: {текст описания} Трейс ошибки: {стектрейс} Тест, который падает: {тест-кейс} [СПРАВОЧНО — не главное для диагностики] Версия библиотеки: {версия} Окружение: {ОС, зависимости} Задача: найди причину ошибки, опираясь в первую очередь на описание, трейс и тест. Версию и окружение используй только если без них решение невозможно. Код функции: {код}Из разбора исследования: Диффузное внимание: почему LLM проваливают дебаг, когда цепляются за версию библиотеки вместо сути ошибки
-
Пример 7. Задача
Ты проходишь курс по Python на Stepik или разбираешь код на новой работе (например, стажировка в Т-Банке или Яндексе) и хочешь по-настоящему понять чужой скрипт, а не просто прочитать комментарии к нему.
ПРОМПТВот фрагмент кода и описание задачи, которую он решает. Описание задачи: {описание_программы} Код: {исходный_код} Строка №{номер_строки}: {содержание_строки} Вот как я объясняю, что делает эта строка своими словами: {моё_объяснение} Оцени моё объяснение: 1. Correctness — верно ли я описал поведение строки (1 или 0) 2. Completeness — насколько полно (число от 0 до 1) = (сколько понятий я назвал) / (сколько нужно было назвать) 3. Expected Concepts — какие понятия должны быть в правильном объяснении этой строки 4. Concepts Present — какие из них я назвал 5. Concepts Missing — какие пропустил 6. Объясни отдельно, почему correctness именно такой и почему completeness именно такая Верни ответ в формате JSON.Из разбора исследования: Self-Explanation Tutor: LLM оценивает не "правильно/неправильно", а какие понятия ты упустил
-
Пример 8. Задача
Фаундер хочет подготовить ТЗ для разработчика мобильного приложения для записи к барберу. Нет готовых образцов, нет опыта в написании ТЗ — нужен документ, который примет любой нормальный разработчик.
ПРОМПТТы — опытный системный аналитик и менеджер продукта с 10-летним опытом написания технических заданий для мобильных приложений. Создай сценарий: техническое задание для мобильного приложения в сфере [барберские услуги]. Следуй точно этой структуре: 1. ОБЗОР ПРОДУКТА 1.1 Назначение и цели 1.2 Целевая аудитория 1.3 Ключевые ограничения 2. ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ 2.1 Основные функции (список с описанием каждой) 2.2 Пользовательские роли и права доступа 2.3 Интеграции с внешними сервисами 3. НЕФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ 3.1 Производительность 3.2 Безопасность 3.3 Масштабируемость 4. ОГРАНИЧЕНИЯ И ДОПУЩЕНИЯ 4.1 Технологический стек 4.2 Временны́е ограничения 4.3 Бюджетные рамки Рассуждай пошагово: сначала определи пользовательский сценарий, потом выпиши требования по каждому разделу. Делай требования конкретными, измеримыми, без общих фраз. Объём — 600–800 слов.
Из разбора исследования: Синтетическая генерация профдокументов: как создать ТЗ, бриф или спецификацию, которые сойдут за реальные
-
Пример 9. Задача
Менеджер интернет-магазина на Битрикс24 пишет в чат разработчикам: «Оплата через СБП иногда не проходит, клиенты жалуются». Разработчик хочет не гадать, а сразу получить от ассистента список того, чего не хватает, чтобы воспроизвести проблему.
ПРОМПТТы — триаж-инженер. Твоя работа: решить, достаточно ли в баг-репорте информации для воспроизведения, и если нет — задать автору вопросы. Ты не дописываешь недостающее сам и ничего не додумываешь. Заголовок: Оплата через СБП иногда не проходит Текст: Клиенты жалуются, что оплата через СБП не проходит. Началось на этой неделе. Магазин на Битрикс24, эквайринг — Т-Банк. Круг 1: 1. Перечисли пробелы: что отсутствует или двусмысленно и мешает воспроизвести. Для каждого пробела укажи серьёзность: высокая / средняя / низкая. 2. Если пробелов нет — напиши «ДОСТАТОЧНО» и остановись. 3. Сформулируй вопросы автору ТОЛЬКО по найденным пробелам. Один пробел — один конкретный вопрос. Не больше 5 вопросов. Круги 2–5 (когда я пришлю ответы): 1. По каждой паре «вопрос–ответ» реши: достаточно / недостаточно. 2. Найди новые пробелы, которые вскрыли ответы. 3. Задай вопросы только по оставшимся пробелам. Остановись, если все критичные пробелы закрыты или я не ответил ни на один вопрос. Пробелы: [список с серьёзностью] Вопросы: [нумерованный список]
Из разбора исследования: BRQGen: адаптивные уточняющие вопросы — модель сначала решает, хватает ли информации, и спрашивает только о недостающем
-
Пример 10. Задача
Ты попросил ChatGPT написать функцию calculate_discount(price, customer_type) для расчёта скидок в интернет-магазине. Хочешь тесты, которые реально поймают ошибку, если логика скидок случайно сломается, а не просто «пройдут для галочки».
ПРОМПТТы — опытный тестировщик Python, специализация — тесты, которые находят реальные ошибки. Вот код функции: {вставить код функции} Перед тем как писать тесты, распиши в пунктах: 1. Обычные случаи использования 2. Граничные значения (нули, отрицательные числа, пустые строки, максимумы) 3. Ошибочные входные данные — какие исключения должны возникать 4. Что нужно подменить для проверки (внешние зависимости, если есть) 5. Инварианты — что должно оставаться неизменным в любом случае Теперь напиши тесты на pytest, которые: - Проверяют конкретные числовые значения, а не просто "функция не упала" - Не используют "магические числа" без объяснения, откуда они взялись - Каждый тест проверяет одно поведение - Должны ПРОВАЛИТЬСЯ, если в коде поменять хотя бы одну константу, знак сравнения или условие Выведи только готовый код тестов, без markdown-обёртки.Из разбора исследования: Генерация тестов LLM: выбор модели решает больше, чем сложность промпта
-
Пример 11. Задача
Маркетолог просит у ChatGPT скрипт на Python для формы на сайте (Tilda, Taplink, самописный лендинг) — форма принимает файл от пользователя (резюме, фото, документ) и сохраняет его на сервер.
ПРОМПТНапиши функцию на Python, которая сохраняет файл, загруженный пользователем через веб-форму, на диск в папку /uploads/. Функция должна проходить такие проверки: 1. Обычный файл "photo.jpg" — сохраняется нормально. 2. Если имя файла "../../etc/passwd" или "../../../config.py" — функция должна ОТКАЗАТЬ и не сохранять файл (защита от выхода за пределы папки). 3. Если в имени файла есть спецсимволы, нулевые байты или двойное кодирование пути — функция должна отказать. 4. Размер файла больше 10 МБ — отказ. Покажи код и объясни, как он проверяет каждый пункт.
Из разбора исследования: Тесты как спецификация: почему код, прошедший все проверки, всё равно может быть дырявым
-
Пример 12. Задача
Нужен скрипт для аналитики продаж. Есть CSV на 100 000 строк (товар, выручка). Надо найти топ-10 товаров по выручке. Первая попытка с ChatGPT выдала код, который считает 2 минуты — клиент ждать не будет.
ПРОМПТТы — Python-разработчик. Реши задачу. Описание: Дан список товаров с выручкой. Найди топ-10 по выручке. Пример: Вход: [("Ноутбук", 150000), ("Мышь", 500), ("Клавиатура", 2000)] Выход: [("Ноутбук", 150000), ("Клавиатура", 2000), ("Мышь", 500)] Ограничения: - до 100 000 товаров - выручка от 0 до 10 000 000 рублей Заготовка: def top_sales(products: list) -> list: # твой код Тесткейсы: products = [("Товар1", 1000), ("Товар2", 5000), ("Товар3", 3000)] Ожидается: [("Товар2", 5000), ("Товар3", 3000), ("Товар1", 1000)] Инструкции: Только исполняемый код, без объяснений. Оптимизируй сложность алгоритма по времени — данных может быть много.Из разбора исследования: Холистическая оценка LLM для генерации кода: какие модели пишут лучше и почему добавление слова "оптимизируй" снижает ошибки на 30%
-
Пример 13. Задача
Владелец небольшого бизнеса без опыта в программировании просит Claude или ChatGPT написать сайт с формой заявок и админкой, где менеджер видит все заявки и может их закрывать.
ПРОМПТНапиши веб-приложение на Python (Flask) для сбора заявок с сайта. Функции: - форма на сайте, куда клиент вводит имя, телефон и текст заявки - страница входа для менеджера (логин и пароль) - админ-панель, где менеджер видит все заявки и может отмечать их "в работе" или "закрыто" - база данных для хранения заявок и пользователей Дополнительно, при разработке следуй этим требованиям безопасности: - Проверяй права доступа на каждый запрос: обычный пользователь не должен видеть админ-панель. - Защити формы и действия, меняющие данные, от подделки запроса (CSRF). - Храни пароли только в виде хешей с солью (bcrypt), никогда в открытом виде. - Все пароли, ключи и секреты храни в переменных окружения, не пиши их в коде. - Используй параметризованные запросы к базе данных, проверяй все данные от пользователя. - Ограничь загрузку файлов (если есть) по типу и размеру, не доверяй имени файла от клиента. - Отключи режим отладки и подробные сообщения об ошибках. - Настрой куки сессии с флагами HttpOnly, Secure, SameSite, ограничь срок жизни токена. - В целом следуй рекомендациям OWASP Top 10 по безопасности веб-приложений.
Из разбора исследования: Промпт с требованиями безопасности убирает критические уязвимости при вайб-кодинге
-
Пример 14. Задача
Аналитик регулярно просит Claude или ChatGPT писать SQL-запросы для еженедельных отчётов по продажам. Часть запросов содержит скрытые ошибки (забытый фильтр по дате, неправильный JOIN), и хочется понимать, когда доверять ответу без проверки, а когда перепроверять руками.
ПРОМПТВот моя история твоих ответов на похожие задачи (написание SQL-запросов для отчётов): 1. Задача: подсчёт возвратов клиентов за квартал. Ты сказал уверенность 90%. Итог: ошибка в JOIN, результат неверный. 2. Задача: агрегация продаж по регионам. Ты сказал уверенность 85%. Итог: верно. 3. Задача: расчёт LTV клиента. Ты сказал уверенность 95%. Итог: пропущен фильтр по дате, результат неверный. 4. Задача: подсчёт среднего чека по категориям. Ты сказал уверенность 80%. Итог: верно. [добавь ещё 5-10 похожих записей из своей практики] Новая задача: {текст новой SQL-задачи} Сделай так: 1. Напиши решение 2. Оцени свою уверенность в правильности (0-100%) 3. Посмотри на историю выше — как часто ты был прав, когда называл похожую уверенность на похожих задачах? 4. Назови, какую ошибку ты повторяешь чаще всего в этой категории задач 5. Дай финальную скорректированную оценку уверенности с учётом этой статистикиИз разбора исследования: XConf: калибровка уверенности LLM через собственный опыт прошлых похожих задач
-
Пример 15. Задача
Настроить Python для парсинга данных с Wildberries и Ozon — собрать цены и остатки товаров для мониторинга конкурентов.
ПРОМПТМне нужно настроить Python для парсинга Wildberries и Ozon — собирать цены и остатки товаров. Предложи необходимые библиотеки для этой задачи. Для каждой библиотеки укажи: 1. Прямую ссылку на PyPI или GitHub 2. Последнюю стабильную версию 3. Дату последнего обновления 4. Подтверждение, что пакет активно поддерживается Если не уверен в существовании пакета — скажи прямо.
Из разбора исследования: Package Hallucination: LLM выдумывают несуществующие библиотеки
-
Пример 16. Задача
ChatGPT написал функцию обработки данных, но она работает не так. Вместо проверки через assert , попроси показать промежуточные значения.
ПРОМПТФункция parse_price() возвращает странные результаты. Не пиши assert-ы для проверки. Вместо этого: добавь print() после каждого шага обработки — покажи что получилось после .strip(), после .replace(), после int(). Запусти на примерах: "1 200 руб", "1200р.", "1200.00"
Из разбора исследования: Observation > Verification: почему LLM лучше показывают значения, чем проверяют правила
-
Пример 17. Задача
Ты пишешь вакансию для найма Middle-разработчика. Хочешь, чтобы Claude оценил три тестовых задания — какое из них реально требует самостоятельного мышления, какое — просто воспроизведение известных паттернов.
ПРОМПТОцени три тестовых задания по уровню самостоятельности мышления. Используй 4 уровня: 1. Воспроизведение — кандидат воспроизводит известный факт или команду 2. Применение процедуры — знакомый алгоритм, нужно выполнить шаги 3. Применение с пониманием — требует понять зачем, а не только как 4. Самостоятельное мышление — нет готового пути, нужно конструировать решение Образцы для калибровки: Уровень 1 — "Что такое git rebase?" Уровень 2 — "Напиши SQL-запрос на группировку заказов по дате" Уровень 3 — "Выбери структуру БД для хранения иерархии категорий, объясни плюсы" Уровень 4 — "Придумай систему алертов для интернет-магазина, которая предсказывает аномалии, не зная заранее что считать аномалией" ВАЖНО: не уходи к середине (уровню 2-3) если задание явно крайнее. Если задание тривиальное — ставь 1, выдающееся — ставь 4. Для каждого задания: — Шаг 1: Какие процессы мышления реально нужны? — Шаг 2: Есть ли готовый алгоритм решения? — Шаг 3: Итоговый уровень и почему Задания: [Задание А] [Задание Б] [Задание В]Из разбора исследования: Bias оценщика: LLM систематически уходит в середину и смотрит на слова, не на суть
-
Пример 18. Задача
Готовишь данные для анализа клиентской базы онлайн-школы. Нужно: убрать дубликаты email, привести даты регистрации к единому формату (YYYY-MM-DD), заполнить пропуски в поле "город" на основе телефонного кода, классифицировать клиентов по активности (более 3 покупок = "активный").
ПРОМПТЗадача: обработать таблицу клиентов по следующим шагам: 1. Удалить дубликаты по email (оставить последнюю запись) 2. Привести даты регистрации к формату YYYY-MM-DD 3. Заполнить пропуски в "город" на основе телефонного кода 4. Добавить колонку "статус": >3 покупок = "активный", иначе "неактивный" Данные: [прикрепить CSV или описать структуру] Используй подход Governance Contracts: 1. Сначала в роли Планировщика: разбей задачу на операции, для каждой определи: - Pre: что требуется на входе (формат, обязательные поля) - Post: что гарантируется на выходе - Проверь что выход каждого шага соответствует входу следующего 2. Выполни операции по порядку 3. После каждого шага в роли Проверяющего: проверь выполнены ли post-условия. Если нет — опиши что пошло не так и исправь. Покажи контракты до выполнения и результаты проверок после каждого шага.
Из разбора исследования: DataGovAgent: Governance Contracts и Assembly Line для сложных многошаговых задач
