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

3.9 KiB
Raw Blame History

SLM Level 1

Статус: рабочий черновик. Документы в этой папке не являются спецификацией.

Level 1 задаёт основу SLM для лёгких проектов, которым нужна понятная организация без отдельной доменной архитектуры.

Место в уровнях SLM

Уровень Назначение
Level 1 Слои, зависимости, структурные сущности и жизненный цикл ресурсов
Level 2 Слой domains и доменные модули без строгой внутренней формы
Level 3 Строгие роли и границы сред выполнения внутри доменов

Повышение уровня может требовать рефакторинга, но базовые понятия Level 1 сохраняются.

Область Level 1

Level 1 описывает слои, модули, группы, сегменты, компоненты, публичный API, граф зависимостей и владение жизненным циклом ресурсов.

Level 1 не описывает домены, фабрики, порты, адаптеры, обязательный поток данных, монорепозитории, соглашения об именовании и файловый стайлгайд.

Появление самостоятельной доменной логики является сигналом рассмотреть Level 2.

Виды утверждений

  • Определение нормативно задаёт смысл архитектурного термина, но не получает код правила.
  • Правило задаёт блокирующий архитектурный инвариант и объявляется в каноническом реестре.
  • Рекомендация помогает принять решение, но не делает архитектуру невалидной.
  • Пример иллюстрирует модель и не задаёт обязательную структуру.

Нормативные определения находятся в терминологии. Канонический набор правил: правила SLM Level 1. Формат и требования к ним: Правила SLM.

Остальные документы Level 1 объясняют и иллюстрируют модель, но не владеют точными формулировками определений и правил.

Основная идея

Модуль является основной архитектурной единицей SLM. Слой задаёт роль и направление зависимостей. Группа помогает навигации, сегмент организует внутреннее содержимое, а компонент всегда принадлежит модулю.

Level 1 требует отдельную папку и единый публичный API модуля. Имена этих элементов, внутренняя файловая форма модулей, сегментов и компонентов определяются стайлгайдом проекта.

Карта черновика