ИИ-технологФлагман NP
ИИ-технолог

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

От NP_Article

ИИ-технолог

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

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

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

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

Этот материал создан, чтобы вы перестали бороться с нейросетью и начали получать от нее пользу. Внутри вы найдете:

  • Типичные ошибки, которые допускают 9 из 10 разработчиков.
  • Готовые шаблоны запросов для разных задач: от простых скриптов до работы с базами данных.
  • Приемы, которые заставят ИИ думать как опытный программист.
  • Неочевидные советы по отладке и оптимизации кода с помощью нейросетей.

Частые ошибки, из-за которых промпты для написания программ не работают

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

  1. Просить написать "программу для X" без деталей. Нейросеть не может читать мысли и не знает вашего контекста, поэтому она выдаст самый шаблонный и бесполезный вариант из возможных.
  2. Не указывать язык программирования, фреймворки и версии. Запрос "напиши скрипт для парсинга сайта" без указания Python 3.11 и библиотеки BeautifulSoup – это лотерея с очень низкими шансами на выигрыш.
  3. Забывать о формате вывода. Если не попросить ИИ обернуть код в нужный формат, снабдить комментариями или предоставить инструкцию по запуску, вы получите просто "стену текста", с которой придется разбираться самостоятельно.
  4. Пытаться сгенерировать все приложение одним запросом. Это самая распространенная и провальная стратегия. Большие задачи нужно разбивать на мелкие, решаемые функции или модули, и генерировать их последовательно.
  5. Слепо доверять сгенерированному коду. Любой код от ИИ – это черновик, который требует проверки, тестирования и, скорее всего, доработки. Рассматривать его как готовый к запуску продукт – прямой путь к проблемам с безопасностью и производительностью.
  6. Не предоставлять примеры. Если вам нужен код в определенном стиле или структура данных определенного формата, самый простой способ этого добиться – показать нейросети пример того, что вы хотите получить.
  7. Игнорировать ограничения и требования к безопасности. Просить написать функцию для обработки пользовательского ввода, не упомянув необходимость валидации и защиты от инъекций, – неоправданный риск.

Сравнение слабых и сильных запросов для генерации кода

Разница между работающим и неработающим промптом – в деталях. Нагляднее всего это демонстрирует прямое сравнение. Ниже приведена таблица, которая показывает, как незначительные уточнения кардинально меняют качество результата.

Задача Слабый промпт (что обычно пишут) Сильный промпт (что нужно писать)
Написать функцию для валидации почты Напиши функцию для проверки email на JavaScript. Ты – опытный frontend-разработчик. Напиши функцию на чистом JavaScript (ES6), которая проверяет валидность email-адреса. Функция должна принимать на вход строку и возвращать true или false. Используй регулярное выражение. Добавь комментарии, объясняющие логику работы выражения. Не используй сторонние библиотеки.
Сгенерировать SQL-запрос Нужен SQL, чтобы достать пользователей. Ты – аналитик баз данных. Напиши SQL-запрос для СУБД PostgreSQL. Мне нужно выбрать всех пользователей из таблицы `users`, которые зарегистрировались за последний месяц и подтвердили свою почту (`is_verified = true`). Результат отсортируй по дате регистрации (`registration_date`) от новых к старым. Выведи только поля `id`, `username` и `email`.
Создать простой веб-сервер Сделай сервер на Python. Ты – backend-разработчик. Создай простой веб-сервер на Python 3.10 с использованием фреймворка Flask. Сервер должен иметь один маршрут (`/api/status`), который по GET-запросу возвращает JSON-объект `{“status”: “ok”}`. Весь код должен быть в одном файле. Добавь инструкцию по установке зависимостей и запуску сервера в консоли.
Рефакторинг кода Улучши этот код. [далее вставлен кусок кода] Ты – эксперт по качеству кода и рефакторингу. Проанализируй этот код на языке Python. Твоя задача – улучшить его читаемость, производительность и соответствие стандарту PEP 8. Объясни каждое изменение, которое ты вносишь, и предоставь финальную версию кода. Обрати особое внимание на “магические числа” и длинные функции. [далее вставлен кусок кода]

28 практических промптов для написания программ и работы с кодом

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

1. Генерация функции с четкими требованиями

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

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

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

*****

