sync
This commit is contained in:
@@ -4,7 +4,7 @@ title: Архитектура
|
||||
|
||||
# Архитектура
|
||||
|
||||
Архитектура построена на FSD (Feature‑Sliced Design) и строгих границах модулей.
|
||||
Архитектура построена на FSD (`Feature‑Sliced Design`) и строгих границах модулей.
|
||||
Цель — разделить ответственность, упростить сопровождение и контроль зависимостей.
|
||||
|
||||
## Принципы
|
||||
@@ -14,7 +14,7 @@ title: Архитектура
|
||||
- Открывать наружу только публичный API модулей.
|
||||
- Не допускать циклических зависимостей.
|
||||
|
||||
## Слои
|
||||
## Слои (FSD)
|
||||
|
||||
- **app** — инициализация приложения, роутинг, конфигурации, глобальные провайдеры.
|
||||
- **screens** — экраны и их композиция.
|
||||
@@ -24,6 +24,17 @@ title: Архитектура
|
||||
- **entities** — бизнес-сущности и их модель.
|
||||
- **shared** — переиспользуемая инфраструктура, утилиты и базовые UI‑компоненты.
|
||||
|
||||
## Модули (FSD)
|
||||
|
||||
- Модуль — это отдельная папка в слоях `screens`, `layouts`, `widgets`, `features`, `entities`, которая реализует один сценарий/блок. В корне модуля лежит главный файл (`*.screen.tsx`, `*.layout.tsx`, `*.widget.tsx`, `*.feature.tsx`, `*.entity.tsx`) и публичный API (`index.ts`).
|
||||
- Внутри модуля используются подпапки (по необходимости):
|
||||
- `ui/` — дочерние UI‑компоненты модуля.
|
||||
- `model/` — состояние и бизнес‑логика модуля.
|
||||
- `styles/` — локальные стили модуля.
|
||||
- `helpers/` — локальные хелперы.
|
||||
- `lib/` — утилиты модуля.
|
||||
- `api/` — API‑вызовы модуля.
|
||||
|
||||
## Правила зависимостей
|
||||
|
||||
- Допустимые импорты идут сверху вниз: `app → screens → layouts → widgets → features → entities → shared`.
|
||||
|
||||
Reference in New Issue
Block a user