feat(uk): translate P3 examples for modules 01, 02
01-slash-commands: 7 slash command examples 02-memory: 3 CLAUDE.md examples Progress: 25/67 files Ref: luongnv89/claude-howto#63
This commit is contained in:
1159
uk/02-memory/README.md
Normal file
1159
uk/02-memory/README.md
Normal file
File diff suppressed because it is too large
Load Diff
64
uk/02-memory/directory-api-CLAUDE.md
Normal file
64
uk/02-memory/directory-api-CLAUDE.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Стандарти модуля API
|
||||
|
||||
Цей файл перевизначає кореневий CLAUDE.md для всього у /src/api/
|
||||
|
||||
## Специфічні стандарти API
|
||||
|
||||
### Валідація запитів
|
||||
- Використовувати Zod для валідації схем
|
||||
- Завжди валідувати вхідні дані
|
||||
- Повертати 400 з помилками валідації
|
||||
- Включати деталі помилок на рівні полів
|
||||
|
||||
### Автентифікація
|
||||
- Усі ендпоінти вимагають JWT-токен
|
||||
- Токен у заголовку Authorization
|
||||
- Токен закінчується через 24 години
|
||||
- Реалізувати механізм refresh-токенів
|
||||
|
||||
### Формат відповіді
|
||||
|
||||
Усі відповіді мають дотримуватися цієї структури:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": { /* фактичні дані */ },
|
||||
"timestamp": "2025-11-06T10:30:00Z",
|
||||
"version": "1.0"
|
||||
}
|
||||
```
|
||||
|
||||
Відповіді з помилками:
|
||||
```json
|
||||
{
|
||||
"success": false,
|
||||
"error": {
|
||||
"code": "VALIDATION_ERROR",
|
||||
"message": "Повідомлення для користувача",
|
||||
"details": { /* помилки полів */ }
|
||||
},
|
||||
"timestamp": "2025-11-06T10:30:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
### Пагінація
|
||||
- Використовувати пагінацію на основі курсора (не зсуву/offset)
|
||||
- Включати булеве поле `hasMore`
|
||||
- Максимальний розмір сторінки: 100
|
||||
- Розмір сторінки за замовчуванням: 20
|
||||
|
||||
### Обмеження частоти запитів (Rate Limiting)
|
||||
- 1000 запитів на годину для автентифікованих користувачів
|
||||
- 100 запитів на годину для публічних ендпоінтів
|
||||
- Повертати 429 при перевищенні
|
||||
- Включати заголовок retry-after
|
||||
|
||||
### Кешування
|
||||
- Використовувати Redis для кешування сесій
|
||||
- Тривалість кешу: 5 хвилин за замовчуванням
|
||||
- Інвалідувати при операціях запису
|
||||
- Тегувати ключі кешу типом ресурсу
|
||||
|
||||
---
|
||||
**Останнє оновлення**: 9 квітня 2026
|
||||
63
uk/02-memory/personal-CLAUDE.md
Normal file
63
uk/02-memory/personal-CLAUDE.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Мої уподобання розробки
|
||||
|
||||
## Про мене
|
||||
- **Рівень досвіду**: 8 років full-stack розробки
|
||||
- **Бажані мови**: TypeScript, Python
|
||||
- **Стиль комунікації**: Прямий, з прикладами
|
||||
- **Стиль навчання**: Візуальні діаграми з кодом
|
||||
|
||||
## Уподобання коду
|
||||
|
||||
### Обробка помилок
|
||||
Я віддаю перевагу явній обробці помилок з блоками try-catch та змістовними повідомленнями.
|
||||
Уникайте загальних помилок. Завжди логуйте помилки для налагодження.
|
||||
|
||||
### Коментарі
|
||||
Коментарі для ЧОМУ, а не ЩО. Код має бути самодокументованим.
|
||||
Коментарі мають пояснювати бізнес-логіку або неочевидні рішення.
|
||||
|
||||
### Тестування
|
||||
Я віддаю перевагу TDD (розробка через тестування).
|
||||
Спочатку писати тести, потім реалізацію.
|
||||
Фокус на поведінці, а не деталях реалізації.
|
||||
|
||||
### Архітектура
|
||||
Я віддаю перевагу модульному, слабкоповʼязаному дизайну.
|
||||
Використовувати впровадження залежностей (dependency injection) для тестовності.
|
||||
Розділення відповідальностей (Controllers, Services, Repositories).
|
||||
|
||||
## Уподобання налагодження
|
||||
- Використовувати console.log з префіксом: `[DEBUG]`
|
||||
- Включати контекст: назву функції, відповідні змінні
|
||||
- Використовувати стеки викликів (stack traces), коли доступні
|
||||
- Завжди включати мітки часу в журналах
|
||||
|
||||
## Комунікація
|
||||
- Пояснювати складні концепції діаграмами
|
||||
- Показувати конкретні приклади перед поясненням теорії
|
||||
- Включати фрагменти коду до/після
|
||||
- Підсумовувати ключові моменти наприкінці
|
||||
|
||||
## Організація проєкту
|
||||
Я організовую проєкти так:
|
||||
```
|
||||
project/
|
||||
├── src/
|
||||
│ ├── api/
|
||||
│ ├── services/
|
||||
│ ├── models/
|
||||
│ └── utils/
|
||||
├── tests/
|
||||
├── docs/
|
||||
└── docker/
|
||||
```
|
||||
|
||||
## Інструментарій
|
||||
- **IDE**: VS Code з vim-клавішами
|
||||
- **Термінал**: Zsh з Oh-My-Zsh
|
||||
- **Форматування**: Prettier (довжина рядка 100 символів)
|
||||
- **Лінтер**: ESLint з конфігурацією airbnb
|
||||
- **Тестовий фреймворк**: Jest з React Testing Library
|
||||
|
||||
---
|
||||
**Останнє оновлення**: 9 квітня 2026
|
||||
91
uk/02-memory/project-CLAUDE.md
Normal file
91
uk/02-memory/project-CLAUDE.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# Конфігурація проєкту
|
||||
|
||||
## Огляд проєкту
|
||||
- **Назва**: Платформа електронної комерції
|
||||
- **Технологічний стек**: Node.js, PostgreSQL, React 18, Docker
|
||||
- **Розмір команди**: 5 розробників
|
||||
- **Дедлайн**: Q4 2025
|
||||
|
||||
## Архітектура
|
||||
@docs/architecture.md
|
||||
@docs/api-standards.md
|
||||
@docs/database-schema.md
|
||||
|
||||
## Стандарти розробки
|
||||
|
||||
### Стиль коду
|
||||
- Використовувати Prettier для форматування
|
||||
- Використовувати ESLint з конфігурацією airbnb
|
||||
- Максимальна довжина рядка: 100 символів
|
||||
- Використовувати відступ 2 пробіли
|
||||
|
||||
### Конвенції іменування
|
||||
- **Файли**: kebab-case (user-controller.js)
|
||||
- **Класи**: PascalCase (UserService)
|
||||
- **Функції/Змінні**: camelCase (getUserById)
|
||||
- **Константи**: UPPER_SNAKE_CASE (API_BASE_URL)
|
||||
- **Таблиці БД**: snake_case (user_accounts)
|
||||
|
||||
### Git-процес
|
||||
- Назви гілок: `feature/description` або `fix/description`
|
||||
- Повідомлення комітів: дотримуватися conventional commits
|
||||
- PR обовʼязковий перед злиттям
|
||||
- Усі CI/CD перевірки мають пройти
|
||||
- Мінімум 1 затвердження (approval) обовʼязкове
|
||||
|
||||
### Вимоги до тестування
|
||||
- Мінімум 80% покриття коду
|
||||
- Усі критичні шляхи мають мати тести
|
||||
- Використовувати Jest для юніт-тестів
|
||||
- Використовувати Cypress для E2E-тестів
|
||||
- Назви тестових файлів: `*.test.ts` або `*.spec.ts`
|
||||
|
||||
### Стандарти API
|
||||
- Лише RESTful ендпоінти
|
||||
- JSON запит/відповідь
|
||||
- Правильно використовувати HTTP-статус-коди
|
||||
- Версіонування API-ендпоінтів: `/api/v1/`
|
||||
- Документувати всі ендпоінти з прикладами
|
||||
|
||||
### База даних
|
||||
- Використовувати міграції для змін схеми
|
||||
- Ніколи не зашивати облікові дані в код
|
||||
- Використовувати пул зʼєднань (connection pooling)
|
||||
- Увімкнути логування запитів у середовищі розробки
|
||||
- Регулярне резервне копіювання обовʼязкове
|
||||
|
||||
### Деплой
|
||||
- Деплой на основі Docker
|
||||
- Оркестрація Kubernetes
|
||||
- Стратегія blue-green деплою
|
||||
- Автоматичний відкат при невдачі
|
||||
- Міграції БД виконуються перед деплоєм
|
||||
|
||||
## Типові команди
|
||||
|
||||
| Команда | Призначення |
|
||||
|---------|-------------|
|
||||
| `npm run dev` | Запуск сервера розробки |
|
||||
| `npm test` | Запуск тестового набору |
|
||||
| `npm run lint` | Перевірка стилю коду |
|
||||
| `npm run build` | Збірка для продакшну |
|
||||
| `npm run migrate` | Запуск міграцій БД |
|
||||
|
||||
## Контакти команди
|
||||
- Техлід: Sarah Chen (@sarah.chen)
|
||||
- Продакт-менеджер: Mike Johnson (@mike.j)
|
||||
- DevOps: Alex Kim (@alex.k)
|
||||
|
||||
## Відомі проблеми та обхідні рішення
|
||||
- Пул зʼєднань PostgreSQL обмежений до 20 у пікові години
|
||||
- Обхідне рішення: реалізувати чергу запитів
|
||||
- Проблеми сумісності Safari 14 з async generators
|
||||
- Обхідне рішення: використовувати транспілятор Babel
|
||||
|
||||
## Повʼязані проєкти
|
||||
- Аналітична панель: `/projects/analytics`
|
||||
- Мобільний додаток: `/projects/mobile`
|
||||
- Адмін-панель: `/projects/admin`
|
||||
|
||||
---
|
||||
**Останнє оновлення**: 9 квітня 2026
|
||||
Reference in New Issue
Block a user