4.3 KiB
SLM Level 1
Статус: рабочий черновик. Документы в этой папке не являются спецификацией.
Level 1 задаёт полную структурную основу SLM: слои, модули, доменные модули, публичные границы, граф зависимостей и владение жизненным циклом.
Место в уровнях SLM
| Уровень | Назначение |
|---|---|
| Level 1 | Слои, доменные модули, зависимости, структурные сущности и жизненный цикл ресурсов |
| Level 2 | Доменные пакеты, единый DomainApi, сборки и явные границы сред выполнения |
Повышение уровня может требовать рефакторинга, но базовые понятия Level 1 сохраняются.
Область Level 1
Level 1 описывает слои, доменные модули, группы, сегменты, компоненты, публичный API, граф зависимостей и владение жизненным циклом ресурсов.
Level 1 не задаёт обязательную внутреннюю форму доменного модуля, фабрики, порты, адаптеры, presets, обязательный поток данных, монорепозитории, соглашения об именовании и файловый стайлгайд.
Появление нескольких сред выполнения, устойчивого DomainApi или необходимости разделить бизнес-логику и технические сборки является сигналом рассмотреть Level 2.
Виды утверждений
- Определение нормативно задаёт смысл архитектурного термина, но не получает код правила.
- Правило задаёт блокирующий архитектурный инвариант и объявляется в каноническом реестре.
- Рекомендация помогает принять решение, но не делает архитектуру невалидной.
- Пример иллюстрирует модель и не задаёт обязательную структуру.
Нормативные определения находятся в терминологии. Канонический набор правил: правила SLM Level 1. Формат и требования к ним: Правила SLM.
Остальные документы Level 1 объясняют и иллюстрируют модель, но не владеют точными формулировками определений и правил.
Основная идея
Модуль является основной архитектурной единицей SLM. Слой задаёт роль и направление зависимостей. Доменный модуль представляет одну предметную область. Группа помогает навигации, сегмент организует внутреннее содержимое, а компонент всегда принадлежит модулю.
Level 1 требует отдельную папку и единый публичный API модуля. Имена этих элементов, внутренняя файловая форма модулей, сегментов и компонентов определяются стайлгайдом проекта.