Перейти к содержанию

Правила SLM

Правило SLM задаёт один блокирующий архитектурный инвариант. Точные формулировки правил находятся только в едином реестре; архитектурные главы объясняют модель и ссылаются на соответствующие коды.

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

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

Определения собраны в терминологии. Определение может быть обязательным для толкования правил, но не получает отдельный код.

Код правила

text
SLM-{group}-{class}{number}
ЧастьЗначение
SLMПринадлежность архитектуре SLM
groupПредмет правила
classСпособ окончательной проверки: A или R
numberГлобально уникальный трёхзначный номер

Пример: SLM-MODULE-A004.

Способ проверки

Автоматические правила (A)

Всё требование можно однозначно проверить программно по структуре проекта, публичным путям и графу импортов. Нарушение блокирует автоматическую проверку.

Правила для ревью (R)

Для окончательного решения требуется понимание ответственности, владельца, потребителей или области жизни. Инструмент может найти подозрительный код, но не заменяет архитектурное решение.

Разделы правил

КодПредмет
LAYERРоль слоя и направление зависимостей
DOMAINВладение доменными сценариями, контрактами, внешними данными и ошибками
MODULEОтветственность, владение, публичная граница и внутренняя структура модуля
DEPENDENCYГраф зависимостей модулей
GROUPНавигационная группировка модулей
SEGMENTВнутренняя организация модуля
NESTED_MODULEДоступ к вложенному модулю
LIFECYCLEВладение долгоживущими ресурсами
ENVIRONMENTСовместимость публичных фасетов со средами выполнения

Раздел правила не создаёт одноимённую главу или дополнительный уровень архитектуры. Например, GROUP классифицирует правило о группировке, а сама группа остаётся необязательной частью слоя.

Требования к реестру

  • Одно правило защищает один инвариант.
  • Точная формулировка не повторяется в тематических документах.
  • Название кратко обозначает предмет, а описание полностью формулирует требование.
  • Рекомендации, обоснования и примеры не входят в формулировку правила.
  • Один инвариант не получает отдельные автоматическую и ручную копии.
  • Номер правила не обозначает важность и не переиспользуется после удаления.

Документация SLM Design