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:
48
DRAFT/level-2/validation.md
Normal file
48
DRAFT/level-2/validation.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Проверка Level 2
|
||||
|
||||
> Проверка расширенной модели слоёв и доменных границ.
|
||||
|
||||
Проект Level 2 выполняет все автоматические проверки и архитектурное ревью Level 1, используя нормативный порядок из шести слоёв.
|
||||
|
||||
## Сопоставление структуры
|
||||
|
||||
Конфигурация проверки проекта дополнительно определяет:
|
||||
|
||||
- физический путь слоя `domains`;
|
||||
- доменные модули непосредственно в слое и внутри Groups;
|
||||
- Groups слоя `domains`;
|
||||
- вложенные модули внутри доменных модулей.
|
||||
|
||||
Сопоставление путей не определяет предметный смысл. Оно позволяет проверить направление импортов, публичные API, циклы и доступ к вложенным модулям.
|
||||
|
||||
## Автоматическая проверка
|
||||
|
||||
Новых автоматических правил Level 2 не требуется. Структурные инварианты обеспечивают правила Level 1:
|
||||
|
||||
- порядок `app → compositions → domains → infra → ui → shared`;
|
||||
- импорт модулей только через публичные API;
|
||||
- отсутствие циклов в графе модулей;
|
||||
- отсутствие прямого доступа к вложенным модулям извне родителя;
|
||||
- отсутствие реализации и API у Groups.
|
||||
|
||||
## Архитектурное ревью
|
||||
|
||||
Дополнительное правило Level 2 проверяется на ревью. Нужно определить:
|
||||
|
||||
- представляет ли доменный модуль одну связную предметную область;
|
||||
- не разделена ли одна область на соседние доменные модули без самостоятельных владельцев;
|
||||
- не объединены ли в одном модуле несвязанные предметные области;
|
||||
- принадлежат ли модели, правила, сценарии и продуктовое состояние правильному домену;
|
||||
- остаётся ли Group только навигационной классификацией;
|
||||
- не размещены ли page-specific composition или самостоятельный технический сервис в `domains`.
|
||||
|
||||
## Связанные правила
|
||||
|
||||
- [`SLM-L2-DOMAIN-R001`](../rules/level-2.md#slm-l2-domain-r001)
|
||||
- [`SLM-L1-LAYER-R001`](../rules/level-1.md#slm-l1-layer-r001)
|
||||
- [`SLM-L1-LAYER-A002`](../rules/level-1.md#slm-l1-layer-a002)
|
||||
- [`SLM-L1-MODULE-R006`](../rules/level-1.md#slm-l1-module-r006)
|
||||
- [`SLM-L1-MODULE-R011`](../rules/level-1.md#slm-l1-module-r011)
|
||||
- [`SLM-L1-GROUP-R007`](../rules/level-1.md#slm-l1-group-r007)
|
||||
|
||||
Скрипт `draft-rules.js` проверяет целостность реестров и ссылок документации, но не определяет предметные границы приложения.
|
||||
Reference in New Issue
Block a user