ЧАСТЬ III: НОВАЯ ПАРАДИГМА

AI-инструменты для разработки

Глава 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 reviewCodeRabbit
Документирование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

КритерийCopilotCursorAider
Цена$10/мес$20/месБесплатно*
РедакторVS Code, JetBrainsCursor (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").

Решите её тремя способами:

  1. Copilot (автодополнение)
  2. Cursor (Cmd+K)
  3. 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-агенты — создание автономных помощников