Промпты для написания кода. 30 готовых примеров для генерации

От NP_Article

ИИ-технолог

Обучение управлению ИИ с 0 до мастерского уровня

250+ уроков Начато наполнение Без инфоцыган и воды

Многие разработчики смотрят на нейросети с надеждой, но часто сталкиваются с разочарованием. Вместо полезного помощника получают генератор нерабочего или банального кода. Проблема не в технологии, а в подходе. Качественные промпты для написания кода – это не магия, а навык, который превращает ИИ из игрушки в мощный инструмент, экономящий часы работы.

Эта статья – практическое руководство. Здесь нет абстрактной теории. Только конкретные, проверенные шаблоны запросов, которые решают реальные задачи программиста. Материал создан, чтобы вы перестали бороться с нейросетью и начали получать от нее предсказуемый и качественный результат.

Вы увидите, как правильно ставить задачи ИИ для решения таких проблем, как:

  • Генерация функций и классов с нуля.
  • Рефакторинг и улучшение существующего кода.
  • Написание и оптимизация SQL-запросов.
  • Создание регулярных выражений.
  • Отладка и поиск ошибок.
  • Написание юнит-тестов.

Цель – дать вам готовый набор инструментов, который можно сразу применять в работе, а не просто еще один список «полезных» советов, которые и так все знают. Пора заставить ИИ работать на вас, а не наоборот.

Типичные ошибки при составлении запросов для ИИ

Прежде чем переходить к готовым решениям, важно понять, что обычно делают не так. Большинство неудачных попыток получить код от нейросети – это следствие одних и тех же просчетов. Избегая их, вы уже повысите качество результатов в несколько раз.

  1. Просить написать все приложение целиком. Это самая частая и наивная ошибка. Нейросеть не сможет создать сложный проект за один раз, потому что у нее ограничен объем памяти (контекста), и она не видит всей картины.
  2. Не предоставлять контекст. Запрос «напиши функцию для сортировки» без указания языка, структуры данных, существующих зависимостей и стиля кода приведет к созданию универсального, но бесполезного в вашем проекте кода.
  3. Использовать расплывчатые формулировки. Фразы вроде «сделай красиво» или «оптимизируй код» ничего не значат для машины. Ей нужны четкие критерии: «уменьши вложенность циклов», «используй стиль именования camelCase», «сократи количество запросов к базе данных».
  4. Не указывать формат желаемого ответа. Если не попросить явно, ИИ может выдать код вместе с длинными объяснениями, без комментариев или в виде сплошного текста. Всегда уточняйте, как должен выглядеть результат: «только код», «код с подробными комментариями», «в формате JSON».
  5. Слепо доверять сгенерированному коду. Нейросеть может «галлюцинировать» – придумывать несуществующие функции, использовать устаревшие библиотеки или генерировать код с тонкими логическими ошибками. Любой результат требует проверки и тестирования.
  6. Не разбивать сложную задачу на подзадачи. Вместо того чтобы просить «создать систему аутентификации», разделите запрос на этапы: «создай структуру таблицы пользователей в базе данных», «напиши функцию регистрации», «напиши функцию входа». Так вы контролируете процесс и получаете более качественный результат на каждом шаге.
  7. Забывать про ограничения и исключения. Не указав, чего делать НЕ нужно, вы рискуете получить код, использующий нежелательные библиотеки или подходы. Всегда добавляйте ограничения: «не используй библиотеку X», «избегай рекурсии», «решение должно работать без внешних зависимостей».

Сравнение слабых и сильных промптов для типовых задач

Наглядная разница между запросом, который ведет к разочарованию, и запросом, который дает результат. Посмотрите, как несколько деталей меняют все дело.

Задача Слабый промпт (ведет к ошибкам) Сильный промпт (дает результат) Почему сильный промпт лучше
Написать функцию Напиши функцию на Python для валидации email. Ты – старший Python-разработчик. Напиши функцию is_valid_email(email_string) на Python 3.9. Функция должна возвращать True, если строка является валидным email, и False в противном случае. Используй встроенную библиотеку `re` для проверки. Не используй сторонние пакеты. Добавь комментарии к регулярному выражению. Обработай случай, когда на вход подается не строка. Задана роль, версия языка, конкретное имя функции, указаны инструменты (библиотека `re`) и ограничения (без сторонних пакетов), а также требования к обработке ошибок и документированию.
Найти ошибку в коде Мой код не работает. Вот он: [код]. Исправь. Ты – опытный отладчик. Проанализируй этот код на JavaScript: [вставьте код]. Он должен делать [опишите, что код должен делать], но вместо этого выдает ошибку [вставьте текст ошибки] или ведет себя так: [опишите неправильное поведение]. Найди причину ошибки, объясни ее и предложи исправленный вариант кода. Поясни, почему твое исправление решает проблему. Предоставлен полный контекст: что код должен делать, как он себя ведет на самом деле, текст ошибки. Запрос не просто «исправь», а «проанализируй, объясни и исправь», что ведет к более глубокому и полезному ответу.
Оптимизировать SQL-запрос Оптимизируй этот SQL-запрос: [запрос]. Ты – эксперт по оптимизации баз данных PostgreSQL. Проанализируй следующий SQL-запрос: [вставьте запрос]. Он выполняется слишком долго на таблицах `users` (примерно 1 млн строк) и `orders` (10 млн строк). Структура таблиц: [опишите ключевые поля и индексы]. Предложи оптимизированную версию запроса. Объясни, какие изменения ты внес (например, добавил JOIN вместо подзапроса, изменил условия WHERE) и почему это ускорит выполнение. Задана роль и конкретная СУБД (PostgreSQL). Указан контекст проблемы (медленное выполнение) и масштаб данных (размеры таблиц), а также структура таблиц. Это позволяет ИИ дать не общие, а конкретные рекомендации по оптимизации.
Написать юнит-тесты Напиши тесты для моей функции. Ты – QA-инженер. Напиши набор юнит-тестов для следующей функции на TypeScript: [вставьте код функции]. Используй фреймворк Jest. Покрой следующие случаи: позитивный сценарий, передача некорректных данных (null, undefined), граничные значения, обработка ошибок. Формат ответа: готовый файл с тестами, который можно сразу запустить. Указан фреймворк (Jest) и язык (TypeScript). Четко перечислены сценарии, которые нужно протестировать, что гарантирует полное покрытие кода. Требование к формату («готовый файл») экономит время на копирование и вставку.

Готовые промпты для написания кода: 30 шаблонов для ваших задач

Ниже – коллекция из 30 детализированных промптов. Они разбиты по типовым задачам, с которыми сталкивается каждый разработчик. Скопируйте, вставьте свои данные и получите результат. Это не волшебство, а системный подход к общению с нейросетью.

1. Генерация функции с нуля

Проблема:
Нужно быстро написать стандартную функцию, но не хочется тратить время на поиск синтаксиса или вспоминать детали реализации.

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

Текст промпта:

*****

Ты – опытный [укажите язык, например, «Python-разработчик»]. Твоя задача – написать функцию с нуля.

Задача: Создай функцию с названием [укажите название функции, например, "calculate_factorial"].
Язык программирования: [укажите язык и версию, например, «Python 3.10»].
Входные параметры: функция должна принимать [опишите параметры, их типы и названия, например, «один параметр n типа integer»].
Возвращаемое значение: функция должна возвращать [опишите тип и суть возвращаемого значения, например, «целое число – факториал числа n«].
Логика работы: [опишите по шагам, что должна делать функция, например, «1. Проверить, что n – неотрицательное целое число. 2. Если n=0, вернуть 1. 3. В противном случае, вычислить факториал рекурсивно или итеративно»].
Обработка ошибок: Если на вход поданы некорректные данные (например, отрицательное число или не число), функция должна [укажите поведение, например, «вызвать исключение ValueError с сообщением ‘Входное значение должно быть неотрицательным целым числом'»].
Стиль кода: Следуй официальному руководству по стилю [укажите стайл-гайд, например, «PEP 8»].
Комментарии: Добавь к функции строку документации (docstring), объясняющую ее назначение, параметры и возвращаемое значение.

Формат ответа: Только код функции, без лишних пояснений.

*****

Почему это работает:
Промпт не оставляет ИИ пространства для домыслов. Он содержит исчерпывающую информацию: роль, язык, сигнатуру функции, логику, обработку ошибок и требования к стилю. Это заставляет нейросеть сгенерировать точный и готовый к использованию код.

2. Рефакторинг существующего кода

Проблема:
Есть работающий, но «грязный» код: сложный, запутанный, трудный для чтения. Его нужно улучшить, но нет времени делать это вручную.

Решение:
Запрос, который фокусирует ИИ на конкретных целях рефакторинга: читаемость, производительность или соответствие стандартам.

Текст промпта:

*****

Ты – эксперт по чистому коду и рефакторингу. Твоя задача – улучшить предоставленный фрагмент кода.

Исходный код на [укажите язык, например, «JavaScript ES6»]:

[вставьте ваш код]

Цели рефакторинга:

  1. Повысить читаемость: [укажите, что именно улучшить, например, «заменить вложенные тернарные операторы на if-else, дать переменным более осмысленные имена»].
  2. Улучшить производительность: [укажите конкретную цель, например, «уменьшить количество итераций цикла, избежать повторных вычислений»].
  3. Привести к стандартам: [укажите стайл-гайд, например, «привести код в соответствие с руководством по стилю Airbnb»].
  4. Упростить логику: [укажите, что можно упростить, например, «избавиться от лишних флагов, использовать встроенные методы массива»].

Ограничения: Не изменяй публичный интерфейс (названия функций и их параметры). Функциональность должна остаться прежней.

Формат ответа:

  1. Предложи исправленный вариант кода.
  2. Под кодом, в виде списка, кратко объясни каждое внесенное изменение и почему оно улучшает код.

*****

Почему это работает:
Вместо абстрактного «улучши код», промпт задает конкретные векторы для улучшения (читаемость, производительность). Указание на то, что нельзя менять, предотвращает поломку зависимого кода, а требование объяснить изменения помогает понять логику ИИ.

3. Объяснение фрагмента кода

Проблема:
Вы столкнулись с чужим или сложным кодом (например, с использованием продвинутых техник или регулярных выражений) и не можете быстро понять, как он работает.

Решение:
Промпт, который заставляет ИИ выступить в роли наставника и разложить сложный код «по полочкам».

Текст промпта:

*****

Ты – опытный наставник для программистов. Твоя задача – объяснить, как работает следующий фрагмент кода, простым и понятным языком.

Код для анализа на [укажите язык, например, «Python»]:

[вставьте сложный код]

Что нужно объяснить:

  1. Общая цель: Что этот код делает в целом? Какую задачу решает?
  2. Пошаговая логика: Опиши работу кода строка за строкой или по логическим блокам.
  3. «Магические» места: Объясни любые неочевидные части, например, сложные алгоритмы, битовые операции, синтаксический сахар или специфические функции библиотек.
  4. Вход и выход: Что этот код ожидает на входе и что производит на выходе?
  5. Возможные улучшения или риски: Есть ли в этом коде потенциальные проблемы или способы сделать его лучше?

Стиль объяснения: Говори как с начинающим коллегой, избегая излишне сложного жаргона. Используй аналогии, если это поможет пониманию.

*****

Почему это работает:
Промпт структурирует ответ. Он требует не просто пересказать код, а дать многоуровневое объяснение: от общей цели до разбора «магических» строк. Это превращает ответ ИИ в полноценный урок.

4. Написание SQL-запроса

Проблема:
Нужно получить данные из базы, но для этого требуется сложный SQL-запрос с объединениями, группировками или подзапросами, писать который долго и можно ошибиться.

Решение:
Запрос, который предоставляет ИИ всю необходимую информацию о структуре базы данных и желаемом результате.

Текст промпта:

*****

Ты – аналитик данных, эксперт по SQL. Напиши SQL-запрос для получения нужных данных.

Диалект SQL: [укажите диалект, например, «PostgreSQL 14»].

Структура таблиц:

  • Таблица [название таблицы 1, например, "users"]:
    • [колонка 1, например, "id"] (INT, PRIMARY KEY)
    • [колонка 2, например, "name"] (VARCHAR)
    • [колонка 3, например, "registration_date"] (DATE)
  • Таблица [название таблицы 2, например, "orders"]:
    • [колонка 1, например, "id"] (INT, PRIMARY KEY)
    • [колонка 2, например, "user_id"] (INT, FOREIGN KEY to users.id)
    • [колонка 3, например, "amount"] (DECIMAL)
    • [колонка 4, например, "created_at"] (TIMESTAMP)

Задача: Напиши запрос, который [опишите, что нужно получить, например, «выводит имена всех пользователей, зарегистрированных в прошлом месяце, и общую сумму их заказов. Выводить только тех, у кого сумма заказов больше 1000»].
Требования к результату:

  • Колонки в результате: [название колонки 1, например, "user_name"], [название колонки 2, например, "total_amount"].
  • Сортировка: [укажите, как сортировать, например, «по убыванию общей суммы заказов»].

Формат ответа: Только SQL-код.

*****

Почему это работает:
Промпт содержит три ключевых элемента успеха для SQL-запросов: диалект SQL, точную схему данных (таблицы, колонки, связи) и четкое описание желаемого результата. Это исключает двусмысленность и позволяет ИИ построить корректный и эффективный запрос.

5. Генерация регулярного выражения

Проблема:
Регулярные выражения – мощный, но сложный и неочевидный инструмент. Создание «регулярки» для нетривиальной задачи может занять много времени и нервов.

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

Текст промпта:

*****

Ты – эксперт по регулярным выражениям. Создай регулярное выражение (regex) для [укажите диалект, например, «PCRE (PHP/Python)»].

Задача: Мне нужно регулярное выражение для [опишите, что нужно найти или проверить, например, «проверки корректности имени пользователя»].

Требования к строке:

  • [укажите требование 1, например, «Длина от 3 до 16 символов»].
  • [укажите требование 2, например, «Может содержать только латинские буквы в нижнем регистре, цифры и символ подчеркивания»].
  • [укажите требование 3, например, «Должна начинаться с буквы»].

Примеры строк, которые должны совпасть:

  • [пример 1, например, "user_name1"]
  • [пример 2, например, "test3"]

Примеры строк, которые НЕ должны совпасть:

  • [пример 1, например, "1user"] (не начинается с буквы)
  • [пример 2, например, "us"] (слишком короткое)
  • [пример 3, например, "user-name"] (содержит недопустимый символ)

Формат ответа:

  1. Само регулярное выражение.
  2. Подробное объяснение каждой части выражения (что означает ^, [], + и т.д.).

*****

Почему это работает:
Обучение на примерах (few-shot learning) – один из самых эффективных способов работы с ИИ. Предоставляя конкретные примеры совпадений и несовпадений, вы даете нейросети четкие критерии для создания идеального регулярного выражения, а требование объяснить результат помогает вам самим понять его логику.

6. Написание юнит-тестов

Проблема:
Написание тестов – рутинная, но критически важная задача. Хочется автоматизировать этот процесс, чтобы обеспечить покрытие кода без лишних усилий.

Решение:
Запрос, который предоставляет код функции и четкие указания, какие сценарии необходимо протестировать.

Текст промпта:

*****

Ты – QA-инженер, специализирующийся на автоматизированном тестировании. Твоя задача – написать юнит-тесты.

Тестируемая функция на [укажите язык, например, «TypeScript»]:

[вставьте код функции, которую нужно протестировать]

Инструменты:

  • Фреймворк для тестирования: [укажите фреймворк, например, «Jest»].
  • Библиотеки для моков (если нужны): [укажите, например, «jest.fn()»].

Сценарии для тестирования:

  1. Позитивный сценарий: Проверить работу с корректными типичными данными.
  2. Граничные значения: Проверить работу с [опишите граничные значения, например, «пустыми строками, нулевыми значениями, максимальными/минимальными числами»].
  3. Некорректные входные данные: Проверить, как функция обрабатывает [опишите некорректные данные, например, «null, undefined, данные неправильного типа»].
  4. Сценарий ошибки: Проверить, что функция корректно выбрасывает исключение, когда [опишите условия для ошибки].

Формат ответа: Предоставь полный код файла с тестами (например, myFunction.test.ts), готовый к запуску. Не включай ничего, кроме кода.

*****

Почему это работает:
Промпт не просто просит «написать тесты», а дает исчерпывающий план тестирования. Перечисление конкретных сценариев (позитивные, граничные, негативные) гарантирует, что ИИ создаст полный набор тестов, покрывающий все важные аспекты работы функции.

7. Конвертация кода с одного языка на другой

Проблема:
Нужно перенести логику из существующего проекта на одном языке в новый проект на другом. Ручной перенос – это долго и чревато ошибками.

Решение:
Промпт, который четко указывает исходный и целевой языки, а также просит учесть идиомы и лучшие практики целевого языка.

Текст промпта:

*****

Ты – полиглот-программист, эксперт в миграции кода между языками. Твоя задача – перевести код с одного языка на другой.

Исходный код на [укажите исходный язык, например, «Python»]:

[вставьте исходный код]

Целевой язык: [укажите целевой язык, например, «JavaScript (Node.js)»].

Требования к конвертации:

  • Сохрани всю исходную логику и функциональность.
  • Используй идиоматичный код и стандартные практики целевого языка. Например, [укажите пример, «вместо циклов for используй методы массивов map, filter, reduce в JavaScript»].
  • Если в исходном коде используются специфичные для языка библиотеки, найди их наиболее близкие аналоги в экосистеме целевого языка. Например, [укажите аналог, «библиотеку requests из Python можно заменить на axios в Node.js»].
  • Сохрани комментарии и структуру кода, насколько это возможно.

Формат ответа: Предоставь только сконвертированный код на целевом языке.

*****

Почему это работает:
Ключевое требование здесь – «использовать идиоматичный код». Это заставляет ИИ не просто механически переводить синтаксис, а адаптировать логику под стиль и лучшие практики нового языка, что делает результат более качественным и естественным для новой среды.

8. Создание документации для кода

Проблема:
Код написан, но на создание качественной документации (например, docstrings или JSDoc) не хватает времени или сил.

Решение:
Промпт, который просит ИИ проанализировать код и сгенерировать документацию в заданном формате.

Текст промпта:

*****

Ты – технический писатель, который специализируется на документировании кода. Твоя задача – сгенерировать документацию для функции/класса.

Код для документирования на [укажите язык, например, «Java»]:

[вставьте ваш код без документации]

Формат документации: [укажите стандарт, например, «Javadoc»].
Что нужно включить в документацию:

  • Краткое описание назначения функции/класса.
  • Описание каждого входного параметра (тег @param): его тип, название и что он означает.
  • Описание возвращаемого значения (тег @return): что и в каком случае возвращается.
  • Описание возможных исключений (тег @throws): какие исключения и при каких условиях могут быть выброшены.
  • Пример использования в блоке @see или @example.

Формат ответа: Предоставь исходный код, но уже с добавленными блоками документации.

*****

Почему это работает:
Промпт задает строгий стандарт документирования (Javadoc, JSDoc, reStructuredText и т.д.) и перечисляет все обязательные разделы. Это гарантирует, что сгенерированная документация будет полной, структурированной и соответствующей общепринятым нормам.

9. Генерация кода для взаимодействия с API

Проблема:
Нужно написать код для отправки запроса к стороннему REST API, включая обработку ответа и ошибок, но не хочется разбираться в документации с нуля.

Решение:
Промпт, который описывает конечную точку API, метод запроса, заголовки, тело запроса и структуру ожидаемого ответа.

Текст промпта:

*****

Ты – бэкенд-разработчик. Напиши код для взаимодействия с REST API.

Язык и среда: [укажите, например, «Node.js с использованием библиотеки axios»].
Информация об API:

  • Конечная точка (URL): [укажите URL, например, "https://api.example.com/v1/users"]
  • HTTP-метод: [укажите метод, например, «POST»]
  • Заголовки (Headers): [перечислите заголовки, например, Content-Type: application/json, Authorization: Bearer [ВАШ_ТОКЕН]]
  • Тело запроса (Body): Опиши структуру JSON, которую нужно отправить. Например: { "name": "string", "email": "string" }.
  • Ожидаемый успешный ответ (200 OK): Опиши структуру JSON, которая вернется в случае успеха. Например: { "id": "integer", "status": "string" }.

Задача: Напиши асинхронную функцию [название функции, например, "createUser"], которая принимает [параметры функции, например, «объект с данными пользователя (name, email)»], выполняет запрос к API и возвращает [что нужно вернуть, например, «данные из тела ответа»]. Функция должна обрабатывать ошибки сети и HTTP-статусы, отличные от 2xx, выбрасывая исключение.

Формат ответа: Только код функции.

*****

Почему это работает:
Промпт предоставляет ИИ полную «спецификацию» API-запроса. Это как если бы вы дали разработчику подробное техническое задание. Указание всех деталей – от URL до структуры ответа – позволяет нейросети сгенерировать точный и рабочий клиентский код.

10. Оптимизация алгоритма

Проблема:
Есть алгоритм, который работает правильно, но слишком медленно или потребляет много памяти. Нужно найти более эффективное решение.

Решение:
Запрос, который предоставляет исходный код алгоритма и просит найти решение с лучшей асимптотической сложностью (Big O).

Текст промпта:

*****

Ты – ученый-информатик, эксперт по алгоритмам и структурам данных. Твоя задача – оптимизировать предоставленный алгоритм.

Исходный код алгоритма на [укажите язык, например, «C++»]:

[вставьте ваш медленный алгоритм]

Проблема: Этот алгоритм решает задачу [опишите задачу], но имеет асимптотическую сложность [укажите сложность, например, «O(n^2)»], что слишком медленно для моих данных.

Задача:

  1. Проанализируй исходный код и определи, почему он неэффективен.
  2. Предложи альтернативный алгоритм для решения той же задачи, но с лучшей асимптотической сложностью (например, O(n log n) или O(n)).
  3. Напиши реализацию нового, оптимизированного алгоритма на том же языке.
  4. Объясни, за счет чего достигается улучшение производительности (например, «использование хеш-таблицы для быстрого поиска вместо вложенного цикла»).

Формат ответа: Структурированный ответ с разделами: «Анализ проблемы», «Оптимизированный алгоритм (код)» и «Объяснение оптимизации».

*****

Почему это работает:
Промпт переводит проблему из плоскости «сделай быстрее» в академическую плоскость «улучши асимптотическую сложность». Это заставляет ИИ искать не микрооптимизации, а принципиально другие, более эффективные подходы к решению задачи.

11. Генерация HTML/CSS-компонента

Проблема:
Нужно быстро сверстать стандартный UI-компонент (кнопка, карточка, форма), но не хочется писать всю HTML-разметку и CSS-стили вручную.

Решение:
Промпт, который детально описывает внешний вид и структуру компонента, а также указывает на использование современных практик (Flexbox, Grid).

Текст промпта:

*****

Ты – фронтенд-разработчик, эксперт по HTML5 и CSS3. Создай UI-компонент.

Задача: Сверстай компонент «[название, например, ‘Карточка товара’]».

Структура HTML:

  • Основной контейнер (div с классом product-card).
  • Внутри него:
    • Изображение (img с классом product-image).
    • Название товара (h3 с классом product-title).
    • Краткое описание (p с классом product-description).
    • Цена (div с классом product-price).
    • Кнопка «Добавить в корзину» (button с классом add-to-cart-btn).

Требования к CSS:

  • Используй Flexbox или Grid для выравнивания элементов.
  • Карта должна иметь фиксированную ширину [например, «300px»], тень и скругленные углы.
  • Название должно быть жирным, цена – крупнее и другого цвета.
  • Кнопка должна иметь цвет фона, меняющийся при наведении курсора (hover-эффект).
  • Адаптивность: компонент не должен «ломаться» на экранах шириной менее 400px.

Формат ответа: Предоставь два блока кода: один с HTML-разметкой, другой – с CSS-стилями.

*****

Почему это работает:
Промпт работает как подробный макет для верстальщика. Четкое описание HTML-структуры (семантика и классы) и визуальных требований к CSS не оставляет ИИ шансов сделать что-то не так. Упоминание современных технологий (Flexbox) направляет его на правильный путь.

12. Создание конфигурационного файла

Проблема:
Нужно настроить инструмент (веб-сервер, сборщик, линтер), но синтаксис его конфигурационного файла сложен или плохо документирован. Например, Dockerfile, nginx.conf, .eslintrc.js.

Решение:
Промпт, который описывает желаемое поведение и просит сгенерировать готовый конфигурационный файл с комментариями.

Текст промпта:

*****

Ты – DevOps-инженер / Системный администратор. Создай конфигурационный файл для [название инструмента, например, «Docker»].

Задача: Сгенерируй [имя файла, например, "Dockerfile"] для контейнеризации [опишите приложение, например, «простого Node.js Express-приложения»].

Требования к конфигурации:

  • Базовый образ: [укажите образ, например, «node:18-alpine»].
  • Рабочая директория: [укажите путь, например, «/app»].
  • Зависимости: [опишите шаги для установки, например, «Скопировать package.json и package-lock.json, затем выполнить npm install --production«].
  • Исходный код: Скопировать все файлы проекта в рабочую директорию.
  • Порт: Приложение работает на порту [укажите порт, например, «3000»]. Этот порт должен быть доступен извне контейнера.
  • Команда запуска: [укажите команду, например, «node server.js«].
  • Оптимизация: Используй многоэтапную сборку (multi-stage build) для уменьшения размера итогового образа.

Формат ответа: Полный текст конфигурационного файла с комментариями, объясняющими каждый шаг.

*****

Почему это работает:
Промпт предоставляет все необходимые «вводные» для конфигурации: от базового образа до команды запуска. Требование добавить комментарии и использовать лучшие практики (многоэтапная сборка) повышает качество и понятность результата.

13. Написание скрипта для автоматизации

Проблема:
Есть рутинная задача (например, бэкап файлов, обработка данных, деплой), которую хочется автоматизировать с помощью скрипта.

Решение:
Промпт, который пошагово описывает логику работы скрипта, включая обработку аргументов командной строки и ошибок.

Текст промпта:

*****

Ты – инженер по автоматизации. Напиши скрипт для выполнения рутинной задачи.

Язык скрипта: [укажите язык, например, «Bash» или «Python»].
Задача: Создать скрипт, который [опишите общую цель, например, «создает резервную копию директории и архивирует ее»].

Пошаговая логика:

  1. Скрипт должен принимать два аргумента командной строки: путь к исходной директории и путь к директории для сохранения бэкапа.
  2. Проверить, что оба пути существуют. Если нет – вывести ошибку и завершить работу.
  3. Создать имя для архива в формате backup_YYYY-MM-DD_HH-MM-SS.tar.gz.
  4. Заархивировать содержимое исходной директории в созданный архив с помощью tar.
  5. Поместить архив в директорию для бэкапов.
  6. Вывести в консоль сообщение об успешном завершении и путь к созданному архиву.

Обработка ошибок: Скрипт должен корректно обрабатывать ошибки (например, нехватку прав доступа) и выводить информативные сообщения.
Формат ответа: Только код скрипта с комментариями.

*****

Почему это работает:
Пошаговое описание логики – это, по сути, готовый алгоритм для ИИ. Указание на необходимость обработки аргументов и ошибок заставляет нейросеть создать не просто «одноразовое» решение, а полноценный и надежный инструмент.

14. Поиск уязвимостей в коде

Проблема:
Есть опасения, что в коде могут быть распространенные уязвимости (SQL-инъекции, XSS, и т.д.), и нужен быстрый аудит.

Решение:
Промпт, который просит ИИ выступить в роли «белого хакера» и проанализировать код на предмет конкретных векторов атак.

Текст промпта:

*****

Ты – эксперт по кибербезопасности (этичный хакер). Твоя задача – провести аудит безопасности кода. Внимание: это симуляция для поиска уязвимостей в образовательных целях.

Код для анализа на [укажите язык, например, «PHP»]:

[вставьте фрагмент кода, например, обработчик формы или SQL-запрос]

Что искать:

  • [укажите типы уязвимостей, например, «SQL-инъекции, Cross-Site Scripting (XSS), небезопасная загрузка файлов, отсутствие экранирования пользовательского ввода»].

Задача:

  1. Внимательно проанализируй код.
  2. Если найдешь потенциальные уязвимости, укажи номер строки и тип уязвимости.
  3. Объясни, как злоумышленник может эксплуатировать эту уязвимость.
  4. Предложи исправленный, безопасный вариант кода.
  5. Если уязвимостей нет, напиши «Анализ завершен, критических уязвимостей не обнаружено».

Формат ответа: Отчет по уязвимостям в виде списка. Для каждой уязвимости: «Строка», «Проблема», «Эксплуатация», «Решение (код)».

*****

Почему это работает:
Роль «эксперта по безопасности» и четкий перечень искомых уязвимостей настраивают ИИ на нужный лад. Структурированный формат ответа заставляет его не просто указать на проблему, но и объяснить ее опасность и предложить конкретное решение, что гораздо полезнее.

15. Подбор подходящей библиотеки/фреймворка

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

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

Текст промпта:

*****

Ты – опытный архитектор программного обеспечения. Помоги выбрать технологию для проекта.

Язык/экосистема: [укажите, например, «JavaScript (Frontend)»].
Задача: Мне нужно [опишите задачу, например, «создать интерактивные диаграммы и графики в веб-приложении»].

Критерии выбора (в порядке убывания важности):

  1. [Критерий 1, например, «Простота интеграции и использования»].
  2. [Критерий 2, например, «Высокая производительность при работе с большими объемами данных (10,000+ точек)»].
  3. [Критерий 3, например, «Хорошая документация и активное сообщество»].
  4. [Критерий 4, например, «Возможность кастомизации внешнего вида графиков»].
  5. [Критерий 5, например, «Минимальный размер бандла»].

Задача:

  1. Предложи 3 наиболее подходящие библиотеки для решения этой задачи.
  2. Сравни их в виде таблицы по указанным выше критериям.
  3. В конце дай свою рекомендацию, какая из них лучше всего подходит для моего случая, и кратко обоснуй свой выбор.

Формат ответа: Таблица сравнения и итоговая рекомендация.

*****

Почему это работает:
Промпт превращает субъективный выбор в объективный анализ. Указание четких, приоритизированных критериев заставляет ИИ провести настоящее исследование и выдать не просто список, а взвешенное сравнение, которое действительно помогает принять решение.

16. Генерация моковых данных

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

Решение:
Промпт, который описывает структуру данных и просит сгенерировать массив объектов в формате JSON.

Текст промпта:

*****

Ты – генератор тестовых данных. Твоя задача – создать массив объектов с реалистичными данными.

Формат вывода: [укажите формат, например, «JSON»].

Структура объекта:
Опиши поля и типы данных для одного объекта. Например:

{
  "id": "uuid",
  "firstName": "имя (мужское или женское, на русском языке)",
  "lastName": "фамилия (на русском языке)",
  "email": "уникальный email",
  "registrationDate": "дата в формате ISO 8601 за последний год",
  "balance": "число с плавающей точкой от 0 до 100000",
  "isActive": "boolean"
}

Количество: Сгенерируй массив из [укажите количество, например, «20»] таких объектов.

Требования:

  • Все данные должны выглядеть реалистично.
  • Значения id и email должны быть уникальными в пределах сгенерированного массива.

Формат ответа: Только массив JSON, без лишнего текста.

*****

Почему это работает:
Четкое описание структуры объекта и типов данных (с примерами, вроде «имя на русском») служит для ИИ точным шаблоном. Требования к уникальности и реалистичности заставляют его генерировать не просто случайный набор символов, а данные, пригодные для реального использования.

17. Проектирование структуры базы данных

Проблема:
Начинается новый проект, и нужно спроектировать схему базы данных, продумав таблицы, поля и связи между ними.

Решение:
Промпт, который описывает сущности и их отношения, а затем просит сгенерировать SQL DDL-скрипт для создания таблиц.

Текст промпта:

*****

Ты – архитектор баз данных. Спроектируй схему данных для приложения.

Концепция приложения: [опишите суть приложения, например, «простая система для ведения блога»].

Основные сущности и их отношения:

  • Пользователь (User): Имеет имя, email, пароль (хешированный). Каждый пользователь может написать много постов.
  • Пост (Post): Имеет заголовок, текст, дату создания. Каждый пост принадлежит одному пользователю.
  • Комментарий (Comment): Имеет текст, дату создания. Каждый комментарий принадлежит одному посту и одному пользователю.
  • Тег (Tag): Имеет уникальное название. Отношение между постами и тегами – многие-ко-многим (один пост может иметь много тегов, один тег может быть у многих постов).

Задача:

  1. На основе этого описания спроектируй реляционную схему данных.
  2. Напиши SQL DDL-скрипт для создания всех необходимых таблиц (включая связующую таблицу для отношения многие-ко-многим).
  3. Используй PRIMARY KEY, FOREIGN KEY для определения связей, NOT NULL для обязательных полей.
  4. Выбери подходящие типы данных для каждого поля.

Диалект SQL: [укажите, например, «MySQL 8.0»].
Формат ответа: Только SQL-скрипт.

*****

Почему это работает:
Промпт описывает задачу на уровне бизнес-логики (сущности и отношения), а от ИИ требуется перевести это на язык реляционной модели. Это позволяет получить продуманную схему, даже если вы не являетесь экспертом в проектировании БД. Указание на DDL-скрипт дает сразу готовый к исполнению результат.

18. Написание Docker-compose файла

Проблема:
Проект состоит из нескольких сервисов (например, бэкенд, фронтенд, база данных), и нужно настроить их совместный запуск и взаимодействие в Docker.

Решение:
Промпт, который описывает каждый сервис, его зависимости и конфигурацию сети.

Текст промпта:

*****

Ты – DevOps-инженер, мастер Docker. Создай файл `docker-compose.yml`.

Состав проекта:

  1. Сервис бэкенда (backend):

    • Собирается из Dockerfile в папке ./backend.
    • Зависит от сервиса базы данных (db).
    • Использует переменные окружения из файла .env.
    • Пробрасывает порт 5000 на хост.
  2. Сервис фронтенда (frontend):

    • Собирается из Dockerfile в папке ./frontend.
    • Зависит от сервиса бэкенда (backend).
    • Пробрасывает порт 3000 на хост.
  3. Сервис базы данных (db):

    • Использует официальный образ [например, «postgres:14-alpine»].
    • Имя пользователя, пароль и название базы данных должны задаваться через переменные окружения из файла .env.
    • Данные должны сохраняться в volume с названием db-data, чтобы не теряться при перезапуске.

Задача:
Напиши docker-compose.yml версии ‘3.8’, который описывает все три сервиса, их зависимости, порты, volumes и использование переменных окружения.

Формат ответа: Только YAML-код файла docker-compose.yml.

*****

Почему это работает:
Промпт предоставляет ИИ полную карту микросервисной архитектуры приложения. Четкое описание каждого сервиса, его роли и связей с другими позволяет нейросети сгенерировать сложный конфигурационный файл, который корректно «оркеструет» все части системы.

19. Анализ производительности (профилирование)

Проблема:
Код выполняется медленно, но непонятно, какая именно его часть является «бутылочным горлышком».

Решение:
Промпт, который просит ИИ подсказать, как использовать встроенные инструменты профилирования для конкретного языка и проанализировать их вывод.

Текст промпта:

*****

Ты – эксперт по оптимизации производительности. Помоги найти узкие места в коде.

Язык программирования: [укажите, например, «Python»].
Задача: Мне нужно найти самую медленную часть в моем коде.

Твои задачи:

  1. Подскажи, какой встроенный или стандартный инструмент для профилирования лучше всего использовать в [указанный язык]. Например, для Python это cProfile.
  2. Напиши короткий пример кода, показывающий, как запустить мой код под этим профилировщиком и сохранить результаты в файл.
  3. Ниже я предоставлю вывод профилировщика. Проанализируй его и скажи, какие 2-3 функции занимают больше всего времени выполнения (cumulative time).
  4. Дай рекомендации, как можно было бы оптимизировать эти «горячие» функции.

Вот вывод моего профилировщика:

[вставьте сюда вывод вашего профилировщика, например, от cProfile]

Формат ответа: Ответ в виде разделов: «Инструмент», «Пример использования», «Анализ вывода», «Рекомендации».

*****

Почему это работает:
Этот промпт разбивает сложную задачу на два этапа. Сначала он учит пользователя, как собрать данные о производительности, а затем помогает их интерпретировать. Это гораздо эффективнее, чем просто просить «оптимизировать код», так как основывается на реальных измерениях, а не догадках.

20. Создание класса по описанию

Проблема:
Нужно реализовать класс, представляющий некую сущность, со всеми ее свойствами и методами, соблюдая принципы ООП.

Решение:
Промпт, который описывает класс как в техническом задании: его поля, методы, конструктор и логику.

Текст промпта:

*****

Ты – архитектор ПО, приверженец объектно-ориентированного программирования. Создай класс.

Язык: [укажите язык, например, «Java»].
Название класса: [например, "BankAccount"].

Свойства (поля) класса:

  • [свойство 1, например, "private String accountNumber"] (номер счета)
  • [свойство 2, например, "private String ownerName"] (имя владельца)
  • [свойство 3, например, "private double balance"] (баланс, должен быть недоступен для прямого изменения извне)

Конструктор:

  • Должен принимать [например, «номер счета и имя владельца»].
  • Начальный баланс всегда равен 0.

Методы класса:

  • deposit(double amount): Увеличивает баланс. Должен проверять, что сумма положительная.
  • withdraw(double amount): Уменьшает баланс. Должен проверять, что на счете достаточно средств и сумма положительная.
  • getBalance(): Возвращает текущий баланс.
  • getAccountInfo(): Возвращает строку с информацией о счете.

Требования:

  • Используй инкапсуляцию: поля должны быть приватными, доступ – через публичные методы.
  • Добавь Javadoc-комментарии для класса и всех публичных методов.

Формат ответа: Полный код класса в одном файле.

*****

Почему это работает:
Промпт детально описывает «контракт» класса: его состояние (поля) и поведение (методы). Упоминание принципов ООП (инкапсуляция) и требований к документированию направляет ИИ на создание качественного, поддерживаемого и самодокументированного кода.

21. Генерация Git-команды

Проблема:
Нужно выполнить нетривиальное действие в Git (например, откатить коммит, найти что-то в истории), но вы не помните точную команду и ее флаги. Искать в документации долго.

Решение:
Промпт, который описывает желаемое действие человеческим языком и просит перевести его в команду Git.

Текст промпта:

*****

Ты – Git-гуру. Переведи мое намерение в конкретную команду Git.

Моя задача: [опишите, что вы хотите сделать, например, «Я случайно сделал коммит в ветку main, а должен был в feature-branch. Мне нужно переместить этот последний коммит из main в feature-branch, чтобы main осталась чистой.»].

Дополнительный контекст: [укажите детали, если они важны, например, «Этот коммит еще не был отправлен на удаленный репозиторий (не было git push).»].

Задача:

  1. Напиши последовательность команд Git, которая решает мою проблему.
  2. Для каждой команды дай краткое пояснение, что она делает.

Формат ответа: Нумерованный список команд с объяснениями.

*****

Почему это работает:
Промпт фокусируется не на синтаксисе, а на семантике – на «что я хочу сделать». Это позволяет ИИ понять цель и подобрать наиболее подходящую и безопасную последовательность команд, а требование объяснить каждый шаг помогает пользователю научиться делать это самостоятельно в будущем.

22. Разработка структуры проекта

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

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

Текст промпта:

*****

Ты – ведущий разработчик (Tech Lead). Предложи структуру каталогов для нового проекта.

Технологический стек:

  • Тип приложения: [например, «REST API сервер»].
  • Язык: [например, «Go»].
  • Фреймворк: [например, «Gin»].
  • База данных: [например, «PostgreSQL»].
  • Другие инструменты: [например, «Docker»].

Задача:

  1. Предложи логичную и масштабируемую структуру папок и файлов для этого проекта.
  2. Отобрази ее в виде дерева.
  3. Для каждой ключевой папки (cmd, internal, pkg, api и т.д.) дай краткое пояснение, что в ней должно находиться.
  4. Обоснуй, почему такая структура является хорошей практикой для данного стека технологий.

Формат ответа: Древовидная структура и объяснения под ней.

*****

Почему это работает:
Промпт просит не просто придумать папки, а предложить общепринятую, стандартную структуру для конкретного стека. Это гарантирует, что результат будет соответствовать лучшим практикам сообщества (например, Standard Go Project Layout), что делает проект понятным и поддерживаемым.

23. Написание простого парсера

Проблема:
Нужно извлечь структурированные данные из неструктурированного текста (например, из лог-файла или HTML-страницы).

Решение:
Промпт, который предоставляет пример входного текста и описывает, какие именно данные и в каком формате нужно извлечь.

Текст промпта:

*****

Ты – специалист по обработке данных. Напиши парсер для извлечения информации из текста.

Язык: [укажите, например, «Python»].
Библиотеки: [укажите предпочтительные библиотеки, например, «без внешних библиотек» или «с использованием BeautifulSoup для HTML»].

Пример входного текста:

[вставьте пример текста, из которого нужно извлечь данные, например, строка из лога nginx]
127.0.0.1 - - [10/Oct/2023:13:55:36 +0000] "GET /api/v1/data HTTP/1.1" 200 5316 "-" "Mozilla/5.0"

Задача:
Напиши функцию parse_log_entry(log_line), которая принимает строку лога и возвращает [опишите формат, например, «словарь (dict) со следующими ключами: ip_address, timestamp, method, url, status_code, response_size«].

Пример ожидаемого результата для строки выше:

{
  "ip_address": "127.0.0.1",
  "timestamp": "10/Oct/2023:13:55:36 +0000",
  "method": "GET",
  "url": "/api/v1/data",
  "status_code": 200,
  "response_size": 5316
}

Формат ответа: Только код функции.

*****

Почему это работает:
Предоставление примера «до» (входной текст) и «после» (ожидаемый результат в JSON) является чрезвычайно эффективным способом постановки задачи для ИИ. Он видит точное преобразование, которое от него требуется, и может сгенерировать код, идеально выполняющий эту работу.

24. Поиск и замена с помощью Regex

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

Решение:
Промпт, который предоставляет примеры «до» и «после» для демонстрации требуемого преобразования.

Текст промпта:

*****

Ты – мастер регулярных выражений и автоматизации. Помоги мне с поиском и заменой в IDE (например, VS Code).

Задача: Мне нужно преобразовать строки, соответствующие определенному шаблону.

Пример того, что есть (ДО):

const my_variable = require('some-module');
const another_long_variable = require('another-module');

Пример того, что должно получиться (ПОСЛЕ):

import { my_variable } from 'some-module';
import { another_long_variable } from 'another-module';

Задача:

  1. Напиши регулярное выражение для ПОИСКА (Find).
  2. Напиши шаблон для ЗАМЕНЫ (Replace), используя группы захвата (capturing groups, например, $1, $2).
  3. Объясни, как работают твои выражения поиска и замены.

Формат ответа: Разделы «Поиск:», «Замена:», «Объяснение:».

*****

Почему это работает:
Этот промпт идеально подходит для использования в IDE. Он не просто генерирует «регулярку», а дает готовую пару «найти-заменить», которую можно сразу скопировать в соответствующий инструмент. Объяснение помогает понять механику и адаптировать решение для других случаев.

25. Объяснение концепции или паттерна проектирования

Проблема:
Вы слышали о каком-то паттерне проектирования (например, «Фабрика», «Синглтон») или концепции (например, «инверсия зависимостей»), но не до конца понимаете его суть и практическое применение.

Решение:
Промпт, который просит объяснить сложную концепцию простым языком, с аналогиями и примером кода.

Текст промпта:

*****

Ты – опытный архитектор ПО и наставник. Объясни мне концепцию программирования.

Концепция/Паттерн: [укажите название, например, «Паттерн ‘Стратегия’ (Strategy Pattern)»].
Язык для примера: [укажите язык, например, «C#»].

Структура объяснения:

  1. Проблема: Опиши типичную ситуацию или проблему, которую этот паттерн решает. Начни с фразы «Представьте, что вы…».
  2. Аналогия: Приведи простую аналогию из реальной жизни, которая иллюстрирует идею паттерна.
  3. Решение (Суть паттерна): Объясни, как паттерн решает эту проблему. Какова его основная идея?
  4. Пример кода: Напиши минимальный, но полный пример кода на указанном языке, демонстрирующий реализацию паттерна для решения описанной проблемы. Добавь комментарии, объясняющие роли каждого класса (контекст, стратегия, конкретные стратегии).
  5. Преимущества и недостатки: Кратко перечисли, в каких случаях этот паттерн полезен, а когда его использование может быть избыточным.

*****

Почему это работает:
Промпт требует многоуровневого объяснения: от проблемы и аналогии до конкретного кода и анализа компромиссов. Такой подход гарантирует глубокое, а не поверхностное понимание концепции, превращая абстрактную теорию в практический инструмент.

26. Генерация CRUD-операций

Проблема:
Для новой сущности в приложении нужно написать стандартный набор операций: создание, чтение, обновление, удаление (Create, Read, Update, Delete).

Решение:
Промпт, который описывает модель данных и просит сгенерировать полный набор CRUD-методов для работы с ней.

Текст промпта:

*****

Ты – бэкенд-разработчик, специализирующийся на создании REST API. Напиши CRUD-контроллер.

Стек: [укажите, например, «Node.js с фреймворком Express и ORM Sequelize»].
Сущность (Модель): [название, например, "Product"].
Поля модели: id (integer), name (string), price (decimal), description (text).

Задача:
Создай контроллер (или набор функций-обработчиков) для сущности Product, который реализует следующие эндпоинты:

  • CREATE: POST /products – создает новый товар.
  • READ (all): GET /products – возвращает список всех товаров.
  • READ (one): GET /products/:id – возвращает один товар по ID.
  • UPDATE: PUT /products/:id – обновляет товар по ID.
  • DELETE: DELETE /products/:id – удаляет товар по ID.

Требования:

  • Код должен быть асинхронным (async/await).
  • Включи базовую обработку ошибок (например, возврат статуса 404, если товар не найден).
  • Следуй лучшим практикам для выбранного стека.

Формат ответа: Полный код контроллера в одном файле.

*****

Почему это работает:
CRUD – это шаблонная задача, идеальная для автоматизации. Промпт четко определяет все составляющие: стек, модель данных и список эндпоинтов с HTTP-методами. Это позволяет ИИ сгенерировать boilerplate-код, который разработчику останется только подключить к роутеру.

27. Исправление стилистических ошибок (линтинг)

Проблема:
Код работает, но его стиль не соответствует принятым в команде соглашениям (Code Style Guide), и нужно быстро это исправить.

Решение:
Промпт, который предоставляет код и ссылку на руководство по стилю, прося привести код в соответствие с ним.

Текст промпта:

*****

Ты – автоматический линтер и форматер кода. Твоя задача – исправить стиль кода.

Код для форматирования на [укажите язык, например, «Python»]:

[вставьте ваш "некрасивый" код с неправильными отступами, именами переменных и т.д.]

Руководство по стилю: [укажите стандарт, например, «PEP 8»].
Конкретные правила для исправления:

  • [правило 1, например, «Отступы должны быть 4 пробела»].
  • [правило 2, например, «Имена переменных должны быть в snake_case«].
  • [правило 3, например, «Максимальная длина строки – 79 символов»].
  • [правило 4, например, «Использовать одинарные кавычки вместо двойных»].

Задача:

  1. Перепиши предоставленный код так, чтобы он полностью соответствовал указанному руководству по стилю.
  2. Не меняй логику работы кода.
  3. В виде списка укажи, какие именно стилистические исправления ты внес.

Формат ответа: Разделы «Исправленный код:» и «Внесенные изменения:».

*****

Почему это работает:
Промпт дает ИИ роль автоматического инструмента (линтера) и четкие правила игры (руководство по стилю). Это позволяет получить предсказуемый результат, аналогичный работе инструментов вроде Prettier или Black, но с возможностью задать кастомные правила.

28. Перевод естественного языка в команду оболочки (CLI)

Проблема:
Вы хотите выполнить сложную операцию в командной строке (например, с использованием `find`, `grep`, `awk`), но не помните точный синтаксис и как их комбинировать.

Решение:
Промпт, который описывает задачу на человеческом языке и просит ИИ сгенерировать соответствующую команду для терминала.

Текст промпта:

*****

Ты – эксперт по командной строке Linux/macOS. Переведи мой запрос на язык оболочки (shell).

Оболочка: [укажите, например, «Bash»].
Задача: [опишите, что вы хотите сделать, например, «Мне нужно найти все файлы с расширением .log в текущей директории и ее поддиректориях, в которых содержится строка ‘ERROR’, и посчитать количество таких файлов»].

Требования:

  • Команда должна быть максимально эффективной и использовать стандартные утилиты.
  • Если есть несколько способов, предложи самый идиоматичный.

Задача:

  1. Напиши одну команду (можно с использованием |), которая решает мою задачу.
  2. Подробно объясни каждую часть команды (что делает find, что делает grep, что делает wc и их флаги).

Формат ответа: Разделы «Команда:» и «Объяснение:».

*****

Почему это работает:
Командная строка – это, по сути, язык программирования. Этот промпт использует ИИ как «переводчика» с человеческого языка на язык shell. Требование объяснить команду превращает ответ в мини-урок, помогая не просто получить результат, но и научиться новому.

29. Написание миграции для базы данных

Проблема:
Нужно изменить схему базы данных (добавить таблицу, колонку, индекс), и для этого требуется написать файл миграции с помощью используемого в проекте инструмента (Alembic, Phinx, Knex.js, etc.).

Решение:
Промпт, который описывает требуемые изменения и просит сгенерировать код для миграции «вверх» (up) и «вниз» (down).

Текст промпта:

*****

Ты – бэкенд-разработчик, опытный в работе с миграциями баз данных. Создай файл миграции.

Инструмент для миграций: [укажите, например, «Knex.js для Node.js»].
Задача: Мне нужна миграция, которая [опишите изменение, например, «добавляет новую колонку is_verified (boolean, default false, not null) в таблицу users«].

Требования:

  1. Сгенерируй код для функции up, которая применяет это изменение.
  2. Сгенерируй код для функции down, которая откатывает это изменение (например, удаляет созданную колонку).

Формат ответа: Полный код файла миграции, содержащий обе функции (up и down).

*****

Почему это работает:
Ключевой элемент здесь – требование создать обе части миграции: `up` и `down`. Это заставляет ИИ продумать не только прямое, но и обратное действие, что является фундаментальным принципом надежных миграций баз данных. Промпт автоматизирует создание синтаксически правильного и полного файла миграции.

30. Адаптация кода под старую версию языка/среды

Проблема:
У вас есть современный код, использующий новые возможности языка, но его нужно запустить в старой среде, которая их не поддерживает (например, код с `async/await` в старом Node.js).

Решение:
Промпт, который просит «транспилировать» код вручную, заменяя новые конструкции их эквивалентами из старого синтаксиса.

Текст промпта:

*****

Ты – программист-историк, эксперт по обратной совместимости. Адаптируй современный код для старой среды.

Исходный код на [укажите версию, например, «JavaScript ES2017»]:

[вставьте ваш современный код, например, с async/await и классами]

Целевая среда: [укажите старую версию, например, «JavaScript ES5 (для поддержки старых браузеров)»].

Задача:

  1. Перепиши исходный код, заменяя новые синтаксические конструкции на их эквиваленты, работающие в целевой среде. Например:
    • async/await на промисы (.then/.catch).
    • Классы (class) на функции-конструкторы и прототипы.
    • Стрелочные функции (=>) на обычные функции.
    • let/const на var.
  2. Логика и функциональность кода должны остаться абсолютно неизменными.

Формат ответа: Только переписанный код, совместимый со старой средой.

*****

Почему это работает:
Промпт по сути просит ИИ выполнить работу, которую обычно делают инструменты вроде Babel, но для одного конкретного файла. Четкое перечисление замен (`async/await` -> промисы) служит для нейросети инструкцией, какие именно трансформации нужно произвести, что обеспечивает точный и предсказуемый результат.

Продвинутые приемы в промптах для написания кода

Помимо структуры самого промпта, существуют общие техники, которые позволяют «направлять» нейросеть и получать более качественные или разнообразные результаты.

Прием / Модификатор Описание Пример использования в промпте
Ролевая игра (Role-playing) Назначение нейросети конкретной роли (например, «старший разработчик», «DevOps-инженер», «эксперт по безопасности»). Это настраивает ее на определенный стиль, лексику и уровень детализации ответа. «Ты – старший Go-разработчик с 10-летним опытом. Проанализируй этот код…»
Обучение на примерах (Few-shot Prompting) Предоставление в промпте 1-3 примеров того, что вы хотите получить. Это один из самых мощных приемов, особенно для задач трансформации текста (код, SQL, regex). «Преобразуй комментарии. Пример 1: `// TODO` -> `// ЗАДАЧА:`. Пример 2: `// FIXME` -> `// ИСПРАВИТЬ:`. Теперь преобразуй вот этот код…»
«Думай по шагам» (Chain of Thought) Просьба к нейросети сначала составить план действий или рассуждений, а затем дать окончательный ответ. Это помогает при решении сложных логических задач или алгоритмов. «Прежде чем писать код, подумай по шагам. Сначала определи, какая структура данных лучше всего подходит. Затем опиши алгоритм словами. И только потом напиши его реализацию.»
Уточнение ограничений Явное указание того, чего делать НЕ нужно. Это помогает избежать нежелательных решений, использования определенных библиотек или подходов. «Напиши функцию… Ограничения: не используй сторонние библиотеки, решение должно быть построено только на встроенных возможностях языка. Избегай рекурсии.«
Запрос альтернатив Если вы не уверены в единственно верном решении, попросите нейросеть предложить несколько вариантов и сравнить их. «Предложи три разных способа решить эту задачу. Для каждого способа напиши код и кратко опиши его плюсы и минусы (производительность, читаемость).»
Контроль формата вывода Четкое указание, в каком виде должен быть представлен результат. Это экономит время на последующее форматирование. «Формат ответа: только код, без каких-либо объяснений и приветствий. Код должен быть обернут в тройные обратные кавычки с указанием языка.»

Неочевидные советы для эффективной работы

Освоив хорошие промпты, можно пойти еще дальше. Эти небольшие хитрости помогут встроить работу с нейросетью в ваш ежедневный рабочий процесс и извлечь из нее максимум пользы.

  1. Создайте «Библиотеку промптов». Удачные и часто используемые шаблоны запросов стоит сохранять в отдельный файл или в сервис для хранения заметок. Это избавит вас от необходимости каждый раз придумывать промпт с нуля и превратит их в ваши личные, мощные сниппеты.
  2. Используйте отдельный чат для каждой задачи. Не смешивайте в одной беседе с ИИ запросы по рефакторингу, написанию тестов и работе с базой данных. Создавая отдельный чат для каждой крупной задачи (например, «Реализация фичи Х»), вы сохраняете контекст, и нейросеть лучше понимает последующие уточняющие запросы.
  3. Просите ИИ покритиковать свой же код. После того как нейросеть сгенерировала для вас код, отправьте его в следующем сообщении с промптом: «Ты – придирчивый тимлид. Найди недостатки, потенциальные ошибки и места для улучшения в этом коде». Часто ИИ находит неочевидные проблемы в своем же решении.
  4. Итерируйте, а не требуйте все сразу. Если результат первого промпта вас не устроил, не бросайте его. Уточните запрос: «Хорошо, но теперь перепиши это, используя `map` вместо `for`» или «Это слишком сложно, объясни проще». Работа с ИИ – это диалог, а не команда.
  5. Всегда проверяйте и тестируйте сгенерированный код. Относитесь к коду от ИИ как к коду от нового, очень талантливого, но иногда невнимательного стажера. Он может содержать тонкие логические ошибки или не учитывать все крайние случаи. Финальная ответственность всегда на вас.
  6. Используйте ИИ для изучения нового. Вместо того чтобы искать ответ на Stack Overflow, попробуйте спросить у нейросети: «Я хочу изучить [название технологии]. Составь мне учебный план на 7 дней. Включи теорию, практические задания и ссылки на лучшие ресурсы». Качественный промпт может превратить ИИ в персонального ментора.
  7. Просите сгенерировать код с комментариями. Добавив в промпт простое требование «добавь подробные комментарии, объясняющие логику каждого шага», вы получаете не просто код, а обучающий материал. Это особенно полезно при генерации сложных алгоритмов или регулярных выражений.
Бесплатно с ИИ Claude · ChatGPT
Баланс запросов: —