Введение
Эта документация описывает архитектуру проекта, принципы организации кода и правила взаимодействия между слоями
приложения.
Её цель — зафиксировать архитектурные решения, упростить onboarding новых разработчиков и обеспечить единый подход к
развитию проекта.
Документация ориентирована на разработчиков и архитекторов, работающих с кодовой базой, и предполагает базовое понимание frontend-разработки и TypeScript.
Цели архитектуры
Архитектура проекта спроектирована с учётом следующих целей:
- Масштабируемость — возможность безболезненно добавлять новые фичи и модули
- Модульность — изоляция функциональных областей друг от друга
- Поддерживаемость — предсказуемая структура и понятные зоны ответственности
- Тестируемость — бизнес-логика не зависит от UI и инфраструктуры
- Явные зависимости — контроль направления зависимостей между слоями
Ключевые понятия
В документации используются следующие базовые термины:
- Модуль — логическая единица организации кода (технический аспект)
- Фича — функциональная задача или сценарий использования
- Кейс — часть фичи, реализующая конкретный пользовательский или системный сценарий
- Use-case — бизнес-сценарий в слое
domain - Слой — архитектурный уровень (
app,domain,data)
Подробные определения приведены в разделе «Глоссарий».
Общая модель приложения
Проект построен по слоистой архитектуре и разделён на три ключевых слоя:
- App — пользовательский интерфейс и взаимодействие с пользователем
- Domain — бизнес-логика и правила предметной области
- Data — доступ к данным и внешним источникам
Зависимости между слоями направлены строго сверху вниз: