AI Wiki

Кращі практики Claude Code

Ефективне використання Claude Code — структура CLAUDE.md, промпти, організація файлів, тестування

claude-codebest-practicesproductivityworkflow

📎ОФІЦІЙНА ДОКУМЕНТАЦІЯ

Структура CLAUDE.md

Принцип мінімальної достатності

CLAUDE.md повинен містити лише те, що дійсно потрібно агенту. Надлишковий контекст витрачає токени та може відволікати модель.

markdown
# MyApp ## Стек Next.js 15, TypeScript, Prisma, PostgreSQL, Tailwind CSS ## Команди - npm run dev — dev-сервер (port 3000) - npm run test — тести (Vitest) - npm run test:e2e — E2E тести (Playwright) - npm run build — production збірка ## Правила - Server Components за замовчуванням - "use client" лише для інтерактивних компонентів - Валідація через Zod - Обробка помилок через ErrorBoundary
💡Порада

Оптимальний розмір CLAUDE.md — 30-100 рядків. Якщо файл більший, розбийте на CLAUDE.md у піддиректоріях.

Ієрархія файлів для великого проєкту

CLAUDE.md — загальний контекст проєкту src/ components/CLAUDE.md — стандарти компонентів api/CLAUDE.md — правила API database/CLAUDE.md — робота з базою даних

Промпт-інженерія для Claude Code

Будьте конкретними

bash
# Погано — занадто абстрактно > Покращ код # Добре — конкретна задача > Рефакторинг UserService: витягни логіку валідації email у окрему функцію validateEmail, додай unit тест

Вказуйте обмеження

bash
# Вкажіть, чого НЕ робити > Додай пагінацію до API /users. НЕ змінюй існуючі тести. Використовуй cursor-based пагінацію, не offset.

Декомпозиція складних задач

bash
# Замість одного великого запиту > Зроби повний рефакторинг всього проєкту # Розбийте на кроки > Крок 1: Проаналізуй поточну архітектуру та знайди проблемні місця > Крок 2: Рефакторинг модуля auth — витягни в окремий сервіс > Крок 3: Оновити тести для модуля auth

Використовуйте контекстні промпти

bash
# Дайте контекст проблеми > В продакшн-логах з'являється помилка "TypeError: Cannot read property 'id' of undefined" у файлі src/services/OrderService.ts:45. Знайди причину та виправ. Перевір пов'язані файли.

Ефективний workflow

1. Git-центричний підхід

bash
# Працюйте з чистим git-станом git status # перевірити, що немає uncommitted змін # Запустити Claude Code claude # Після роботи — review змін > Покажи git diff всіх змін, які ти зробив # Commit через Claude Code > Створи коміт з описовим повідомленням

2. Ітеративна розробка

Замість одного великого запиту, працюйте ітеративно:

bash
> Створи базову структуру компонента Dashboard # Перевірте результат > Додай графік з Chart.js до Dashboard # Перевірте результат > Додай real-time оновлення через WebSocket # Перевірте результат

3. Тестування як частина workflow

bash
# Завжди просіть написати тести > Додай функцію calculateDiscount та тест для неї # Або тести як перевірку > Запусти npm run test і виправ всі помилки
⚠️Увага

Завжди переглядайте зміни перед комітом. Claude Code — потужний інструмент, але людська перевірка залишається критично важливою.

Організація проєкту для Claude Code

Чітка структура директорій

src/ components/ — UI компоненти Button/ Button.tsx Button.test.tsx Button.module.css services/ — бізнес-логіка hooks/ — React hooks utils/ — утиліти types/ — TypeScript типи api/ — API endpoints

Іменування файлів

  • Використовуйте послідовне іменування — Claude Code краще розуміє проєкти з передбачуваною структурою
  • Один компонент — одна директорія з усіма пов'язаними файлами
  • index.ts для barrel exports

TypeScript типи

Claude Code значно краще працює з TypeScript, бо типи дають йому додатковий контекст:

typescript
// Добре — Claude Code розуміє структуру даних interface User { id: string; email: string; role: 'admin' | 'user'; createdAt: Date; } // Claude Code може генерувати правильні функції function getUserById(id: string): Promise<User | null> { // ... }

Поширені антипатерни

Не використовуйте Claude Code для...

АнтипатернЧому це проблема
Генерація величезних файлів (1000+ рядків)Модель може втратити контекст
Робота з binary файламиClaude Code працює з текстом
Деплой в продакшн без перевіркиЗавжди потрібен human review
Ігнорування помилокЯкщо тести падають, розберіться чому

Не давайте занадто широкі дозволи

json
// Погано { "permissions": { "allow": ["Bash(*)"] } } // Добре — конкретні дозволи { "permissions": { "allow": [ "Bash(npm run *)", "Bash(git *)", "Bash(npx prettier *)" ], "deny": [ "Bash(rm -rf *)", "Bash(sudo *)" ] } }

Оптимізація використання токенів

Уникайте зайвих читань

bash
# Погано — Claude Code прочитає весь файл > Що робить функція на рядку 5 у файлі app.ts? # Добре — дайте контекст одразу > Функція processOrder у src/services/OrderService.ts повертає undefined замість об'єкта. Виправ.

Використовуйте точні шляхи

bash
# Погано — Claude Code шукатиме по всьому проєкту > Знайди файл з функцією login # Добре — точний шлях > Подивись src/services/AuthService.ts

Чеклист для нового проєкту

  • Створити CLAUDE.md з описом стеку та команд
  • Налаштувати .claude/settings.json з дозволами
  • Додати hooks для автоформатування
  • Створити project-specific skills
  • Визначити .gitignore (Claude Code не повинен бачити node_modules, .env)
  • Налаштувати MCP-сервери за потреби
CLAUDE.md

Детальний гайд по налаштуванню CLAUDE.md

Hooks

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