Skip to main content

Введение

Эта документация описывает архитектуру проекта, принципы организации кода и правила взаимодействия между слоями приложения.
Её цель — зафиксировать архитектурные решения, упростить onboarding новых разработчиков и обеспечить единый подход к развитию проекта.

Документация ориентирована на разработчиков и архитекторов, работающих с кодовой базой, и предполагает базовое понимание frontend-разработки и TypeScript.


Цели архитектуры

Архитектура проекта спроектирована с учётом следующих целей:

  • Масштабируемость — возможность безболезненно добавлять новые фичи и модули
  • Модульность — изоляция функциональных областей друг от друга
  • Поддерживаемость — предсказуемая структура и понятные зоны ответственности
  • Тестируемость — бизнес-логика не зависит от UI и инфраструктуры
  • Явные зависимости — контроль направления зависимостей между слоями

Ключевые понятия

В документации используются следующие базовые термины:

  • Модуль — логическая единица организации кода (технический аспект)
  • Фича — функциональная задача или сценарий использования
  • Кейс — часть фичи, реализующая конкретный пользовательский или системный сценарий
  • Use-case — бизнес-сценарий в слое domain
  • Слой — архитектурный уровень (app, domain, data)

Подробные определения приведены в разделе «Глоссарий».


Общая модель приложения

Проект построен по слоистой архитектуре и разделён на три ключевых слоя:

  • App — пользовательский интерфейс и взаимодействие с пользователем
  • Domain — бизнес-логика и правила предметной области
  • Data — доступ к данным и внешним источникам

Зависимости между слоями направлены строго сверху вниз: