Вступление
Среднестатистический бэкенд-разработчик тратит до 30% времени на рутинные задачи: написание CRUD-эндпоинтов, обработку ошибок, настройку мидлварей и оптимизацию запросов. ИИ-ассистенты (ChatGPT, Claude, GitHub Copilot) уже умеют делать это за вас — но только если правильно составить промт. Плохой промт даст общие советы, хороший — готовый код, который можно вставить в проект и забыть о нем.
В этой подборке — 12 проверенных промтов для трех самых популярных стеков: Node.js (Express/Fastify), Python (FastAPI) и Go (net/http, Gin). Каждый промт сопровождается пояснением, когда его использовать, и реальным примером вывода. Скопируйте, адаптируйте под свой проект — и экономьте часы каждую неделю.
1. Генерация REST API с валидацией
Когда использовать: нужно быстро создать CRUD-эндпоинты с валидацией входных данных.
Промт:
Создай REST API для управления сущностью "Product" на [твой язык/фреймворк].
Включи:
- модели данных с полями (name, price, description, category)
- эндпоинты: GET /products, GET /products/:id, POST /products, PUT /products/:id, DELETE /products/:id
- валидацию входных данных (непустые поля, price >= 0)
- обработку ошибок 404, 400, 500
- комментарии в коде на русском
Используй [конкретную библиотеку для валидации, например, Joi для Express].
Пример вывода (Node.js + Express):
// product.model.js
const Joi = require('joi');
const productSchema = Joi.object({
name: Joi.string().min(3).required(),
price: Joi.number().positive().required(),
description: Joi.string().optional(),
category: Joi.string().valid('electronics', 'books', 'clothing').required()
});
module.exports = { productSchema };
Почему работает: промт задает четкие требования — модель, эндпоинты, валидацию. Вы получаете готовый код, который остается только подключить к базе данных.
2. Оптимизация SQL-запросов
Когда использовать: запросы к базе данных тормозят, нужно найти узкие места.
Промт:
Вот SQL-запрос: [вставьте запрос].
Проанализируй его и предложи оптимизации:
- добавление индексов
- переписывание JOIN'ов
- использование кэширования
- альтернативные способы выполнения
Объясни, почему каждая оптимизация ускорит запрос.
Пример (FastAPI + SQLAlchemy):
# Исходный запрос
users = db.query(User).filter(User.last_login > datetime.now() - timedelta(days=30)).all()
# Оптимизация: добавление индекса
from sqlalchemy import Index
Index('idx_user_last_login', User.last_login).create(bind=engine)
Почему работает: ИИ анализирует конкретный запрос, учитывая структуру базы данных, и предлагает точечные улучшения, а не общие советы.
3. Написание мидлварей
Когда использовать: нужно добавить аутентификацию, логирование или обработку ошибок на уровне инфраструктуры.
Промт:
Напиши мидлварь для [фреймворк] для:
- проверки JWT-токена в заголовке Authorization
- логирования времени выполнения запроса
- обработки паники (recover) и возврата 500
Используй стандартные библиотеки или [перечислите зависимости, например, jsonwebtoken].
Пример (Go + Gin):
func AuthMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
token := c.GetHeader("Authorization")
if token == "" {
c.JSON(401, gin.H{"error": "missing token"})
c.Abort()
return
}
// Проверка токена...
c.Set("userID", claims.UserID)
c.Next()
}
}
Почему работает: мидлварь — типичная рутина, ИИ генерирует рабочую версию за секунды.
4. Обработка ошибок
Когда использовать: нужно единообразно обрабатывать ошибки по всему приложению.
Промт:
Создай централизованный обработчик ошибок для [фреймворк].
Он должен:
- принимать ошибки из роутов и мидлварей
- логировать их с уровнем ERROR
- возвращать клиенту JSON в формате: { "error": { "message": "...", "status": 500 } }
- поддерживать кастомные типы ошибок (ValidationError, NotFoundError)
Пример (FastAPI):
from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
class AppError(Exception):
def __init__(self, message: str, status_code: int):
self.message = message
self.status_code = status_code
app = FastAPI()
@app.exception_handler(AppError)
async def app_error_handler(request: Request, exc: AppError):
return JSONResponse(status_code=exc.status_code, content={"error": {"message": exc.message, "status": exc.status_code}})
Почему работает: промт задает структуру ошибок, и ИИ генерирует консистентный код.
5. Генерация тестов
Когда использовать: нужно покрыть код тестами, но лень писать вручную.
Промт:
Напиши юнит-тесты для следующего модуля: [вставьте код].
Используй [тестовый фреймворк, например, pytest для FastAPI].
Покрой: позитивные сценарии, негативные (невалидные входные данные), крайние случаи.
Пример (pytest):
import pytest
from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
def test_get_product_success():
response = client.get("/products/1")
assert response.status_code == 200
assert response.json()["name"] == "Example"
def test_get_product_not_found():
response = client.get("/products/999")
assert response.status_code == 404
Почему работает: ИИ анализирует код и генерирует тесты, которые реально проверяют функциональность.
6. Документирование API
Когда использовать: нужно быстро сгенерировать OpenAPI-спецификацию или README для API.
Промт:
Создай OpenAPI 3.0 спецификацию для API с эндпоинтами: [перечислите].
Включи схемы данных, параметры, ответы с кодами 200, 400, 404.
Формат: YAML.
Пример вывода:
openapi: 3.0.0
info:
title: Product API
version: 1.0.0
paths:
/products:
get:
summary: List products
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Product'
Почему работает: ИИ знает синтаксис OpenAPI и генерирует валидную спецификацию за минуты.
7. Рефакторинг legacy-кода
Когда использовать: надо улучшить старый код без изменения поведения.
Промт:
Рефакторинг следующего кода: [вставьте код].
Улучши:
- читаемость (переименуй переменные, разбей на функции)
- производительность (избегай лишних операций)
- соблюдение принципов SOLID
- сохрани внешнее поведение
Добавь комментарии, объясняющие изменения.
Почему работает: промт направлен на конкретные улучшения, ИИ не сломает логику.
8. Создание микросервиса
Когда использовать: нужно заложить структуру нового микросервиса.
Промт:
Создай структуру микросервиса на [язык/фреймворк] для [задача].
Включи:
- точки входа (main.go / app.py / index.js)
- конфигурацию через переменные окружения
- слой работы с БД (репозитории)
- обработку ошибок
- healthcheck-эндпоинт /healthz
- Dockerfile
Почему работает: ИИ генерирует базовую структуру, которую можно сразу наполнять бизнес-логикой.
9. Оптимизация производительности
Когда использовать: нужно найти и устранить узкие места в коде.
Промт:
Проанализируй этот код на предмет узких мест производительности: [вставьте код].
Предложи конкретные улучшения: кэширование, асинхронность, оптимизация циклов, использование пулов соединений.
Приведи примеры кода до/после.
Почему работает: ИИ видит паттерны неэффективности и дает конкретные решения.
10. Интеграция с внешними API
Когда использовать: нужно подключить внешний сервис (платежи, почта, облако).
Промт:
Напиши клиент для [название API] на [язык].
Используй [HTTP-библиотеку, например, axios, requests, net/http].
Включи:
- базовый URL, ключи аутентификации
- методы для [список операций]
- обработку ошибок (timeout, 4xx, 5xx)
- пример использования
Почему работает: ИИ знает распространенные API (Stripe, SendGrid) или адаптируется под ваше описание.
11. Генерация миграций БД
Когда использовать: нужно создать или изменить схему БД.
Промт:
Создай SQL-миграцию для добавления таблицы [название] с полями [перечислите].
Используй [СУБД, например, PostgreSQL].
Учти индексы, внешние ключи, ограничения.
Предоставь код миграции и отката (rollback).
Пример:
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price NUMERIC(10,2) CHECK (price >= 0),
category_id INT REFERENCES categories(id)
);
CREATE INDEX idx_products_category ON products(category_id);
Почему работает: промт задает структуру, ИИ генерирует корректный SQL с учетом синтаксиса PostgreSQL.
12. Настройка CI/CD
Когда использовать: нужно автоматизировать сборку и деплой.
Промт:
Создай GitHub Actions workflow для [язык/фреймворк] проекта:
- триггеры: push в main, pull_request
- шаги: установка зависимостей, запуск тестов, сборка Docker-образа, деплой на [хостинг]
- используй секреты для ключей
Почему работает: ИИ знает синтаксис GitHub Actions и генерирует готовый файл.
Заключение
Эти 12 промтов — ваш набор инструментов для повседневной бэкенд-разработки. Начните с малого: возьмите один промт, примените к реальной задаче и посмотрите, как ИИ ускоряет процесс. Со временем вы научитесь формулировать промты под свой стиль кода, и AI станет незаменимым помощником.
Хотите больше? Подпишитесь на наш блог — впереди подборки для фронтенда, DevOps и Data Science.
Комментарии