Введение
Claude Code — это AI-ассистент для программирования от Anthropic, интегрированный в терминал и IDE. В отличие от простых чат-ботов, он понимает контекст репозитория, поддерживает многофайловые изменения и умеет выполнять команды. Но его реальная ценность раскрывается только через правильно составленные промты. В этой подборке — 10 проверенных запросов для задач от повседневного рефакторинга до проектирования архитектуры. Каждый промт сопровождается реальным кейсом и результатом.
1. Код-ревью: поиск уязвимостей и антипаттернов
Задача: Найти в коде потенциальные ошибки, проблемы безопасности и нарушения best practices.
Промт:
Проведи полное code review модуля auth.ts. Игнорируй стиль кода. Найди:
- SQL-инъекции и XSS
- Гонки данных (race conditions)
- Утечки памяти и необработанные ошибки
- Категоризируй каждую проблему по критичности (Critical/High/Medium/Low)
Пример результата (сокращённо):
Критическая (High): Строка 24 —
query(\"SELECT * FROM users WHERE id = \" + userId)— прямая конкатенация. Использовать параметризованные запросы.
Medium: Строка 45 —setTimeoutбез очистки. Возможна утечка при повторном вызове.
2. Рефакторинг длинной функции: разбиение на методы
Задача: Преобразовать функцию из 200+ строк в композицию небольших методов с инвариантами.
Промт:
Рефакторинг функции processOrder (JavaScript, 250 строк).
1. Выдели подфункции с понятными именами и JSDoc.
2. Каждая подфункция должна быть чистой (pure) если возможно.
3. Оставь комментарии только там, где логика нетривиальна.
4. Исходный код прилагается: [вставка кода]
Результат: Функция разбита на 7 подфункций: validateOrder, calculateTotal, applyDiscount, checkInventory, processPayment, sendConfirmation, logAudit. Основной вызов стал читаемым:
async function processOrder(order) {
validateOrder(order);
const total = applyDiscount(calculateTotal(order.lineItems));
await checkInventory(order.lineItems);
const payment = await processPayment(order.paymentInfo, total);
await sendConfirmation(order.email, payment.id);
logAudit(order, payment);
}
3. Перевод с устаревшего фреймворка на современный
Задача: Мигрировать контроллер с Express на Fastify, сохранив все маршруты и middleware.
Промт:
Перепиши следующие Express-роуты (файл routes/users.js) на эквивалент Fastify:
- Вместо app.use используй Fastify plugin.
- Асинхронные обработчики ошибок через .catch или try/catch.
- Сохрани те же HTTP-методы и пути.
- Исходный код: [вставка]
Результат: Автоматическая конвертация с сохранением семантики. Claude Code также предлагает использовать схему валидации (JSON Schema) для Fastify, добавляя типизацию.
4. Проектирование модуля: принципы SOLID
Задача: Спроектировать модуль обработки платежей с возможностью расширения под новые провайдеры.
Промт:
Спроектируй абстрактный класс PaymentProvider (или интерфейс) и реализации для Stripe, PayPal, Square.
- Принцип Open/Closed: новый провайдер = новый класс, без изменения существующего кода.
- Принцип Dependency Inversion: высокоуровневый модуль не должен зависеть от конкретных провайдеров.
- Включи фабрику провайдеров по строковому ключу.
- Напиши пример использования.
Результат (упрощённо):
interface PaymentProvider {
charge(amount: number, currency: string): Promise<ChargeResult>;
}
class StripeProvider implements PaymentProvider { ... }
class PaymentProcessor {
constructor(private provider: PaymentProvider) { }
async process(amount: number, currency: string) {
return this.provider.charge(amount, currency);
}
}
5. Микросервисная архитектура: разбиение монолита
Задача: Разделить монолитное приложение на микросервисы с сохранением бизнес-логики.
Промт:
У меня монолит на NestJS со следующими модулями: Auth, Orders, Products, Notifications, Users.
Предложи архитектуру микросервисов:
- Какие модули стоит объединить или разбить?
- Как организовать общую авторизацию? (API Gateway vs JWT)
- Как синхронизировать данные между сервисами? (Event Bus / HTTP / gRPC)
- Нарисуй ASCII-схему взаимодействия.
Результат: Claude Code предлагает 4 микросервиса (User & Auth, Orders, Products, Notifications), API Gateway как единую точку входа, RabbitMQ для событий (order.placed, user.registered). Приводит пример JSON схем для событий и gRPC-контракт.
6. Оптимизация базы данных: N+1 запрос
Задача: Устранить проблему N+1 в Django ORM.
Промт:
Найди проблему N+1 запросов в view-функции get_users_with_orders (файл views.py).
Исправь с помощью select_related или prefetch_related.
Обоснуй выбор. Приведи SQL-запросы до и после оптимизации.
Результат: Выявлено, что цикл по users делает отдельный запрос для каждого user.orders. Замена на User.objects.prefetch_related('orders') сократило число запросов с 101 до 2. Claude Code показывает план EXPLAIN до/после.
7. Написание тестов: генерация unit- и integration-тестов
Задача: Покрыть тестами критичный модуль с минимальным ручным трудом.
Промт:
Напиши Jest-тесты для модуля billing.service.ts.
- Покрыть все публичные методы.
- Моки для внешних API (Stripe, email).
- Тесты граничных случаев: отрицательная сумма, превышение лимита, отказ провайдера.
- Используй describe/it блоки.
- Код модуля прилагается.
Результат: Сгенерировано 30+ тест-кейсов, включая негативные сценарии. Покрытие кода (по report) — 92%.
8. Документирование API: OpenAPI 3.0
Задача: Создать (или обновить) спецификацию OpenAPI по существующему коду.
Промт:
На основе контроллеров Express (файлы в папке routes/) сгенерируй OpenAPI 3.0 спецификацию.
- Используй JSDoc/swagger-jsdoc аннотации, если есть, иначе выведи из сигнатур.
- Группируй по тегам.
- Добавь схемы для всех request/response.
- Результат сохрани в openapi.yaml.
Результат: Автоматически сгенерирован YAML-файл с 15 эндпоинтами, всеми моделями и примерами запросов. Claude Code также замечает отсутствующие required поля и предлагает добавить.
9. Рефакторинг наследования в композицию
Задача: Заменить глубокую иерархию классов на более гибкую композицию (GoF «предпочитайте композицию наследованию»).
Промт:
В проекте есть цепочка наследования: Animal → Mammal → Dog → Labrador.
Замени на композицию с интерфейсами и делегированием.
- Создай интерфейсы IMove, IEat, ISound.
- Каждый класс реализует только необходимые интерфейсы.
- Пример: Labrador = Animal + DogBehavior + Swimming.
- Сохрани обратную совместимость (фасады).
Результат: Исходный код размером в 400 строк сократился до 250, дублирование устранено, добавлена возможность комбинировать поведения без создания новых подклассов.
10. Проектирование Event-Driven архитектуры
Задача: Спроектировать систему обработки заказов на основе событий с гарантией доставки и идемпотентностью.
Промт:
Спроектируй event-driven систему для e-commerce:
- Событие OrderPlanned → проверка склада → OrderConfirmed или OrderCancelled.
- Гарантия exactly-once delivery (использовать dedup key, transaction outbox).
- Идемпотентность обработчиков.
- Напиши пример на TypeScript с использованием RabbitMQ и PostgreSQL (outbox).
Результат: Claude Code предлагает архитектуру с Transactional Outbox (таблица outbox, worker читает и отправляет), идемпотентностью через уникальный event_id и dead-letter queue для ошибок. Приведён пример кода для публикации и обработки событий.
Заключение
Промты — это язык, на котором вы говорите с Claude Code. Чем точнее и структурированнее запрос, тем качественнее результат. Используйте эти 10 шаблонов как основу для своих реальных задач. Копируйте, адаптируйте, комбинируйте — и вы увидите, как AI превращается из игрушки в незаменимого архитектора и ревьюера вашего кода.
Попробуйте прямо сейчас: запустите claude code в терминале вашего проекта и примените один из промтов. Результаты могут удивить.
Комментарии