Как стать автором
Обновить

Anthropic Claude Code: Новый подход к программированию

Время на прочтение10 мин
Количество просмотров1.2K
© Генерация автора
© Генерация автора

Это емкое содержание официального материала Anthropic Claude Code: Best practices for agentic coding (PDF)

Claude Code — инструмент командной строки от Anthropic для «agentic coding». Он дает инженерам и исследователям Anthropic нативный способ встроить Claude в их воркфлоу. Инструмент специально сделан низкоуровневым и не навязывает подходы, предоставляя почти прямой доступ к модели.

Кастомизация и настройка рабочего окружения

CLAUDE.MD: персональная база знаний для ИИ-ассистента

Файлы CLAUDE.MD автоматом подтягиваются в контекст Claude Code, описывая специфику проекта.

В них можно указать:

  • Часто используемые bash-команды, например: # Bash commands\n- npm run build: Build the project

  • Ключевые файлы: Core file: src/utils/auth.js - handles all authentication logic

  • Стилевые гайды: # Code style\n- Use ES modules (import/export) syntax

  • Инструкции по тестированию

  • Правила работы с репозиторием (именование веток, merge vs. rebase)

  • Особенности настройки окружения (например, использование pyenv)

Файлы могут располагаться:

  • В корне репозитория: CLAUDE.md (командный) или CLAUDE.local.md (личный)

  • В родительских/дочерних директориях (для монорепозиториев)

  • В домашней директории: ~/.claude/CLAUDE.md (глобальные настройки)

Команда /init автоматически создаёт базовый файл.

Тюнинг CLAUDE.MD для лучшей работы модели

Чтобы инструкции в CLAUDE.MD работали лучше, их стоит дорабатывать итеративно, как и промпты.

Инженеры Anthropic советуют:

  • Не перегружать инструкции лишним

  • Проверять его влияние на поведение модели

  • При необходимости выделять важное ("IMPORTANT", "YOU MUST")

  • Использовать prompt improver при необходимости

  • Добавлять информацию вручную или клавишей # для автоматического включения

CLAUDE.MD — динамичный инструмент промпт-инжиниринга, который требует внимания для эффективной работы с ИИ.

Контроль доступа для инструментов

Claude Code по умолчанию запрашивает разрешение на действия, меняющие систему. При этом он позволяет гибко настраивать список разрешённых инструментов.

Управлять разрешениями можно через:

  • Выбор "Always allow" при запросе

  • Команду /allowed-tools (например, Edit для файлов, Bash(git commit:*) для коммитов, mcp__puppeteer__puppeteer_navigate для навигации Puppeteer)

  • Ручное редактирование settings.json (для командной работы) или ~/.claude.json

  • Флаг -allowedTools для сессионных разрешений

Интеграция с gh CLI для эффективной работы с GitHub

Claude Code умеет использовать CLI gh для работы с GitHub. Когда gh CLI установлен, Claude может:

  • Создавать задачи (issues)

  • Открывать пул-реквесты (PR)

  • Читать комментарии

  • Выполнять другие операции на GitHub

Без gh он может использовать GitHub API или MCP-сервер.

Ключевые воркфлоу и паттерны использования

Цикл «исследуй → планируй → кодируй → коммить»: основной воркфлоу

Универсальный воркфлоу для многих задач, который заметно бустит продуктивность. Особенно при решении проблем, требующих глубокого анализа.

Как:

  1. Исследование: claude read src/feature_x/ main.py and src/utils/logger.py. Do not write code yet. Рекомендуется использовать субагентов для проверки деталей.

  2. Планирование: claude think hard and create a plan to implement feature Y using the patterns in feature_X. Слова "think", "think hard", "think harder", "ultrathink" выделяют ИИ дополнительный бюджет на обдумывание. План можно сохранить как документ.

  3. Кодирование: claude now implement the plan. Verify your steps.

  4. Завершение: claude write a commit message for my changes and commit. Также Claude может создать PR, обновить README/changelog.

Тест-ориентированная разработка (TDD) с ИИ: новый уровень

TDD с Claude Code: ИИ сначала пишет тесты, потом код под них.

