Глава 17. AI-инструменты для разработки
"Правильный инструмент увеличивает скорость разработки в 10 раз. Но нужно знать, когда какой использовать."
17.1. Ландшафт AI-инструментов 2025
Категории инструментов
1. Code Completion (автодополнение)
- GitHub Copilot
- Tabnine
- Codeium
2. AI-Editors (редакторы с AI)
- Cursor
- Windsurf
- Continue (расширение для VS Code)
3. CLI AI Assistants (консольные)
- Aider
- GitHub Copilot CLI
4. AI Code Review
- CodeRabbit
- Codium PR-Agent
5. Documentation AI
- Mintlify
- Swimm
Какой инструмент для какой задачи
| Задача | Лучший инструмент |
|---|---|
| Быстрое автодополнение | GitHub Copilot |
| Рефакторинг целых файлов | Cursor |
| Работа через терминал | Aider |
| Code review | CodeRabbit |
| Документирование | Mintlify |
17.2. GitHub Copilot — стандарт индустрии
Что такое Copilot
GitHub Copilot — AI-ассистент, встроенный в редактор кода.
Работает через:
- VS Code (расширение)
- JetBrains IDEs (плагин)
- Neovim (плагин)
- Консоль (Copilot CLI)
Установка
# VS Code: Extensions → "GitHub Copilot"
# Или через командную строку
code --install-extension GitHub.copilot
Подписка: $10/месяц (бесплатно для студентов и open-source maintainers)
Основные возможности
1. Автодополнение кода
Вы пишете:
def calculate_fibonacci(n):
Copilot предлагает: (нажмите Tab для принятия)
def calculate_fibonacci(n):
if n <= 1:
return n
else:
return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)
2. Генерация по комментариям
Вы пишете:
# Function to check if email is valid using regex
Copilot генерирует:
import re
def is_valid_email(email):
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
return re.match(pattern, email) is not None
3. Тесты по коду
Есть функция:
def add(a, b):
return a + b
Пишете комментарий:
# Test for add function
Copilot генерирует:
def test_add():
assert add(2, 3) == 5
assert add(-1, 1) == 0
assert add(0, 0) == 0
Продвинутые техники
Chat в редакторе
Откройте Copilot Chat (Ctrl+Shift+I / Cmd+Shift+I)
You: Refactor this function to be more readable
[Copilot показывает улучшенный код]
You: Add type hints and docstring
[Copilot добавляет аннотации типов и документацию]
Slash commands в Chat
/explain - объяснить выделенный код
/fix - исправить ошибки
/tests - сгенерировать тесты
/doc - создать документацию
Пример:
You: /explain
Copilot: This function implements a binary search algorithm.
It takes a sorted array and a target value, then returns
the index of the target if found, or -1 if not found...
Контекстное использование
Copilot учитывает:
- Открытые файлы в редакторе
- Комментарии в коде
- Названия переменных и функций
- Импорты
Совет: Держите релевантные файлы открытыми — Copilot будет использовать их как контекст.
17.3. Cursor — AI-first редактор
Почему Cursor
Cursor — это форк VS Code, полностью переработанный для AI.
Отличия от VS Code + Copilot:
- AI встроен глубже в редактор
- Мультифайловое редактирование
- Лучший контекст (индексирует весь проект)
- Composer mode (создание с нуля)
Сайт: cursor.com
Установка
# Скачать с cursor.com
# Или через Homebrew (macOS)
brew install --cask cursor
Цена: $20/месяц (бесплатная версия с ограничениями)
Основные режимы
1. Tab (автодополнение)
Работает как Copilot, но учитывает больше контекста.
# Cursor учитывает другие файлы проекта
def process_user(user_id):
# Cursor знает структуру User из models.py
user = User.query.get(user_id) # ← автодополнение
2. Cmd+K (inline edit)
Выделите код → Cmd+K → опишите изменение
Пример:
# До
def calculate(a, b):
return a + b
Cmd+K: "Add type hints and handle None values"
# После
def calculate(a: int | None, b: int | None) -> int:
if a is None or b is None:
raise ValueError("Arguments cannot be None")
return a + b
3. Cmd+L (Chat)
Диалог с AI про весь проект.
You: Where is user authentication implemented?
Cursor: User authentication is implemented in `auth/service.py`,
using JWT tokens. The login route is in `routes/auth.py` line 45.
You: Show me the login function
Cursor: [показывает код из routes/auth.py]
4. Composer Mode (Cmd+Shift+I)
Самый мощный режим — AI создаёт и редактирует несколько файлов одновременно.
Пример:
You: Create a REST API for blog posts with the following:
- Model: Post (title, content, author, created_at)
- Routes: GET /posts, POST /posts, GET /posts/:id, DELETE /posts/:id
- Use Flask and SQLAlchemy
- Add input validation
- Write tests
[Cursor создаёт 5 файлов: models.py, routes.py, schemas.py, test_posts.py, app.py]
Фишки Cursor
@-mentions для контекста
You: @models.py @routes.py Refactor the user creation to use the repository pattern
Cursor использует указанные файлы как контекст.
Индексация кодовой базы
Cursor индексирует весь проект → понимает архитектуру.
You: How does the payment flow work?
Cursor: Payment flow starts in OrderController.checkout() (line 78),
then calls PaymentService.process() (services/payment.py:45),
which uses Stripe API. After successful payment, OrderService.confirm()
is called (services/order.py:120).
Rules for AI
Создайте файл .cursorrules в корне проекта:
# .cursorrules
- Always use TypeScript strict mode
- Follow Airbnb style guide
- Add JSDoc comments to all functions
- Use async/await instead of promises
- Write tests for all business logic
Cursor будет следовать этим правилам при генерации кода.
17.4. Aider — терминальный AI-ассистент
Что такое Aider
Aider — консольный инструмент для AI-разработки.
Преимущества:
- Работает через терминал (для любителей CLI)
- Понимает git (автоматически коммитит)
- Мультифайловое редактирование
- Бесплатный (используйте свой API ключ)
Установка
pip install aider-chat
Запуск
# В директории проекта
export OPENAI_API_KEY=your-key
aider
# Или с указанием файлов
aider app.py models.py
Использование
Команды:
# Добавить файлы в контекст
/add routes.py
/add utils/*.py
# Редактирование
You: Add error handling to the login function
Aider: [редактирует файл, показывает diff]
Apply changes? (y/n): y
# Aider автоматически делает git commit!
Примеры задач:
# Рефакторинг
You: Extract the database logic to a separate repository class
# Тесты
You: Write pytest tests for all functions in utils.py
# Баги
You: Fix the bug where users can't login with special characters in password
# Документация
You: Add docstrings to all functions in this file
Архитектура + AI
Aider понимает архитектуру:
You: Implement user registration following the same pattern as login
[Aider анализирует login → создаёт registration в том же стиле]
Aider с разными моделями
# GPT-4 (по умолчанию)
aider --model gpt-4
# Claude
aider --model claude-3-opus
# Локальная модель (через Ollama)
aider --model ollama/codellama
17.5. Continue — расширение VS Code
Что такое Continue
Continue — open-source AI-ассистент для VS Code.
Преимущества:
- Бесплатный
- Поддержка любых LLM (OpenAI, Anthropic, Ollama, etc.)
- Настраиваемый
GitHub: continue.dev
Установка
# VS Code Extensions
code --install-extension continue.continue
Настройка
config.json (~/.continue/config.json):
{
"models": [
{
"title": "GPT-4",
"provider": "openai",
"model": "gpt-4",
"apiKey": "YOUR_API_KEY"
},
{
"title": "Claude",
"provider": "anthropic",
"model": "claude-3-opus",
"apiKey": "YOUR_ANTHROPIC_KEY"
},
{
"title": "Local Llama",
"provider": "ollama",
"model": "codellama"
}
]
}
Использование
Ctrl+L — открыть чат
You: Explain this function
[Continue объясняет выделенный код]
You: Refactor to use async/await
[Continue показывает рефакторинг]
Ctrl+I — inline edit
Выделите код → Ctrl+I → опишите изменение
Slash commands
/edit - редактировать выделенный код
/comment - добавить комментарии
/share - поделиться чатом
/cmd - выполнить shell команду
17.6. Сравнение инструментов
Copilot vs Cursor vs Aider
| Критерий | Copilot | Cursor | Aider |
|---|---|---|---|
| Цена | $10/мес | $20/мес | Бесплатно* |
| Редактор | VS Code, JetBrains | Cursor (VS Code форк) | Терминал |
| Контекст | 1-2 файла | Весь проект | Указанные файлы |
| Мультифайл | Нет | Да | Да |
| Git интеграция | Нет | Базовая | Полная (авто-коммиты) |
| Лучше для | Автодополнение | Создание с нуля | CLI workflow |
*Aider бесплатен, но нужен API ключ (платите за токены)
Когда использовать что
GitHub Copilot:
- Быстрое написание кода
- Автодополнение в процессе работы
- Генерация тестов и документации
Cursor:
- Создание проекта с нуля (Composer)
- Рефакторинг нескольких файлов
- Понимание большой кодовой базы
Aider:
- Работаете в терминале (vim, emacs)
- Нужна git-интеграция
- Хотите контроль над промптами
Continue:
- Хотите open-source решение
- Нужна поддержка разных LLM
- Важна настраиваемость
17.7. Workflow: Комбинирование инструментов
Мой рабочий процесс
1. Создание проекта:
Cursor Composer: Создай структуру проекта, базовые файлы
2. Разработка:
Copilot: Автодополнение в процессе написания кода
3. Рефакторинг:
Cursor Cmd+K: Рефакторинг функций
Aider: Рефакторинг нескольких файлов через CLI
4. Тесты:
Copilot Chat: /tests → генерирует тесты
5. Code Review:
CodeRabbit: Автоматический review PR
6. Документация:
Mintlify: Генерация документации
Пример: Создание API за 1 час
Минута 0-10: Структура (Cursor Composer)
You: Create a Flask API for a todo app:
- Models: User, Todo
- Auth with JWT
- CRUD routes for todos
- PostgreSQL database
- Basic tests
Cursor создаёт 10 файлов с базовой структурой.
Минута 10-30: Реализация (Copilot)
Открываете файлы, дописываете логику. Copilot автодополняет.
Минута 30-45: Рефакторинг (Aider)
aider app.py models.py routes.py
You: Extract database logic to repository pattern
You: Add input validation using Pydantic
Минута 45-55: Тесты (Copilot)
# test_todos.py
# Write comprehensive tests for todo CRUD
[Copilot генерирует 50+ строк тестов]
Минута 55-60: Документация (Cursor)
You: @README.md Update with API documentation and setup instructions
Готово! Полноценный API за 1 час.
17.8. Продвинутые техники
Техника 1: Контекстные промпты
Плохо:
You: Add error handling
AI не понимает контекст.
Хорошо:
You: Add error handling to the login route:
- Handle invalid credentials (401)
- Handle missing fields (400)
- Handle database errors (500)
- Return JSON with error message
Техника 2: Итеративное улучшение
Шаг 1:
You: Create a simple user registration function
Шаг 2:
You: Add email validation
Шаг 3:
You: Add password hashing using bcrypt
Шаг 4:
You: Add duplicate email check
Лучше 4 маленьких итерации, чем 1 большой промпт.
Техника 3: Примеры кода
Дайте AI пример:
You: Implement updateUser following the same pattern as createUser:
[вставляете код createUser]
Apply the same error handling and validation.
AI лучше понимает, когда видит пример.
Техника 4: .ai файлы с инструкциями
Создайте файл .ai/coding-standards.md:
# Coding Standards
## Python
- Use type hints
- Follow PEP 8
- Add docstrings (Google style)
- Use dataclasses for models
## Error Handling
- Never use bare except:
- Log all errors
- Return meaningful error messages
## Testing
- Pytest for tests
- Aim for 80%+ coverage
- Test edge cases
Промпт:
You: @.ai/coding-standards.md Create a user service following these standards
17.9. Типичные ошибки и как их избежать
Ошибка 1: Слепое принятие кода AI
Проблема: Копируете код без проверки.
Решение:
- Читайте сгенерированный код
- Запускайте тесты
- Проверяйте безопасность (SQL injection, XSS, etc.)
Ошибка 2: Слишком большие промпты
Проблема:
You: Create a full e-commerce platform with users, products, cart,
checkout, payments, admin panel, email notifications, etc.
AI создаст код, но он будет неполный или некорректный.
Решение: Разбейте на итерации.
Ошибка 3: Игнорирование контекста
Проблема: AI не понимает архитектуру проекта.
Решение:
- Используйте @-mentions (Cursor)
- Добавляйте файлы в контекст (Aider)
- Держите релевантные файлы открытыми (Copilot)
Ошибка 4: Не корректируете промпты
Проблема: AI сгенерировал не то → вы выбрасываете код и начинаете заново.
Решение: Корректируйте промпт итеративно.
You: The function should handle None values
[AI исправляет]
You: Good, now add type hints
[AI добавляет]
17.10. Упражнения
Задание 1: Сравните инструменты
Возьмите одну задачу (например, "создать функцию валидации email").
Решите её тремя способами:
- Copilot (автодополнение)
- Cursor (Cmd+K)
- Aider (через CLI)
Сравните скорость и качество.
Задание 2: Создайте проект за час
Используя только AI-инструменты, создайте:
- REST API для TODO
- С тестами
- С документацией
Засеките время. Цель: < 60 минут.
Задание 3: Рефакторинг legacy кода
Найдите старый проект (или создайте плохой код).
Используйте AI для рефакторинга:
- Добавить type hints
- Извлечь дублирующуюся логику
- Улучшить читаемость
- Добавить тесты
Ключевые выводы главы
✅ Ландшафт разнообразен: Copilot, Cursor, Aider, Continue — каждый для своих задач
✅ Copilot — стандарт: Лучше для автодополнения в процессе
✅ Cursor — самый мощный: Composer mode создаёт проекты с нуля
✅ Aider — для CLI: Терминальный workflow + git интеграция
✅ Continue — open-source: Настраиваемый, поддержка любых LLM
✅ Комбинируйте: Используйте разные инструменты для разных задач
✅ Контекст критичен: @-mentions, открытые файлы, .cursorrules
✅ Итеративно: Маленькие итерации лучше больших промптов
✅ Проверяйте код: AI ошибается, вы — финальный проверяющий
Следующая глава: AI-агенты — создание автономных помощников