Skip to main content

Структура проекта

Этот документ подробно описывает структуру каталогов проекта, назначение каждой директории и лучшие практики при работе с кодовой базой.


Общее устройство проекта

Главные элементы находятся в корне:

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