Как:

  1. Claude пишет тесты на основе ожидаемых пар «вход/выход»: claude write tests for our new email validation function. This is TDD, so don't implement the function yet. The tests should verify that valid emails pass and invalid ones fail.

  2. Тесты запускаются: claude run the tests to confirm they fail

  3. Тесты коммитятся: claude commit the tests with message "Add email validation tests"

  4. Claude пишет код, проходящий тесты: claude implement the email validation function to make all tests pass. Do not modify the tests.

    • На этом этапе может быть полезно попросить Claude проверить с помощью независимых субагентов, что реализация не переобучена под тесты (overfitting).

  5. Код коммитится: claude commit the implementation with message "Implement email validation"

Итеративная разработка с визуальной обратной связью

Claude Code может итеративно пилить UI, ориентируясь на визуалы (макеты).

Как:

  1. Дать Claude возможность делать скриншоты через Puppeteer MCP, iOS simulator MCP или вручную

  2. Предоставить визуальный макет (изображение через copy/paste, drag-drop или путь к файлу)

  3. Claude реализует дизайн: claude implement this design in HTML and CSS. Follow our project's style conventions.

  4. Делает скриншоты: claude take a screenshot of the current implementation

  5. Итерирует до совпадения с макетом: claude the button positioning is off. Move it 10px to the right and center it vertically.

Режим «Safe YOLO»: скорость в обмен на контролируемый риск

Использование флага claude --dangerously-skip-permissions для обхода всех проверок разрешений. Это позволяет Claude работать непрерывно.

Подходит для:

  • Исправления ошибок линтера

  • Генерации шаблонного кода

  • Быстрого прототипирования

Важно: этот режим рискован и может привести к потере данных. Для снижения рисков рекомендуется использовать его в изолированном контейнере без доступа в интернет.

Claude Code как инструмент онбординга и исследования кодовой базы

Claude Code круто помогает въезжать в новые кодовые базы. Он отвечает на вопросы, которые обычно задают коллегам.

Примеры вопросов:

  • «Как работает логирование в этом проекте?»

  • «Как создать новую API-точку?»

  • «Что делает async move { ... } в строке X файла Y?»

  • «Какие пограничные случаи обрабатывает CustomerOnboardingFlowImpl

Claude сам ищет ответы в коде и объясняет их простым языком.

Автоматизация работы с Git и GitHub

Claude Code может выполнять большинство операций с Git и GitHub, автоматизируя рутину.

  • Git:

    • Поиск по истории: claude what changes were included in v1.2.3?

    • Написание сообщений коммитов: claude write a commit message for my current changes

    • Разрешение конфликтов: claude resolve the merge conflicts in user_service.js

    • Отмена изменений: claude reset the changes to config.json but keep the changes toREADME.md

  • GitHub:

    • Создание PR: claude pr или claude create a pull request for my current branch

    • Исправление комментариев код-ревью: claude fix the comments on PR #123 and push

    • Устранение ошибок сборки: claude fix the CI failures in PR #456

  • Примечательно: инженеры Anthropic используют Claude для более чем 90% своих операций с Git.

Работа с Jupyter Notebooks: анализ и визуализация

Claude Code используется исследователями Anthropic для чтения и записи Jupyter notebooks.

Claude может:

  • Интерпретировать выводы, включая изображения

  • Улучшать визуализации: claude make this matplotlib chart more aesthetically pleasing

  • Объяснять результаты: claude explain what's happening in the anomaly at timestamp 1500 in the notebook output

  • Предлагать следующие шаги анализа: claude based on these results, what should we explore next?

Рекомендуемый подход: Claude Code и .ipynb файл открыты рядом в VS Code.

Интеграция с тулами для расширения возможностей

Использование пользовательских bash-инструментов

Claude Code подхватывает ваше bash-окружение, но о кастомных тулах ему нужно сообщить.

Рекомендации:

  1. Объясните Claude имя инструмента с примерами: claude we use a tool called "projectctl" for managing our deployments. Example: projectctl deploy --env staging

  2. Посоветуйте запустить -help: claude run projectctl --help to see available commands

  3. Задокументируйте инструменты в CLAUDE.MD: # Custom tools\n- projectctl: Deployment management tool

Добавляем фичи через MCP (Modular Capability Providers)

Claude Code может работать как MCP-сервер и клиент. Он подключается к другим MCP-серверам для доступа к их инструментам.

