Введение
Cursor — это IDE на базе VS Code, встроенная AI-модель которой помогает писать код быстрее: автодополнение, чат (Ctrl+K) для объяснений и рефакторинга, командный режим (Cmd+K) для генерации с нуля. Однако качество результатов напрямую зависит от того, как вы формулируете промты — запросы к AI. Эта подборка из 12 готовых промтов охватывает основные сценарии: от рефакторинга легаси до генерации тестов, написания документации и отладки. Каждый промт можно скопировать и вставить в Cursor, заменив лишь название вашего файла или компонента.
1. Рефакторинг «грязного» кода
Где использовать: В чат (Ctrl+K), выделив нужный участок кода.
Промт: «Отрефакторь этот код, следуя принципам SOLID. Раздели большие функции на более мелкие, убери дублирование и добавь комментарии к сложным участкам. Сохрани ту же бизнес-логику.»
Пример: После вставки фрагмента с функцией на 300 строк AI предложит разбить её на 3–4 приватных метода с понятными именами.
2. Написание unit-тестов для существующего класса
Где использовать: Командный режим (Cmd+K) с открытым файлом.
Промт: «Сгенерируй unit-тесты на JUnit 5 для класса [ClassName]. Используй Mockito для моков зависимостей. Покрой все публичные методы, включая граничные случаи и исключения. Добавь комментарии, объясняющие каждый тест.»
Пример: Для класса UserService AI создаст тесты с @Mock, @InjectMocks, тестами на null, пустые строки, исключения.
3. Генерация JSDoc/комментариев для модуля
Где использовать: Выделите весь файл, в чат (Ctrl+K).
Промт: «Добавь JSDoc для всех функций, классов и интерфейсов в этом файле. Включай @param, @returns, @throws. Для сложных параметров опиши структуру объекта.»
Пример: Для функции fetchUserData(id) AI добавит @param {number} id и @returns {Promise<UserData>}.
4. Конвертация JavaScript в TypeScript с типизацией
Где использовать: Откройте JS-файл, командный режим.
Промт: «Перепиши этот JavaScript-файл на TypeScript. Добавь строгие типы для всех переменных, параметров и возвращаемых значений. Используй интерфейсы для объектов. Убери any- и неявные типы.»
Пример: var name = "John" превратится в const name: string = "John", функция без типов получит полную сигнатуру.
5. Оптимизация SQL-запросов
Где использовать: В чат, вставив медленный запрос.
Промт: «Оптимизируй этот SQL-запрос для PostgreSQL. Предложи индексы, перепиши JOIN-ы на более эффективные, добавь EXPLAIN ANALYZE в комментариях. Укажи, какие части запроса могут быть узким местом.»
Пример: Запрос с SELECT * FROM orders WHERE customer_id IN (SELECT id FROM customers WHERE ...) будет переписан с использованием EXISTS или INNER JOIN.
6. Написание Dockerfile для проекта
Где использовать: Командный режим с корневой папкой.
Промт: «Создай многоэтапный Dockerfile для Node.js приложения. Первый этап — установка зависимостей и сборка (если есть), второй — минимальный образ для продакшна. Используй официальный образ node:18-alpine. Добавь .dockerignore с типичными исключениями.»
Пример: AI сгенерирует файл с FROM node:18-alpine AS builder и FROM node:18-alpine, скопировав только dist и node_modules.
7. Перевод проекта на новую версию библиотеки
Где использовать: В чат, выделив файлы импортов и использования.
Промт: «Обнови этот код с Angular 14 на Angular 16. Замени устаревшие методы на новые: например, HttpClientModule на provideHttpClient, ViewChild на сигнальную версию. Добавь комментарии к каждому изменению.»
Пример: import { HttpClientModule } from '@angular/common/http' будет заменён на provideHttpClient() в providers.
8. Генерация регулярных выражений
Где использовать: Чат, описав словами.
Промт: «Создай регулярное выражение для валидации email-адреса по RFC 5322. Объясни каждую часть expression в комментарии. Добавь тестовые примеры (валидные и невалидные) в виде комментариев под кодом.»
Пример: AI выдаст /^[^\s@]+@[^\s@]+\.[^\s@]+$/ с пояснениями групп.
9. Написание API-эндпоинта с валидацией
Где использовать: Командный режим в папке с контроллерами.
Промт: «Напиши Express.js POST-роут для /api/users. В теле запроса — name, email, age. Проверь name на длину от 2 до 50, email — на корректный формат, age — от 18 до 120. При ошибке возвращай соответствующие статусы. Используй express-validator.»
Пример: AI сгенерирует роут с body('email').isEmail(), body('age').isInt({ min: 18, max: 120 }) и т.д.
10. Создание миграции базы данных
Где использовать: Чат с контекстом ORM (Prisma, TypeORM).
Промт: «Напиши Prisma-схему для сущности OrderItem с полями: id (автоинкремент), orderId (внешний ключ), productId (внешний ключ), quantity (int, больше 0), price (decimal, 10,2). Добавь связи с Order и Product. Включи индексы для внешних ключей.»
Пример: Сгенерируется модель с @id @default(autoincrement()), @relation, @@index([orderId]).
11. Извлечение и форматирование логов
Где использовать: Чат, вставив сырые логи.
Промт: «Отформатируй эти логи в читаемую таблицу: timestamp, уровень (INFO/WARN/ERROR), сообщение. Для каждого ERROR добавь краткое описание причины. Если лог содержит стектрейс, вынеси его в отдельную колонку. Используй Markdown для оформления.»
Пример: Сырые строки превратятся в таблицу с колонками, в конце — резюме по частоте ошибок.
12. Написание README-файла для репозитория
Где использовать: Командный режим в корне проекта.
Промт: «Создай README.md для этого проекта. Включи: описание, установку (npm install), использование (команды), API-документацию, тестирование, лицензию. Используй бейджи для CI/CD и версии. Примеры кода — на JavaScript/TypeScript.»
Пример: AI пройдётся по файлам package.json, найденным тестам и сгенерирует полноценный README.
Заключение
Эти 12 промтов — лишь малая часть того, что можно делать в Cursor с грамотно сформулированными запросами. Главное правило: предоставляйте контекст, указывайте желаемый результат и ограничения. Не бойтесь экспериментировать — пробуйте разные формулировки, добавляйте «объясни каждый шаг» или «используй самую эффективную реализацию». Со временем вы выработаете собственный стиль, а качество ответов AI возрастёт кратно.
Начните прямо сейчас: откройте любой файл вашего проекта и примените один из промтов. Увидите, как рутинные задачи перестанут отнимать часы.
Комментарии