Files
slm-design/DRAFT/level-2/terminology.md

4.3 KiB
Raw Blame History

Терминология Level 2

Нормативные определения рабочего черновика. Этот раздел не объявляет правила.

Level 2 наследует терминологию Level 1 и добавляет определения, необходимые слою domains. Структурные сущности Level 1 не меняют смысл.

Нормативный порядок слоёв

Для Level 2 нормативным является полный порядок:

app → compositions → domains → infra → ui → shared

Нижним считается любой слой справа от исходного. Промежуточный слой не является обязательным посредником.

Слой domains

Слой предметных областей приложения. Он содержит доменные модули и Groups, которые классифицируют эти модули.

Код слоя выражает продуктовые понятия, правила, сценарии или продуктовое состояние, которые не принадлежат устройству одной конкретной страницы, маршрута или визуальной композиции.

Доменная ответственность

Связная предметная область приложения, которая может включать собственные модели, правила, сценарии и продуктовое состояние. Наличие каждого из этих элементов не является обязательным.

Количество экранов, endpoint-ов, хуков или файлов само по себе не определяет границу доменной ответственности.

Доменный модуль

Обычный SLM-модуль слоя domains, представляющий одну доменную ответственность. Его ближайшей внешней структурной границей является слой domains или Group этого слоя, а не другой модуль.

Доменный модуль подчиняется всем правилам модулей Level 1: имеет отдельную папку, одного владельца, единый публичный API, собственный узел графа зависимостей и определённый жизненный цикл ресурсов.

Доменный модуль может содержать корневые файлы, сегменты, компоненты и вложенные модули. Вложенный модуль внутри него остаётся обычным вложенным модулем и не становится самостоятельным доменным модулем.

Group слоя domains

Обычная Group Level 1, которая классифицирует доменные модули по принадлежности к бизнес-приложению, продуктовой области или другому понятному проекту признаку.

Такая Group не является доменом, владельцем ответственности или узлом графа зависимостей. Она не задаёт отдельного направления импортов и не изолирует содержащиеся в ней модули от других Groups.

Структурная модель

SLM root
└── domains
    ├── доменный модуль
    │   ├── сегменты
    │   └── вложенные модули
    └── доменный модуль

Путь помогает определить структурную границу, но не доказывает корректность предметной декомпозиции. Решение о том, является ли ответственность самостоятельным доменом, требует понимания продукта.