mirror of
https://github.com/gromlab-ru/slm-design.git
synced 2026-08-22 07:30:16 +03:00
feat: level-2 документация
This commit is contained in:
54
DRAFT/level-2/terminology.md
Normal file
54
DRAFT/level-2/terminology.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Терминология Level 2
|
||||
|
||||
> Нормативные определения рабочего черновика. Этот раздел не объявляет правила.
|
||||
|
||||
Level 2 наследует терминологию Level 1 и добавляет определения, необходимые слою `domains`. Структурные сущности Level 1 не меняют смысл.
|
||||
|
||||
## Нормативный порядок слоёв
|
||||
|
||||
Для Level 2 нормативным является полный порядок:
|
||||
|
||||
```text
|
||||
app → compositions → domains → infra → ui → shared
|
||||
```
|
||||
|
||||
Нижним считается любой слой справа от исходного. Промежуточный слой не является обязательным посредником.
|
||||
|
||||
## Слой `domains`
|
||||
|
||||
Слой предметных областей приложения. Он содержит доменные модули и Groups, которые классифицируют эти модули.
|
||||
|
||||
Код слоя выражает продуктовые понятия, правила, сценарии или продуктовое состояние, которые не принадлежат устройству одной конкретной страницы, маршрута или визуальной композиции.
|
||||
|
||||
## Доменная ответственность
|
||||
|
||||
Связная предметная область приложения, которая может включать собственные модели, правила, сценарии и продуктовое состояние. Наличие каждого из этих элементов не является обязательным.
|
||||
|
||||
Количество экранов, endpoint-ов, хуков или файлов само по себе не определяет границу доменной ответственности.
|
||||
|
||||
## Доменный модуль
|
||||
|
||||
Обычный SLM-модуль слоя `domains`, представляющий одну доменную ответственность. Его ближайшей внешней структурной границей является слой `domains` или Group этого слоя, а не другой модуль.
|
||||
|
||||
Доменный модуль подчиняется всем правилам модулей Level 1: имеет отдельную папку, одного владельца, единый публичный API, собственный узел графа зависимостей и определённый жизненный цикл ресурсов.
|
||||
|
||||
Доменный модуль может содержать корневые файлы, сегменты, компоненты и вложенные модули. Вложенный модуль внутри него остаётся обычным вложенным модулем и не становится самостоятельным доменным модулем.
|
||||
|
||||
## Group слоя `domains`
|
||||
|
||||
Обычная Group Level 1, которая классифицирует доменные модули по принадлежности к бизнес-приложению, продуктовой области или другому понятному проекту признаку.
|
||||
|
||||
Такая Group не является доменом, владельцем ответственности или узлом графа зависимостей. Она не задаёт отдельного направления импортов и не изолирует содержащиеся в ней модули от других Groups.
|
||||
|
||||
## Структурная модель
|
||||
|
||||
```text
|
||||
SLM root
|
||||
└── domains
|
||||
├── доменный модуль
|
||||
│ ├── сегменты
|
||||
│ └── вложенные модули
|
||||
└── доменный модуль
|
||||
```
|
||||
|
||||
Путь помогает определить структурную границу, но не доказывает корректность предметной декомпозиции. Решение о том, является ли ответственность самостоятельным доменом, требует понимания продукта.
|
||||
Reference in New Issue
Block a user