feat: Добавить уровни сложности архитектуры

This commit is contained in:
2026-07-25 15:49:31 +03:00
parent 4fad7e712a
commit cfcff10c58
36 changed files with 1314 additions and 1526 deletions

View File

@@ -6,7 +6,7 @@ normative: true
# Слой UI
`ui` содержит reusable presentation modules без product scenario и domain ownership.
`ui` содержит reusable presentation modules без product scenario и product ownership.
## Примеры
@@ -23,26 +23,26 @@ ui/
## Правила
**SLM-UI-001 - ОБЯЗАН.** UI module должен быть применим без знания конкретного product domain.
**SLM-UI-001 - ОБЯЗАН.** UI module должен быть применим без product-specific knowledge.
**SLM-UI-002 - ЗАПРЕЩЕНО.** UI module не может импортировать `domains`, `compositions`, `app` или product-specific infra.
**SLM-UI-002 - ЗАПРЕЩЕНО.** UI module не может импортировать `compositions`, `app` или product-specific infra.
**SLM-UI-003 - МОЖЕТ.** UI module может импортировать public API других UI modules и `shared`.
**SLM-UI-004 - ЗАПРЕЩЕНО.** UI module не выбирает product data source, не вызывает domain scenario и не владеет cross-domain behavior.
**SLM-UI-004 - ЗАПРЕЩЕНО.** UI module не выбирает product data source, не вызывает product scenario и не владеет multi-module behavior.
**SLM-UI-005 - МОЖЕТ.** UI module может владеть локальным interaction state, необходимым только для собственной presentation mechanics.
**SLM-UI-006 - ОБЯЗАН.** Компонент с product semantics должен принадлежать framework surface domain или composition, а не `ui`.
**SLM-UI-006 - ОБЯЗАН.** Компонент с product semantics должен принадлежать владеющему product module, а не `ui`.
## Классификация
| Сущность | Владелец |
|---|---|
| `Button`, `Input`, `Modal` | `ui` |
| `LoginForm` одного auth domain | domain framework surface |
| Header с auth и navigation | `compositions` |
| `LoginForm` одной auth responsibility | Владеющий product module |
| Application header | `compositions` |
| Generic date picker | `ui` |
| Medication schedule | domain или composition согласно используемым domains |
| Medication schedule | Владеющий product module согласно ownership |
Универсальность определяется отсутствием product knowledge, а не количеством текущих consumers.