Подключение настраивается через:

  • Конфигурацию проекта

  • Глобальную конфигурацию

  • Файл .mcp.json в репозитории (например, для Puppeteer, Sentry)

Флаг -mcp-debug помогает в отладке: claude -mcp-debug analyze the webpage at example.com

Пользовательские slash-команды для повторяющихся задач

Для часто повторяемых процессов можно создавать шаблоны промптов в виде slash-команд.

Markdown-файлы с шаблонами хранятся в папках:

  • .claude/commands (для командных)

  • ~/.claude/commands (для личных)

Команды доступны через / и могут использовать $ARGUMENTS. Пример: /project:fix-github-issue 1234 для автоматического исправления GitHub issue.

Оптимизируем работу и управляем контекстом

Конкретность инструкций – ключ к успеху

Чем точнее и детальнее инструкции, тем лучше Claude Code справляется.

Примеры:

  • Плохо: add tests forfoo.py

  • Хорошо: write a new test case forfoo.py, covering the edge case where the user is logged out. avoid mocks

  • Плохо: refactor this

  • Хорошо: refactor this code to use the builder pattern approach. Keep the same functionality.

Claude может предполагать намерения, но не читать мысли. Конкретика даёт лучшие результаты.

Разные типы инпута: картинки и URL для большего контекста

Claude эффективно работает с изображениями и URL. Это обогащает его понимание задачи.

Изображения можно:

  • Вставлять (cmd+ctrl+shift+4 на macOS для скриншота в буфер, затем ctrl+v – примечание: не cmd+v)

  • Перетаскивать

  • Указывать путь к файлу: claude analyze the design in ~/designs/homepage_v2.png

URL можно вставлять напрямую. Для часто используемых доменов можно использовать /allowed-tools для добавления в allowlist.

Ранняя и частая коррекция курса для лучших результатов

Активная работа с Claude обычно дает лучший результат, чем если пустить его на самотек.

Как:

  • Запрашивать план перед кодированием: claude outline your approach before writing any code

  • Нажимать Escape для прерывания (сохраняет контекст для перенаправления)

  • Двойное нажатие Escape для возврата и редактирования предыдущего промпта

  • Использовать shift+tab для переключения auto-accept

  • Просить отменить изменения: claude undo the last change

/clear для фокусировки контекста

Команда /clear сбрасывает окно контекста. Это особенно полезно в длительных сессиях.

Используйте её между задачами для удаления нерелевантной информации:

  • Переписки

  • Содержимого файлов

  • Вывода команд

Такой подход предотвращает снижение производительности из-за переполненного контекста.

Чек-листы и «черновики» для сложных задач

Для объёмных, многоэтапных задач рекомендуется использовать чек-листы.

Пример для исправления ошибок линтера:

claude run lint and put all errors into a checklist in checklist.md. Then, fix them one by one, checking them off.

Подходит для:

  • Миграций кода

  • Исправления множества ошибок

  • Рефакторинга крупных компонентов

  • Многоэтапных оптимизаций

Разные способы передачи данных в Claude

Существует несколько методов для предоставления данных Claude Code:

  • Копирование/вставка в промпт (самый частый)

  • Передача через pipe: cat logs.txt | claude analyze these server logs and suggest optimizations

  • Чтение файлов: claude read config.json and explain what each setting does

  • Чтение URL: claude summarize the documentation at https://docs.example.com/api

  • Извлечение через bash: claude run grep -r "TODO" . | sort and organize these TODOs by priority

Автоматизация и масштабирование с Claude Code

Headless mode: для работы без UI (в скриптах, CI/CD)

Режим без интерфейса для неинтерактивных контекстов:

claude -p "Refactor all .js files in src/legacy to use async/await instead of promises. Output a list of changes." --output-format stream-json

Используется в:

  • CI/CD

  • Pre-commit хуках

  • Скриптах сборки

  • Автоматизации рабочих процессов

Флаг -output-format stream-json для структурированного вывода в JSON.

Важно отметить: headless mode не сохраняется между сессиями; его необходимо активировать для каждой сессии заново.

Автоматический триаж задач с помощью headless mode

Headless mode можно использовать для автоматизации, запускаемой событиями GitHub.

