Модуль 2.2 · Урок 5
Урок 5: Tips & Tricks — Продвинутые техники и оптимизация
Содержание
- Чему вы научитесь
- Работа с Git
- Сценарий 1: Написание commit message
- Сценарий 2: Решение конфликтов слияния
- Сценарий 3: Обзор Pull Request
- Оптимизация затрат
- Таблица: Стоимость разных моделей
- Стратегия 1: Используйте /compact
- Схема: способы экономии токенов
- Стратегия 2: Переключайтесь на Haiku для простых задач
- Стратегия 3: Будьте конкретны в запросах
- Стратегия 4: Начните новую сессию
- Многофайловые изменения
- Пример: Добавление новой функции
- Частые ошибки и как их избежать
- [-] Ошибка 1: Слишком расплывчатые задачи
- [-] Ошибка 2: Не проверять план перед кодированием
- [-] Ошибка 3: Игнорирование тестов
- [-] Ошибка 4: Слишком большие задачи за раз
- [-] Ошибка 5: Не использовать /compact в длинных сеансах
- Сравнение с другими инструментами
- Claude Code vs GitHub Copilot
- Claude Code vs Aider
- Cheat Sheet: Самые используемые команды
- Попробуйте сами
- Ключевые выводы
- Заключение курса
- Что дальше?
- Рекомендации для практики
Чему вы научитесь
- Работать с git через Claude Code: PR, commit messages, конфликты
- Оптимизировать затраты и скорость работы
- Использовать Claude для многофайловых изменений
- Избегать распространённых ошибок
- Сравнение Claude Code с другими инструментами
Работа с Git
Сценарий 1: Написание commit message
Claude может написать хороший commit message на основе изменений:
$ claude
> write a clear commit message for the changes you made
Claude:
┌────────────────────────────────────────────────────────┐
│ Based on the code changes, here's the commit message: │
│ │
│ feat: add email validation to user registration │
│ │
│ - Add RFC 5322 compliant email regex pattern │
│ - Validate email before saving user to database │
│ - Add comprehensive tests for validation │
│ - Update user schema with email constraints │
│ │
│ Closes #145, #148 │
└────────────────────────────────────────────────────────┘
You: looks good, apply it
Сценарий 2: Решение конфликтов слияния
Если у вас есть конфликт при merge:
$ git merge feature/new-auth
# CONFLICT (content merge): Merge conflict in src/auth.py
$ claude
> we have a merge conflict in src/auth.py, please resolve it
Claude:
┌────────────────────────────────────────────────────────┐
│ I'll analyze the conflict and resolve it... │
│ │
│ [+] Conflict at lines 45-67: │
│ - Your version: old authentication method │
│ - Feature branch: new JWT implementation │
│ - Resolution: use feature branch version (better) │
│ │
│ [+] Conflict at lines 120-130: │
│ - Both added similar tests │
│ - Resolution: combine best from both versions │
│ │
│ [+] Fixed: src/auth.py (removed conflict markers) │
│ [+] Tests pass: 42/42 │
│ [+] Ready to continue with merge │
└────────────────────────────────────────────────────────┘
Сценарий 3: Обзор Pull Request
$ claude
> review this PR branch against main. what changed?
Claude:
┌────────────────────────────────────────────────────────┐
│ Analyzing PR: feature/caching │
│ (comparing with main) │
│ │
│ Summary of changes: │
│ [+] 4 files modified, 2 created │
│ [+] +245 lines, -89 lines │
│ │
│ Key changes: │
│ 1. services/cache.py (NEW) │
│ - Redis-based caching utility │
│ - 150 lines, well-documented │
│ │
│ 2. api/users.py (MODIFIED) │
│ - Added @cache decorator to get_user() │
│ - Improves response time by ~500% │
│ │
│ 3. tests/test_cache.py (NEW) │
│ - 45 test cases │
│ - 95% coverage │
│ │
│ Issues found: │
│ [!] Warning: cache TTL hardcoded to 3600 │
│ Suggestion: make it configurable via .env │
│ │
│ [!] Missing: docstring for CacheManager class │
│ Should explain cache invalidation strategy │
│ │
│ Overall assessment: Good PR, minor improvements needed
└────────────────────────────────────────────────────────┘
Оптимизация затрат
Таблица: Стоимость разных моделей
| Модель | Input | Output | Когда использовать |
|---|---|---|---|
| Haiku 4.5 | $1/1M | $5/1M | Простые правки, быстро |
| Sonnet 4.6 | $3/1M | $15/1M | Большинство задач (лучший выбор, по умолчанию) |
| Opus 4.6 | $5/1M | $25/1M | Сложные задачи, требующие глубоких рассуждений |
Стратегия 1: Используйте /compact
# Сеанс длится долго → контекст растёт
/status
# Input tokens: 185,000 (слишком много)
/compact
# Input tokens: 42,000 (экономия 77%)
# Продолжайте работу с меньшими затратами
Экономия: 77% токенов при сохранении всей информации о кодовой базе
Схема: способы экономии токенов
flowchart LR
A["Экономия токенов"] --> B["Короткий контекст\n/compact в длинных сессиях\n/clear для нового старта"]
A --> C["Точные запросы\nУказывать конкретный файл\nИзбегать 'improve the code'"]
A --> D["AGENTS.md\nОбъяснить проект один раз\nClaude не переспрашивает"]
Стратегия 2: Переключайтесь на Haiku для простых задач
/model claude-haiku
> fix the typo in the error message
Claude (fast!): Fixed in 2 seconds, costs $0.0001 instead of $0.0005
Стратегия 3: Будьте конкретны в запросах
# [-] Дорого: расплывчатая задача
> improve the code
# Claude прочитает ВСЮ кодовую базу, потратит много токенов
# [+] Дешево: конкретная задача
> optimize the database query in models/user.py that retrieves all users
# Claude прочитает только релевантный файл
Стратегия 4: Начните новую сессию
# Старая сессия: 200K токенов контекста
# Лучше: начать новую сессию
/clear
# Или вообще:
exit
claude # Новая сессия, чистый контекст
Многофайловые изменения
Claude отлично работает с изменениями в нескольких файлах одновременно:
Пример: Добавление новой функции
$ claude
> add a new "search" feature that filters users by email, name, and role.
> implement it properly with API endpoint, database query, tests, and docs
Claude's execution:
┌────────────────────────────────────────────────────────┐
│ Planning: 5 files to modify/create │
│ │
│ 1. schemas/search.py (NEW) │
│ SearchRequest, SearchResponse Pydantic models │
│ │
│ 2. services/search.py (NEW) │
│ search_users() business logic │
│ │
│ 3. api/users.py (MODIFY) │
│ @router.post("/search") endpoint │
│ │
│ 4. tests/test_search.py (NEW) │
│ 20 test cases │
│ │
│ 5. README.md (MODIFY) │
│ Add search endpoint documentation │
│ │
│ [[+]] Proceed [?] Ask for changes [E] Edit plan
Claude отслеживает все изменения и убедится, что они согласованы.
Частые ошибки и как их избежать
[-] Ошибка 1: Слишком расплывчатые задачи
# Плохо
> fix the API
# Правильно
> fix the GET /api/users endpoint which crashes with "index out of range"
> when the database is empty
Проблема: Claude не знает, что именно чинить
Решение: Даже одна ссылка на ошибку экономит время
[-] Ошибка 2: Не проверять план перед кодированием
Claude предлагает:
[[+]] Proceed [?] Ask for changes
# НЕПРАВИЛЬНО: сразу нажимаете [[+]]
# ПРАВИЛЬНО: прочитайте план, задайте вопросы
Проблема: Claude может неправильно понять требование
Решение: Потратьте 10 секунд на проверку плана
[-] Ошибка 3: Игнорирование тестов
Claude сообщает:
[-] Tests failed: 3/20
# НЕПРАВИЛЬНО: просить применить коммит всё равно
# ПРАВИЛЬНО:
> why did these tests fail? please fix them
Проблема: Код может быть сломан
Решение: Убедитесь, что тесты проходят
[-] Ошибка 4: Слишком большие задачи за раз
# Плохо
> refactor entire authentication system, add JWT, implement refresh tokens,
> write tests, update documentation, and deploy to production
# Хорошо
> refactor authentication to use JWT tokens with proper error handling
# (потом отдельно)
> add refresh token functionality
# (потом отдельно)
> write comprehensive tests for JWT implementation
Проблема: Сложно управлять, легко сломать
Решение: Разбейте на 2-3 задачи
[-] Ошибка 5: Не использовать /compact в длинных сеансах
# После 20 задач контекст огромный
/status
# Input tokens: 450,000 (!!)
# Каждая следующая операция медленная и дорогая
# РЕШЕНИЕ: используйте /compact
/compact
Сравнение с другими инструментами
Claude Code vs GitHub Copilot
| Аспект | Claude Code | Copilot |
|---|---|---|
| Модель | Claude Sonnet 4.6 (по умолчанию) | GPT-4o, Claude Sonnet 4.6, Gemini и др. |
| Интерфейс | CLI терминал | IDE плагин |
| Контекст | 200K токенов (1M в бете) | Зависит от выбранной модели |
| Стоимость | $20/месяц Pro или $100-200/месяц Max | $10/месяц Pro или $100/год |
| Для кого | Разработчики, любящие CLI | Разработчики, предпочитающие IDE |
| Скорость | Медленнее (точнее) | Быстрее (менее точно) |
Когда использовать Claude Code:
- Большие рефакторинги
- Работа с большими кодовыми базами
- Сложная логика, требующая анализа
- Предпочитаете CLI
Когда использовать Copilot:
- Быстрые авто-дополнения
- Интеграция в IDE
- Простые изменения одного файла
Claude Code vs Aider
| Аспект | Claude Code | Aider |
|---|---|---|
| Основная модель | Claude (Anthropic) | Разные (ChatGPT, Claude, etc.) |
| Фокус | Full-stack workflow | Git-aware editing |
| Git интеграция | Базовая | Отличная (best in class) |
| Для кого | Все разработчики | Разработчики, работающие с git |
Подробнее: Работа с другими CLI агентами описана в модулях М2.3-М2.4
Cheat Sheet: Самые используемые команды
# Управление сессией
/help # Справка
/status # Статус и затраты
/cost # Показать расходы
/clear # Сбросить историю
/compact # Сжать контекст
# Файлы и модели
/model claude-opus # Переключить модель
/read path/to/file.py # Прочитать файл
/init # Инициализация CLAUDE.md
# Быстрые команды (без ввода)
> fix the syntax error in utils.py
> write tests for the search function
> what files are in this project?
> add logging to the main function
> explain how database.py works
> optimize the query in models.py
Попробуйте сами
Задание 1: Оптимизация затрат
claude
> make several changes to your project
/status
# Посмотрите затраты
/compact
# Применить компрессию
/status
# Посмотрите новые затраты (должны быть ниже)
Задание 2: Многофайловая задача
> add a new validation utility that checks:
> - email format
> - password strength (min 8 chars, uppercase, number)
> - phone number
> create proper tests for all cases
Задание 3: Git workflow
# Если есть git репозиторий:
> write a commit message for the recent changes
# Или создайте ветку с конфликтом и:
> resolve the merge conflicts
Ключевые выводы
- Claude отлично работает с git для commits, reviews, конфликтов
- Используйте
/compactдля длительных сеансов и экономии - Переключайтесь на Haiku для простых быстрых задач
- Многофайловые изменения отслеживаются автоматически
- Будьте конкретны в запросах для экономии токенов
- Частые ошибки: расплывчатые задачи, большие куски работы, игнорирование тестов
- Claude Code лучше для больших задач, Copilot для быстрых авто-дополнений
- Aider выигрывает для git-heavy workflow
Заключение курса
Вы прошли путь от установки Claude Code до продвинутого использования:
- [+] Урок 1: Установка и первый запуск
- [+] Урок 2: Базовые команды и правильная формулировка задач
- [+] Урок 3: Workflow Explore-Plan-Code и управление контекстом
- [+] Урок 4: Автоматизация с hooks и CLAUDE.md
- [+] Урок 5: Продвинутые техники и оптимизация
Что дальше?
- Модуль М2.3 — Gemini CLI
- Модуль М2.4 — Codex CLI
- Модуль М2.5 — Cursor и IDE-агенты
- Модуль М2.7 — MCP (Model Context Protocol) для расширения возможностей
Рекомендации для практики
- Начните с маленьких задач (добавление функции, исправление ошибки)
- Создавайте CLAUDE.md для каждого проекта
- Регулярно используйте
/compactв длительных сеансах - Всегда проверяйте план перед одобрением
- Смотрите дифы внимательно
- Не бойтесь запрашивать изменения в плане
Вы готовы использовать Claude Code профессионально!