10 промтов для ChatGPT и GPT-4: программирование, отладка и рефакторинг кода

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 не идеален, но с хорошим промтом его ошибки минимальны.

← Все статьи

Комментарии