Пример:

claude -p "Review this new issue and add appropriate labels: $ISSUE_BODY" --allowedTools Bash(gh issue edit:*)

Публичный репозиторий Claude Code использует этот механизм для проверки задач и присвоения меток.

Claude Code как продвинутый линтер

Claude Code делает субъективные код-ревью, которые видят больше, чем обычные линтеры:

  • Выявляет опечатки: claude review this code for typos in comments and variable names

  • Находит устаревшие комментарии: claude find outdated comments in the codebase

  • Проверяет согласованность именования: claude review our API for naming consistency

  • Оценивает понятность кода: claude review this function for readability and suggest improvements

Мульти-Claude: параллельная работа для повышения эффективности

Использование нескольких экземпляров Claude Code параллельно повышает общую продуктивность.

Ключевое преимущество такого подхода заключается в том, что разделение контекстов между разными экземплярами Claude часто даёт лучшие результаты, чем работа с одним экземпляром, так как каждый ИИ-ассистент может сфокусироваться на своей задаче без влияния истории предыдущих взаимодействий по другим задачам.

Как:

  • Один пишет, другой проверяет: C1 пишет код, /clear или C2 в другом терминале ревьюит. C3 читает код и фидбек, вносит правки.

  • Один пишет тесты, другой код: C1 пишет тесты, C2 — код. Экземпляры могут «общаться» через общие «черновики» (scratchpads).

  • Несколько checkout'ов репозитория: 3-4 checkout'а в разных папках/терминалах.

  • Git worktrees: git worktree add ../project-feature-a feature-a

Советы:

  • Используйте единообразное именование

  • Одна вкладка терминала на worktree

  • Настройте уведомления (например, в iTerm2)

  • Используйте отдельные окна IDE

Headless mode с кастомной «обвязкой»: распараллеливание и конвейеризация

Использование claude -p для программной интеграции в более крупные рабочие процессы.

Распараллеливание (Fanning out):

  • Claude пишет скрипт для генерации списка задач: claude create a script that outputs a list of all TypeScript files that need migration to new API

  • Цикл по задачам:

for file in $(cat files_to_migrate.txt); do
  claude -p "migrate $file from old API to new API. When done, return OK or FAIL" --allowedTools Edit Bash(git commit:*)
done
  • Итеративная отладка промпта для повышения успешности

Конвейеризация (Pipelining):

claude -p "Extract all function names from this code" --json | jq '.output' | claude -p "Generate documentation for these functions"

Флаг -verbose для отладки (рекомендуется отключать в production).


Краткое руководство

  1. Начните с CLAUDE.MD:

    claude /init
    • Добавьте частые команды, стиль кода и ключевые файлы

    • Делитесь им с командой через Git

  2. Конкретизируйте запросы:

    claude write a new test case for auth.js, covering the case where the token is expired. Use jest and mock the API calls.
  3. Используйте цикл «исследуй → планируй → кодируй»:

    claude read src/feature_x/ main.py and src/utils/logger.py. Do not write code yet.
    claude think hard and create a plan to implement feature Y using the patterns in feature_X.
    claude now implement the plan. Verify your steps.
  4. Автоматизируйте Git/GitHub:

    claude write a commit message for my current changes.
    claude pr
    claude fix the comments on my PR #123 and push.
  5. Дайте Claude «глаза» и «руки»:

    /allowed-tools add Edit
    /allowed-tools add Bash(git commit:*)
    /allowed-tools add mcp__puppeteer__puppeteer_navigate
  6. Управляйте контекстом:

    /clear
    claude run lint and put all errors into a checklist in checklist.md. Then, fix them one by one, checking them off.
  7. Для автоматизации – headless mode:

    claude -p "Refactor all .js files in src/legacy to use async/await instead of promises. Output a list of changes." --output-format stream-json
  8. Пробуйте multi-Claude для сложных задач:
    В одном терминале:

    claude write tests for the new user registration flow.

    В другом (после /clear или в новом worktree):

    claude review the tests in tests/user_registration_test.js. Then write code in src/user_controller.js to make all tests pass. Do not modify the tests.

Удачного вайбкодинга, господа!

Теги:
Хабы:
0
Комментарии2

Публикации

Ближайшие события