Создание эффективных файлов CLAUDE.md

Разработка программного обеспечения с Claude Code

Dani Zysman

AI Curriculum Manager @ DataCamp

Лучшие практики CLAUDE.md

  • Начните с /init, затем дорабатывайте
    • Добавляйте контекст, когда Claude допускает ошибки
    • Фиксируйте изменения соглашений
  • Цель: живой документ, который развивается вместе с проектом
Разработка программного обеспечения с Claude Code

Проект на данный момент

music-analytics-api/
  app.py           # Application entry point
  routes.py        # API endpoints
  models.py        # Artist/Album models
  analytics.py     # Statistics functions
  middleware.py    # Request logging
  config.py        # Session settings
  CLAUDE.md        # <- Project memory file
Разработка программного обеспечения с Claude Code

Что входит в CLAUDE.md, а что нет

recraft: Что включать и что не включать в CLAUDE.md

Правило: если это длиннее стикера для заметок, этому не место в файле.

Разработка программного обеспечения с Claude Code

Итеративная доработка CLAUDE.md

> Add error handling to the /artists endpoint.
Done. I've added error handling to /artists (routes.py:9-19):
- Try-except block wrapping retrieval and serialization
- AttributeError handler if the data store isn't initialized
- General exception handler returning error details with 500 status

return jsonify({'error': f'Failed to retrieve artists: {str(e)}'}), 500
> Don't expose exception details to users, that's a security risk. Log internally 
and return a generic message.  Update CLAUDE.md.
Updated /artists to log errors internally and return a 
generic 500 message. CLAUDE.md updated with the convention: 
never expose exception details in responses.
Разработка программного обеспечения с Claude Code

Хороший и раздутый CLAUDE.md

Раздутый (200+ строк)

# Inventory API
This is an Inventory Management 
API built with Flask...

## Full Source Code
### routes.py
from flask import jsonify...
[entire file pasted]

### models.py
[entire file pasted]

## API Documentation
GET /items returns...

Хороший (15 строк)

# Inventory API
Flask REST API for inventory.

## Commands
- Run: flask run --port 5001
- Test: pytest tests/

## Conventions
- Use type hints
- Keep routes thin
Разработка программного обеспечения с Claude Code

Ссылки на файлы — с помощью @

> @routes.py what endpoints does this API have?
API Endpoints (6 GET routes)

Artists
- GET /artists              All artists
- GET /artists/<id>         Single artist by ID
- GET /artists/<id>/albums  Albums for an artist
Albums
- GET /albums               All albums
- GET /stats/albums         Album popularity statistics
- GET /stats/average-tracks Average track count per album

All endpoints return JSON.
Разработка программного обеспечения с Claude Code

CLAUDE.md и @ вместе

# CLAUDE.md - Music Analytics API
A Flask-based REST API for music data analytics, providing endpoints for artists,
albums, and statistics.
...

## Key Files @routes.py - API endpoint definition @models.py - Artist and Album data models with in-memory store ...

CLAUDE.md обеспечивает постоянный контекст. Используйте @, чтобы Claude всегда знал ваши ключевые файлы.

Разработка программного обеспечения с Claude Code

Три уровня контекста

Три уровня контекста CLAUDE.md

Разработка программного обеспечения с Claude Code

Когда что использовать

  • CLAUDE.md (проект, общий)

    • Команды тестирования, соглашения по коду, структура проекта
  • CLAUDE.local.md (проект, личный)

    • Локальные пути, API-ключи, личные настройки рабочего процесса
  • ~/.claude/CLAUDE.md (глобальный, личный)

    • Стилевые предпочтения для всех проектов
    • Поведение по умолчанию, которое нужно всегда
Разработка программного обеспечения с Claude Code

Итоги главы 1

  • /init и CLAUDE.md → постоянный контекст проекта
  • Shift+Tab или /plan → переключение режима Plan
  • think ... ultrathink → глубокие рассуждения (5 уровней)
Разработка программного обеспечения с Claude Code

Давайте потренируемся!

Разработка программного обеспечения с Claude Code

Preparing Video For Download...