Кращі практики 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