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

2.6 KiB
Raw Blame History

Зависимости Level 1

Пояснение нормативной модели зависимостей Level 1.

Слои задают допустимое направление связей, а модули образуют граф зависимостей.

Что считается зависимостью

  • Обычный импорт, импорт типа и реэкспорт одинаково создают архитектурную зависимость.
  • Импорт между файлами одного модуля не пересекает модульную границу и не создаёт отдельный узел графа.
  • Импорт любого внутреннего файла, сегмента или компонента считается зависимостью ближайшего модуля-владельца.
  • Вложенный модуль является обычным самостоятельным узлом графа.
  • Группы, сегменты и компоненты не являются самостоятельными узлами графа.

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

Ресурс shared также не является модулем. Его прямой импорт участвует в проверке направления слоёв, но не нарушает требование о публичном API модуля.

Направление

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

Направление слоёв определено в Слоях.

Связанные правила

Публичный API

// Допустимо
import { Button } from '@/ui/button'

// Недопустимо
import { Button } from '@/ui/button/button'

Циклы

ui/modal → ui/button → ui/icon
ui/icon -/→ ui/modal