10 промтов для ChatGPT и GPT-4: программирование, отладка и рефакторинг кода
ChatGPT и GPT-4 давно перестали быть просто «болталками». Для разработчиков это мощные инструменты, которые могут писать код с нуля, искать баги, оптимизировать архитектуру и даже объяснять сложные алгоритмы. Однако результат сильно зависит от того, как вы формулируете запрос. Плохой промт — плохой ответ. Хороший промт — готовое решение, которое можно сразу вставить в проект.
В этой статье я собрал 10 конкретных, готовых к копипасту промтов для разных задач: от написания функций до рефакторинга легаси. Каждый промт сопровождается пояснением, примером использования и советом по кастомизации. Все примеры проверены на GPT-4 (июль 2026) и работают на ChatGPT Plus, API и локальных моделях через Ollama.
1. Написание функции с нуля
Когда использовать: Нужно быстро написать небольшую функцию на Python, JavaScript, Go или другом языке с чётким описанием входных и выходных данных.
Промт:
Напиши на Python функцию, которая принимает список строк и возвращает словарь, где ключ — строка, а значение — количество её вхождений. Функция должна игнорировать регистр и удалять пробелы в начале и конце строк. Назови функцию `count_normalized`. Добавь docstring и type hints.
Пример использования:
# GPT-4 сгенерировал:
def count_normalized(strings: list[str]) -> dict[str, int]:
"""
Возвращает словарь с количеством вхождений нормализованных строк.
"""
counts = {}
for s in strings:
normalized = s.strip().lower()
counts[normalized] = counts.get(normalized, 0) + 1
return counts
Совет: Если нужна поддержка None или пустых строк — добавьте это в описание. GPT-4 хорошо обрабатывает краевые случаи, если их явно перечислить.
2. Отладка кода с ошибкой
Когда использовать: Есть код, который падает с исключением, или результат не соответствует ожидаемому. Вместо того чтобы часами смотреть в консоль, скопируйте ошибку и код в промт.
Промт:
У меня есть код на Python. Он должен сортировать список чисел по убыванию, но возвращает [None, None, 3]. Вот код:
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = numbers.sort()
print(sorted_numbers)
Ошибка: выводит None. Объясни причину и предложи исправление.
Пример использования: GPT-4 объяснит, что list.sort() сортирует на месте и возвращает None. Предложит использовать sorted() или разделить на две строки.
3. Рефакторинг легаси-кода
Когда использовать: Есть старый код (например, на PHP 5.6 или Python 2.7), который нужно привести к современным стандартам, но нет времени разбираться вручную.
Промт:
Вот легаси-код на PHP. Перепиши его на современный PHP 8.2 с использованием строгой типизации, match-выражений и стрелочных функций. Исходный код:
<?php
function getStatus($code) {
if ($code == 200) {
return "OK";
} elseif ($code == 404) {
return "Not Found";
} else {
return "Unknown";
}
}
?>
Сохрани ту же логику, но сделай код чище.
Пример использования: GPT-4 сгенерирует:
<?php
declare(strict_types=1);
function getStatus(int $code): string {
return match($code) {
200 => 'OK',
404 => 'Not Found',
default => 'Unknown',
};
}
4. Генерация unit-тестов
Когда использовать: Нужно покрыть существующую функцию тестами, но писать их вручную скучно.
Промт:
Напиши unit-тесты на pytest для следующей функции:
def divide(a: float, b: float) -> float:
if b == 0:
raise ValueError("Division by zero")
return a / b
Покрой: нормальное деление, деление на ноль, отрицательные числа, граничные случаи (очень большие/малые числа). Используй parametrize.
Пример использования: GPT-4 сгенерирует 6-8 тестов с корректными assert и проверкой исключений.
5. Объяснение чужого кода
Когда использовать: Вы нашли на GitHub или в проекте коллеги непонятный кусок кода.
Промт:
Объясни, что делает этот код на JavaScript. Построй блок-схему в текстовом виде:
const result = arr
.filter(x => x % 2 === 0)
.map(x => x * x)
.reduce((acc, x) => acc + x, 0);
Добавь пояснение для новичков, которые не знают методы массивов.
Пример использования: GPT-4 объяснит, что код фильтрует чётные числа, возводит их в квадрат и суммирует. Нарисует ASCII-схему.
6. Оптимизация производительности
Когда использовать: Код работает, но медленно. Нужно найти узкое место и предложить оптимизацию.
Промт:
Вот функция на Python, которая обрабатывает список из 100 000 элементов за 12 секунд. Найди bottleneck и предложи оптимизацию (использование numpy, list comprehension, кэширование). Код:
def process(items):
result = []
for item in items:
if item % 2 == 0:
result.append(item ** 2)
return result
Дай два варианта: один — без внешних библиотек, второй — с numpy.
7. Генерация Dockerfile и docker-compose
Когда использовать: Нужно быстро создать контейнер для приложения.
Промт:
Создай Dockerfile для Python FastAPI приложения, которое использует PostgreSQL. Напиши multi-stage build: первый этап — установка зависимостей, второй — запуск. Также напиши docker-compose.yml, который поднимает приложение и базу данных. Используй образ python:3.12-slim как базовый.
8. Перевод кода с одного языка на другой
Когда использовать: Нужно перенести алгоритм с Python на Go или с JavaScript на Rust.
Промт:
Перепиши эту функцию с Python на Go. Сохрани ту же логику, используй идиоматичный Go (goroutines не нужны, просто обычные функции). Код:
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
9. Написание документации для API
Когда использовать: Есть REST API, нужно сгенерировать OpenAPI-спецификацию или README.
Промт:
Напиши OpenAPI 3.0 спецификацию для эндпоинта POST /users, который принимает JSON с полями name (строка, обязательное), email (строка, обязательное, валидный email), age (целое, опционально). Возвращает 201 с объектом пользователя и 400 с ошибкой валидации. Используй компоненты для схемы ошибки.
10. Архитектурное решение (выбор паттерна)
Когда использовать: Нужно спроектировать систему, но не уверены, какой паттерн применить.
Промт:
Я проектирую систему обработки заказов в интернет-магазине. У каждого заказа есть статус (новый, оплачен, отправлен, доставлен, отменён). Нужно выполнять разные действия при смене статуса: отправлять email, обновлять склад, вызывать API доставки. Какой паттерн проектирования выбрать? Напиши пример на Python с использованием State и Observer. Объясни, почему это лучше, чем if-else.
Заключение
Эти 10 промтов — базовый набор, который покроет 80% повседневных задач разработчика. Главное правило: чем конкретнее запрос, тем качественнее ответ. Указывайте язык, версию, ожидаемый формат вывода и краевые случаи. Не стесняйтесь уточнять и переспрашивать — GPT-4 отлично держит контекст.
Если вы работаете с реальными проектами и хотите автоматизировать интеграцию таких промтов в свой workflow, обратите внимание на платформы, которые подключаются к API популярных сервисов. ASI Biont поддерживает подключение к GitHub и GitLab через API — подробнее на asibiont.com/courses. Это позволяет генерировать код, тесты и документацию прямо в репозитории, не копируя промты вручную.
Попробуйте эти промты уже сегодня — и вы увидите, как AI ускоряет разработку. Главное — не забывайте проверять сгенерированный код: AI не идеален, но с хорошим промтом его ошибки минимальны.
Комментарии