Структура проекта
Этот документ подробно описывает структуру каталогов проекта, назначение каждой директории и лучшие практики при работе с кодовой базой.
Общее устройство проекта
Главные элементы находятся в корне:
project-root/ │ ├── src/ ├── docs/ ├── project-template/ ├── scripts/ ├── static/ ├── build/ └── .github/
Каждая директория выполняет чётко определённую роль.
📁 src/ — основной код приложения
src/ ├── api/ ├── application/ ├── domain/ ├── infrastructure/ ├── utils/ ├── config/ └── index.ts
api/
Слой взаимодействия с внешним миром:
- контроллеры
- роутеры
- валидация входящих данных
- обработка HTTP-запросов
application/
Сценарии бизнес-логики:
- Use Cases
- обработчики
- DTO
- оркестрация запросов
domain/
Чистая бизнес-логика:
- сущности
- правила предметной области
- контракты репозиториев
- доменные сервисы
Важно: доменный слой НЕ должен зависеть от инфраструктуры.
infrastructure/
Реализации инфраструктурных зависимостей:
- работа с внешними API
- клиенты БД
- репозитории
- логирование
- интеграции
utils/
Чистые вспомогательные функции:
- парсеры
- форматтеры
- хелперы
config/
Конфигурация окружения:
- env-переменные
- общие настройки
📁 docs/ — документация (Docusaurus)
Содержит:
- api/ — ручная API-документация
- project-template/ — техническая документация
- Mermaid-диаграммы
- getting-started
- structure
- architecture
Это всё, что мы сейчас создаём по шагам.
📁 project-template/
Файлы, относящиеся к шаблону проекта:
- преднастроенные конфиги
- базовые правила
- шаблонные элементы проекта
📁 scripts/
Вспомогательные скрипты:
- генераторы
- утилиты для CI/CD
- автоматизация процессов
- форматирование
Сюда помещают всё, что связано с автоматизацией, а не с кодом проекта.
📁 static/
Статические ресурсы:
- изображения
- favicon
- логотипы
- файлы, доступные напрямую
📁 build/
Готовая сборка проекта, формируется автоматически командой:
npm run build