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

50 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SLM Level 2
> Статус: рабочий черновик. Документы в этой папке не являются спецификацией.
Level 2 расширяет архитектурную базу Level 1 слоем `domains`. Он предназначен для проектов, в которых появились самостоятельные предметные области, но ещё не требуется строгая runtime-архитектура доменов.
## Наследование Level 1
Проект Level 2 соблюдает все определения и правила Level 1, если терминология Level 2 не задаёт расширение для нового слоя. Модуль, Group, сегмент, компонент, вложенный модуль, публичный API, граф зависимостей и владение жизненным циклом сохраняют смысл Level 1.
Канонический набор требований образуют два реестра:
- [правила Level 1](../rules/level-1.md);
- [дополнительные правила Level 2](../rules/level-2.md).
## Место в уровнях SLM
| Уровень | Назначение |
|---|---|
| Level 1 | Слои, зависимости, структурные сущности и жизненный цикл ресурсов |
| Level 2 | Доменный слой и доменные модули без строгой внутренней формы |
| Level 3 | Строгая внутренняя архитектура и runtime-границы доменов |
## Основная идея
Домен Level 2 является обычным SLM-модулем слоя `domains`. Он владеет одной связной предметной областью и может содержать всю необходимую ей реализацию, сегменты, компоненты и вложенные модули.
По умолчанию доменные модули размещаются непосредственно в слое. При большом количестве доменов слой также может содержать обычные навигационные Groups Level 1.
```text
src/domains/
├── auth/ # Доменный модуль
├── catalog/ # Доменный модуль
└── orders/ # Доменный модуль
```
## Область Level 2
Level 2 описывает роль слоя `domains`, границу доменного модуля, опциональную группировку и зависимости с участием нового слоя.
Level 2 не задаёт обязательные внутренние роли, каталоги или способ сборки доменного модуля. При появлении устойчивого business contract, нескольких execution contexts или сложного lifecycle следует рассмотреть [Level 3](/level-3/).
## Карта черновика
- [Терминология](./terminology.md)
- [Слои](./layers.md)
- [Домены](./domains.md)
- [Зависимости](./dependencies.md)
- [Проверка](./validation.md)