Ты – разработчик на [укажите язык программирования, например, “Python”]. Твоя задача – написать функцию с названием [укажите название функции, например, “calculate_factorial”].

Функция должна:

  1. Принимать на вход [опишите входные параметры, например, “одно целое неотрицательное число n“].
  2. Выполнять [опишите логику работы, например, “вычислять факториал числа n рекурсивным методом”].
  3. Возвращать [опишите возвращаемое значение, например, “результат вычисления в виде целого числа”].

Ограничения:

  • Не используй сторонние библиотеки.
  • Если на вход подано отрицательное число, функция должна вызывать исключение [укажите тип исключения, например, “ValueError”] с сообщением “Число не может быть отрицательным”.
  • Добавь к функции строку документации (docstring) в стиле [укажите стиль, например, “Google Style”], объясняющую ее назначение, параметры и возвращаемое значение.

Предоставь только код функции без дополнительных объяснений.

*****

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

2. Создание регулярного выражения с объяснением

Проблема: Составление “регулярок” – задача, которую многие не любят. Синтаксис сложен, а отладка занимает много времени.

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

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

*****

Ты – эксперт по регулярным выражениям. Мне нужно составить регулярное выражение для [укажите язык/среду, например, “JavaScript”].

Выражение должно находить [опишите, что нужно найти, например, “шестнадцатеричные цветовые коды (HEX) в формате #RRGGBB или #RGB”].

Твоя задача:

  1. Написать само регулярное выражение.
  2. Предоставить пошаговое объяснение каждого компонента выражения в виде таблицы с двумя колонками: “Компонент” и “Описание”.
  3. Привести 3 примера строк, которые соответствуют выражению, и 2 примера, которые не соответствуют.

Формат ответа: сначала выражение, потом таблица с объяснением, затем примеры.

*****

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

3. Написание SQL-запроса для извлечения данных

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

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

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

*****

Ты – опытный аналитик баз данных, работающий с [укажите СУБД, например, “PostgreSQL”].

Вот структура таблиц:

  • users (id, name, registration_date)
  • orders (id, user_id, amount, created_at)
  • products (id, name, price)
  • order_items (order_id, product_id, quantity)

Твоя задача – написать один SQL-запрос, который выберет [опишите, что нужно выбрать, например, “топ-5 пользователей по общей сумме их заказов за последний квартал”].

Требования к запросу:

  • Учитывать только заказы со статусом [укажите статус, если есть, например, “status = 'completed' в таблице orders“].
  • Результат должен содержать следующие поля: [перечислите поля, например, “user_id, user_name, total_spent“].
  • Отсортировать результат по убыванию общей суммы.

Предоставь только готовый SQL-код.

*****

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

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

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

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

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

*****

Ты – ведущий разработчик и эксперт по качеству кода. Твоя специализация – [укажите язык, например, “Python”].

Проанализируй следующий код:

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

Твоя задача – провести его рефакторинг, чтобы:

  1. Улучшить читаемость и структуру.
  2. Оптимизировать производительность, если это возможно без изменения логики.
  3. Привести код в соответствие со стандартом [укажите стандарт, например, “PEP 8”].
  4. Заменить “магические числа” и строки на именованные константы.

Предоставь ответ в следующем формате:

  1. Краткий список основных проблем в исходном коде.
  2. Полностью переписанный, улучшенный код.
  3. Таблица с объяснением изменений, где в одной колонке – “Что было”, а в другой – “Что стало и почему”.

*****

Почему это работает: Запрос не просто просит “улучшить код”, а задает конкретные критерии: читаемость, производительность, стандарты. Требование объяснить изменения помогает понять логику улучшений.

5. Генерация файла конфигурации

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

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

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

*****

Ты – DevOps-инженер с большим опытом. Твоя задача – создать файл конфигурации для [укажите инструмент, например, “Nginx”].

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

  • Сервер должен слушать порт [укажите порт, например, “80”].
  • Все запросы к site.com должны перенаправляться на www.site.com с кодом 301.
  • Статические файлы (css, js, jpg, png) из папки /static/ должны отдаваться напрямую и кешироваться в браузере на [укажите срок, например, “7 дней”].
  • Все остальные запросы должны проксироваться на бэкенд, работающий по адресу [укажите адрес, например, “http://127.0.0.1:8000”].
  • Добавь комментарии к каждому блоку конфигурации, объясняющие его назначение.

Предоставь только содержимое файла конфигурации.

*****

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

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

Проблема: Вы столкнулись с чужим или старым кодом и не можете быстро понять, что он делает и как работает.

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

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

*****

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

Код:

[вставьте сюда непонятный код]

Твой ответ должен содержать:

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

Говори простым языком, как если бы ты объяснял это младшему коллеге.

*****

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

7. Перевод кода с одного языка на другой

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

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

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

*****

Ты – полиглот-программист, в совершенстве владеющий [язык 1, например, “Python”] и [язык 2, например, “Go”].

Твоя задача – перевести следующий код с [язык 1] на [язык 2].

Исходный код на [язык 1]:

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

Требования к результату:

  1. Логика работы должна быть полностью сохранена.
  2. Код на [язык 2] должен быть идиоматичным, то есть соответствовать принятым в этом языке практикам и стилю.
  3. Сохрани названия переменных и функций, если это возможно.
  4. Если в [языке 2] нет прямого аналога какой-либо конструкции из [языка 1], используй наиболее подходящую альтернативу и добавь комментарий с объяснением.

Предоставь только переведенный код на [языке 2].

*****

Почему это работает: Указание на “идиоматичность” кода – ключевой момент. Это заставляет ИИ не просто делать дословный перевод, а писать так, как написал бы опытный разработчик на целевом языке.

8. Генерация тестовых данных (мок-данных)

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

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

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

*****

Ты – генератор тестовых данных. Мне нужен массив объектов в формате JSON.

Сгенерируй [укажите количество, например, “10”] объектов, представляющих [опишите сущность, например, “пользователей интернет-магазина”].

Каждый объект должен иметь следующую структуру и типы данных:

  • id: уникальный идентификатор (целое число).
  • fullName: полное имя (строка, русские имена).
  • email: валидный email-адрес (строка).
  • lastLogin: дата последнего входа в формате ISO 8601 (строка).
  • orderCount: количество заказов (целое число от 0 до 50).
  • isActive: статус активности (булево значение).

Данные должны выглядеть реалистично. Предоставь только готовый JSON-массив.

*****

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

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

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

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

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

*****

Ты – инженер по автоматизации. Напиши скрипт на [укажите язык, например, “Bash”] для автоматизации следующей задачи.

Задача: [опишите задачу, например, “В текущей директории найти все файлы с расширением .jpeg и переименовать их в .jpg”].

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

  • Скрипт должен работать в среде [укажите ОС, например, “Linux/macOS”].
  • Он должен быть безопасным и не затрагивать файлы с другими расширениями.
  • Перед выполнением переименования скрипт должен выводить в консоль сообщение о том, сколько файлов будет переименовано.
  • Добавь комментарии, объясняющие ключевые команды.

Предоставь только код скрипта.

*****

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

10. Генерация кода для работы с API

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

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

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

*****

Ты – backend-разработчик на [укажите язык, например, “JavaScript с использованием Node.js и библиотеки axios”].

Напиши асинхронную функцию, которая отправляет [укажите метод, например, “GET-запрос”] на конечную точку API: [вставьте URL конечной точки].

Требования:

  • Функция должна принимать в качестве параметра [опишите параметры, например, “объект с параметрами запроса (query parameters)”].
  • Необходимо передать заголовок Authorization со значением Bearer [ВАШ_ТОКЕН].
  • Функция должна обрабатывать успешный ответ, извлекать из него данные из поля data и возвращать их.
  • В случае ошибки (статус ответа не 2xx) функция должна логировать ошибку в консоль и возвращать null.
  • Добавь пример вызова этой функции.

*****

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

11. Создание заготовки HTML/CSS

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

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

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

*****

Ты – frontend-разработчик, эксперт по HTML и CSS. Создай HTML-структуру и CSS-стили для [опишите компонент, например, “карточки товара”].

Требования к компоненту:

  • Карточка должна содержать: изображение товара, название, короткое описание и кнопку “Добавить в корзину”.
  • Используй семантическую верстку (теги figure, figcaption и т.д.).
  • Стили должны быть написаны на чистом CSS без использования фреймворков.
  • При наведении курсора на карточку должна появляться легкая тень (эффект box-shadow).
  • Кнопка должна менять цвет фона при наведении.
  • Код должен быть разделен на два блока: HTML и CSS.

*****

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

12. Генерация модульных тестов (Unit Tests)

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

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

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

*****

Ты – инженер по качеству (QA Engineer), специализирующийся на автоматизированном тестировании. Используй [укажите фреймворк для тестирования, например, “Jest для JavaScript” или “pytest для Python”].

Вот функция, которую нужно протестировать:

[вставьте код вашей функции]

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

  1. Основной (“счастливый”) сценарий работы.
  2. Пограничные значения (например, 0, -1, пустые строки, null).
  3. Случаи, когда функция должна выбрасывать ошибку.

Предоставь только код тестов.

*****

Почему это работает: Запрос явно указывает на необходимость тестирования не только “хороших” данных, но и пограничных, и ошибочных случаев. Это залог создания надежного набора тестов.

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

Проблема: Фрагмент кода работает слишком медленно, и нужно найти способ его ускорить.

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

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

*****

Ты – эксперт по оптимизации производительности на языке [укажите язык, например, “Python”].

Проанализируй следующий код на предмет узких мест в производительности:

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

Твоя задача:

  1. Определить, какие операции в этом коде являются наиболее ресурсоемкими.
  2. Предложить и написать оптимизированную версию этого кода, сохраняя его логику.
  3. Объяснить, за счет чего достигнуто ускорение (например, “замена цикла на векторизованную операцию”, “использование более эффективной структуры данных”).

Формат ответа: сначала объяснение, затем оптимизированный код.

*****

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

14. Добавление комментариев и документации

Проблема: Есть код без единого комментария, и его нужно быстро задокументировать, чтобы в нем могли разобраться другие.

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

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

*****

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

Твоя задача – добавить комментарии и строку документации (docstring) к следующей функции на [укажите язык]:

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

Требования:

  • Добавь строку документации в стиле [укажите стиль, например, “JSDoc” или “reStructuredText”], описывающую назначение функции, ее параметры и возвращаемое значение.
  • Добавь внутри функции строчные комментарии, объясняющие сложные или неочевидные участки кода.
  • Комментарии должны быть краткими и по делу.

Предоставь только финальный код с добавленными комментариями и документацией.

*****

Почему это работает: Задание роли “технического писателя” и указание конкретного формата документации помогает получить структурированный и профессионально оформленный результат.

15. Поиск и исправление ошибок (Debugging)

Проблема: Код не работает, выдает ошибку, а причина не очевидна.

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

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

*****

Ты – опытный отладчик. У меня есть код на [укажите язык], который не работает.

Вот код:

[вставьте ваш проблемный код]

При его выполнении я получаю следующую ошибку:

[вставьте полное сообщение об ошибке, включая трассировку стека]

Твоя задача:

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

*****

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

16. Генерация класса по описанию

Проблема: Нужно спроектировать класс с определенными полями и методами, соблюдая принципы объектно-ориентированного программирования.

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

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

*****

Ты – архитектор программного обеспечения, проектирующий классы на [укажите язык, например, “Java”].

Создай класс с названием [укажите название, например, “BankAccount”].

Класс должен представлять банковский счет и иметь:

  • Свойства (поля): [перечислите, например, “ownerName (String), accountNumber (String, приватное), balance (double, приватное)”].
  • Конструктор, принимающий имя владельца и начальный баланс. Номер счета должен генерироваться автоматически внутри конструктора как случайная строка.
  • Методы: [перечислите, например, “deposit(double amount) для пополнения, withdraw(double amount) для снятия, getBalance() для получения баланса”].
  • Метод withdraw должен проверять, достаточно ли средств на счете, и возвращать false, если нет.

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

*****

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

17. Разбор и обработка данных (Parsing)

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

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

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

*****

Ты – специалист по обработке данных на [укажите язык, например, “Python с использованием библиотеки pandas”].

У меня есть данные в формате [укажите формат, например, “CSV-строки”]. Мне нужно написать функцию, которая их разбирает.

Пример входных данных:

[вставьте пример, например, "id,name,agen1,Иван,30n2,Мария,25"]

Функция должна принимать на вход строку с этими данными и возвращать [опишите выходной формат, например, “список словарей, где каждый словарь представляет одну строку”].

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

[{"id": "1", "name": "Иван", "age": "30"}, {"id": "2", "name": "Мария", "age": "25"}]

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

*****

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

18. Написание Dockerfile

Проблема: Нужно “упаковать” приложение в Docker-контейнер, но написание Dockerfile с нуля кажется сложным.

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

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

*****

Ты – DevOps-инженер, эксперт по контейнеризации. Напиши многошаговый Dockerfile для [опишите приложение, например, “приложения на Node.js 18”].

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

  1. Используй официальный образ [например, “node:18-alpine”] в качестве базового.
  2. На первом шаге (сборка) скопируй package.json и package-lock.json, установи зависимости с помощью npm ci.
  3. Затем скопируй остальные исходные файлы и выполни сборку проекта командой npm run build.
  4. На втором шаге (финальный образ) используй легковесный базовый образ, скопируй собранные артефакты с первого шага.
  5. Приложение запускается командой [например, “node dist/main.js“].
  6. Контейнер должен работать от имени непривилегированного пользователя.

Добавь комментарии, объясняющие каждый шаг.

*****

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

19. Анализ сложности алгоритма (Big O)

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

Решение: Промпт просит ИИ выступить в роли ученого-информатика и провести анализ сложности.

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

*****

Ты – эксперт по алгоритмам и структурам данных. Проанализируй следующую функцию на [укажите язык] и определи ее сложность.

Код функции:

[вставьте код функции]

Твой ответ должен содержать:

  1. Временную сложность (Time Complexity) в нотации “Большого О” (Big O) для худшего, среднего и лучшего случаев.
  2. Пространственную сложность (Space Complexity) в нотации “Большого О”.
  3. Подробное объяснение, как ты пришел к таким выводам, с анализом каждой операции внутри функции.

*****

Почему это работает: Запрос требует не просто дать ответ (например, O(n²)), а детально обосновать его. Это заставляет ИИ провести реальный анализ, а не угадывать, и помогает вам понять логику оценки.

20. Генерация скрипта для миграции базы данных

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

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

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

*****

Ты – администратор баз данных. Напиши SQL-скрипт для миграции схемы в [укажите СУБД, например, “MySQL”].

Описание изменений:

  • Задача: [опишите общую задачу, например, “Добавить поддержку “мягкого удаления” для пользователей”].
  • В таблицу users необходимо добавить новый столбец deleted_at с типом TIMESTAMP и значением по умолчанию NULL.
  • Также необходимо добавить индекс для этого нового столбца.
  • Все существующие записи в таблице users должны остаться без изменений.

Предоставь только SQL-код для выполнения этой миграции.

*****

Почему это работает: Четкое описание изменений в формате “что и где нужно сделать” позволяет ИИ сгенерировать точный и синтаксически корректный DDL-скрипт.

21. Выбор подходящей структуры данных

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

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

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

*****

Ты – архитектор ПО и эксперт по структурам данных. Я разрабатываю [опишите систему, например, “кэш для часто запрашиваемых данных с ограничением по размеру”] на языке [укажите язык].

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

  • Быстрая вставка элементов.
  • Быстрый поиск элемента по ключу.
  • При переполнении кэша должен удаляться самый давно неиспользовавшийся элемент (LRU-стратегия).

Сравни [перечислите варианты, например, “хэш-таблицу (словарь), связанный список и их комбинацию”] для решения этой задачи. Порекомендуй лучшую структуру данных или их комбинацию и объясни, почему она наиболее эффективна в данном случае. Опиши сложность основных операций (вставка, поиск, удаление) для рекомендованного варианта.

*****

Почему это работает: Запрос заставляет ИИ провести сравнительный анализ, а не давать первый попавшийся ответ. Описание конкретных операций (вставка, поиск) и стратегии (LRU) дает четкие критерии для выбора.

22. Разработка API-маршрутов (endpoints)

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

Решение: Промпт просит ИИ выступить в роли бэкенд-архитектора и спроектировать CRUD-операции.

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

*****

Ты – архитектор RESTful API. Спроектируй API-маршруты для управления сущностью “[название сущности, например, “Статья в блоге”]”.

Сущность “Статья” имеет следующие поля: id, title, content, author_id, created_at, updated_at.

Твоя задача – описать в виде таблицы стандартные CRUD-операции (Create, Read, Update, Delete).
Таблица должна содержать колонки:

  • “Операция” (например, “Получить все статьи”).
  • “HTTP Метод” (GET, POST, PUT, DELETE).
  • “Маршрут” (например, “/articles”).
  • “Тело запроса (JSON)” (если применимо).
  • “Успешный ответ (JSON и статус)” (например, “200 OK, массив статей”).

Опиши маршруты для получения списка, получения одной статьи по ID, создания, полного обновления и удаления статьи.

*****

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

23. Объяснение паттерна проектирования на примере

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

Решение: Промпт просит ИИ объяснить паттерн на конкретном, практическом примере.

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

*****

Ты – опытный разработчик и евангелист паттернов проектирования.

Объясни паттерн проектирования “[название паттерна, например, “Фабричный метод” (Factory Method)]” на языке [укажите язык, например, “C#”].

Твой ответ должен включать:

  1. Краткое описание проблемы, которую решает этот паттерн.
  2. Аналогию из реальной жизни, чтобы объяснить его суть.
  3. Пример кода на [язык], демонстрирующий реализацию паттерна. Пример должен быть практическим, например, [приведите контекст, “создание разных типов документов (отчет, презентация) в приложении”].
  4. Список преимуществ и недостатков использования этого паттерна.

*****

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

24. Генерация файла для сборщика проектов (напр., pom.xml)

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

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

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

*****

Ты – Java-разработчик. Создай файл `pom.xml` для проекта на Maven.

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

  • Группа: com.example.
  • Артефакт: my-app.
  • Версия: 1.0-SNAPSHOT.
  • Используемая версия Java: 17.
  • Зависимости: [перечислите зависимости, например, “Spring Boot Starter Web 3.1.5, Lombok (опционально), Spring Boot Starter Data JPA”].
  • Плагины: [перечислите плагины, например, “Spring Boot Maven Plugin для создания исполняемого jar-файла”].

Предоставь только содержимое файла pom.xml.

*****

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

25. Написание скрипта для CI/CD

Проблема: Нужно настроить конвейер непрерывной интеграции и доставки, но синтаксис YAML-файлов для GitLab CI, GitHub Actions и т.д. вызывает трудности.

Решение: Промпт описывает шаги конвейера: сборка, тестирование, развертывание.

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

*****

Ты – DevOps-инженер, настраивающий CI/CD. Создай файл конфигурации для [укажите систему, например, “GitHub Actions (.github/workflows/main.yml)”].

Конвейер предназначен для [опишите проект, например, “веб-приложения на React”] и должен запускаться при каждом push в ветку main.

Конвейер должен состоять из следующих шагов (jobs):

  1. build: установка зависимостей (npm ci) и сборка проекта (npm run build).
  2. test: запуск тестов (npm test) после успешной сборки.
  3. deploy: развертывание собранных файлов на [укажите хостинг, например, “GitHub Pages”] только в случае успеха шагов build и test.

Используй рекомендуемые экшены (actions) из маркетплейса GitHub. Добавь комментарии к каждому шагу.

*****

Почему это работает: Разбивка конвейера на логические шаги (`build`, `test`, `deploy`) и указание зависимостей между ними позволяет ИИ сгенерировать правильный и логичный YAML-файл, соответствующий стандартам выбранной CI/CD-платформы.

26. Создание “шпаргалки” (cheatsheet) по технологии

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

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

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

*****

Ты – технический писатель, создающий обучающие материалы. Создай шпаргалку (cheatsheet) по [укажите технологию, например, “командам Git”].

Шпаргалка должна быть структурирована по разделам:

  • Начало работы (инициализация репозитория, клонирование).
  • Основные операции (добавление, коммит, просмотр статуса).
  • Работа с ветками (создание, переключение, слияние, удаление).
  • Взаимодействие с удаленным репозиторием (push, pull, fetch).
  • Отмена изменений (reset, revert).

Для каждой команды предоставь краткое описание и пример использования. Оформи ответ в виде хорошо читаемого списка.

*****

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

27. Адаптация кода для другой версии/среды

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

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

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

*****

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

Следующий код был написан для [укажите старую среду, например, “Python 2.7”], а мне нужно запустить его на [укажите новую среду, например, “Python 3.11”].

Исходный код:

[вставьте старый код]

Твоя задача – адаптировать этот код для новой среды. Обрати внимание на [перечислите известные несовместимости, например, “синтаксис print“, “деление целых чисел”, “обработка Unicode-строк”].

Предоставь обновленную версию кода и краткий список внесенных изменений с объяснениями.

*****

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

28. Написание простого бенчмарка

Проблема: Есть две реализации одного и того же алгоритма, и нужно объективно сравнить их производительность.

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

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

*****

Ты – инженер по производительности. Напиши код на [укажите язык, например, “Python”], который сравнит производительность двух функций.

Вот две функции для сравнения:

# Функция 1
[вставьте код первой функции]

# Функция 2
[вставьте код второй функции]

Твой скрипт должен:

  1. Подготовить тестовые данные [опишите данные, например, “список из 1,000,000 случайных чисел”].
  2. Выполнить каждую функцию [укажите количество раз, например, “10 раз”] и замерить среднее время выполнения.
  3. Вывести в консоль результат в понятном виде, например: “Функция 1: X.XXX секунд, Функция 2: Y.YYY секунд”.
  4. Использовать стандартные средства языка для замера времени, без сторонних библиотек для бенчмаркинга.

*****

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

Продвинутые приемы для управления генерацией кода

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

Прием или команда Описание и когда применять
Запрос “Думай пошагово” (Chain of Thought) Добавьте в начало промпта фразу: “Прежде чем писать код, составь пошаговый план своих действий”. Это заставляет ИИ сначала продумать логику, что особенно полезно для сложных алгоритмов и многокомпонентных задач.
Ролевая модель “Эксперт-скептик” Назначьте роль: “Ты – эксперт по безопасности, который ищет уязвимости”. Используйте это, когда хотите, чтобы ИИ проанализировал ваш код на предмет потенциальных дыр в безопасности, а не просто выполнял команды.
Требование альтернатив Добавьте в конце: “Предложи 2-3 альтернативных способа решения этой задачи и сравни их по производительности и читаемости”. Полезно, когда вы ищете не просто рабочее, а оптимальное решение.
Указание на стиль кода Четко пропишите: “Весь код должен соответствовать стилю [укажите, например, “Google Java Style Guide”]”. Это помогает поддерживать единообразие в кодовой базе, особенно при работе в команде.
Запрет на использование чего-либо Используйте отрицательные инструкции: “Не используй рекурсию”, “Избегай использования библиотеки [название]”. Это полезно для наложения ограничений или для поиска решения без определенной зависимости.
Генерация с “заполнителем” (placeholder) Попросите: “Сгенерируй шаблон функции, но вместо реальной логики оставь комментарий-заполнитель `// TODO: Implement business logic here`”. Удобно для быстрого создания каркаса модуля или класса.

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

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

  1. Начинайте чат с установки “системной роли”. В самом первом сообщении диалога напишите: “На протяжении всего нашего разговора ты будешь выступать в роли старшего Python-разработчика, эксперта по Django и PostgreSQL”. Это создает контекст для всей сессии и делает последующие ответы более точными.
  2. Используйте ИИ как “резинового утенка”. Если вы застряли, попробуйте объяснить свою проблему нейросети так, как объясняли бы коллеге. Часто в процессе формулирования вопроса вы сами находите решение. Если нет – ИИ может задать наводящий вопрос, который подтолкнет вас в нужную сторону.
  3. Просите не только код, но и команду для его проверки. После генерации скрипта или функции попросите: “А теперь напиши команду для терминала, чтобы я мог быстро проверить, как это работает”. Это экономит время на ручном создании тестовых вызовов.
  4. Сохраняйте удачные промпты в отдельный файл. Если какой-то запрос дал идеальный результат, не надейтесь, что вспомните его через неделю. Создайте свою личную библиотеку эффективных промптов для написания программ, и вы сможете повторно использовать их, экономя массу времени.
  5. Не бойтесь “торговаться” с нейросетью. Если первый ответ вас не устроил, не начинайте новый чат. Напишите: “Это не совсем то, что нужно. Перепиши код так, чтобы он использовал [другой подход]” или “Этот вариант слишком сложный, сделай его проще для понимания”. Итеративный подход часто дает лучшие результаты.
  6. Загружайте файлы вместо копирования текста. Если ваша модель ИИ поддерживает загрузку файлов, используйте эту возможность. Вместо того чтобы вставлять в чат огромные куски кода, загрузите файл и попросите его проанализировать. Это надежнее и удобнее.