mirror of
https://github.com/gromlab-ru/slm-design.git
synced 2026-08-22 07:30:16 +03:00
61 lines
2.7 KiB
Markdown
61 lines
2.7 KiB
Markdown
|
|
---
|
|||
|
|
title: SLM Advanced
|
|||
|
|
status: draft
|
|||
|
|
normative: true
|
|||
|
|
overlay: advanced
|
|||
|
|
base: slm
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# SLM Advanced
|
|||
|
|
|
|||
|
|
`SLM Advanced` является независимым overlay непосредственно над [base SLM](../../index.md).
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
SLM Advanced = SLM + Advanced rules
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Отличия от SLM
|
|||
|
|
|
|||
|
|
| Область | Base SLM | SLM Advanced |
|
|||
|
|
|---|---|---|
|
|||
|
|
| Product ownership | Product logic принадлежит compositions | Устойчивая product responsibility может быть извлечена в domain |
|
|||
|
|
| Слои | `app`, `compositions`, `infra`, `ui`, `shared` | Добавляется `domains` |
|
|||
|
|
| Структура domain | Отсутствует | Свободная, внутренние роли выбирает команда |
|
|||
|
|
| Domain dependencies | Отсутствуют | Ацикличные imports через public API разрешены |
|
|||
|
|
| External integration | Composition использует infra | Domain может использовать infra напрямую |
|
|||
|
|
|
|||
|
|
## Расширение архитектурной модели
|
|||
|
|
|
|||
|
|
**SLM-ADV-ARCH-001 - ОБЯЗАН.** SLM Advanced должен расширять набор base-слоёв слоем `domains` для самостоятельных product responsibilities.
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
src/
|
|||
|
|
├── app/
|
|||
|
|
├── compositions/
|
|||
|
|
├── domains/
|
|||
|
|
├── infra/
|
|||
|
|
├── ui/
|
|||
|
|
└── shared/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**SLM-ADV-ARCH-002 - ОБЯЗАН.** Дополнительные dependency edges Advanced должны соответствовать следующему направлению:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
compositions -> domains
|
|||
|
|
domains -> domains | infra | ui | shared
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Base dependency direction для остальных слоёв сохраняется.
|
|||
|
|
|
|||
|
|
## Изменение product ownership
|
|||
|
|
|
|||
|
|
**SLM-ADV-CMP-001 - ОБЯЗАН.** Если product responsibility получила domain owner, Advanced заменяет для этой ответственности base-правило `SLM-CMP-001`: domain владеет собственной product logic, а composition владеет application flow и связывает public APIs.
|
|||
|
|
|
|||
|
|
Product logic без domain owner продолжает следовать base SLM и принадлежит минимальной composition.
|
|||
|
|
|
|||
|
|
**SLM-ADV-CMP-010 - МОЖЕТ.** Composition module может импортировать public API Advanced domains в дополнение к imports, разрешённым base-правилом `SLM-CMP-010`.
|
|||
|
|
|
|||
|
|
## Advanced Domain Specification
|
|||
|
|
|
|||
|
|
Полная Advanced-модель слоя описана в [Domains](./domains.md). Других mode-specific отличий текущий draft Advanced не вводит.
|