Перейти к содержимому
NEWЧат с 15 ИИ-моделями — попробуйте бесплатно / имейте совесть, когда будете делиться или копировать
>AISTUDY_

Модуль 2.2 · Урок 5

Урок 5: Tips & Tricks — Продвинутые техники и оптимизация

40 мин
Практика
Содержание
2.2 / Урок 5 из 5

Чему вы научитесь

  • Работать с 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
└────────────────────────────────────────────────────────┘

Оптимизация затрат

Таблица: Стоимость разных моделей

МодельInputOutputКогда использовать
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 CodeCopilot
Модель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 CodeAider
Основная модельClaude (Anthropic)Разные (ChatGPT, Claude, etc.)
ФокусFull-stack workflowGit-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. [+] Урок 1: Установка и первый запуск
  2. [+] Урок 2: Базовые команды и правильная формулировка задач
  3. [+] Урок 3: Workflow Explore-Plan-Code и управление контекстом
  4. [+] Урок 4: Автоматизация с hooks и CLAUDE.md
  5. [+] Урок 5: Продвинутые техники и оптимизация

Что дальше?

  • Модуль М2.3 — Gemini CLI
  • Модуль М2.4 — Codex CLI
  • Модуль М2.5 — Cursor и IDE-агенты
  • Модуль М2.7 — MCP (Model Context Protocol) для расширения возможностей

Рекомендации для практики

  1. Начните с маленьких задач (добавление функции, исправление ошибки)
  2. Создавайте CLAUDE.md для каждого проекта
  3. Регулярно используйте /compact в длительных сеансах
  4. Всегда проверяйте план перед одобрением
  5. Смотрите дифы внимательно
  6. Не бойтесь запрашивать изменения в плане

Вы готовы использовать Claude Code профессионально!

Скачать урок

Есть идея или нашли ошибку?

// Обсуждение

Можно писать анонимно. Укажите email, чтобы получать уведомления об ответах.