Перейти к основному содержимому

Глоссарий

Module#

Структурная единица проекта

Под модулем обычно подразумевается определенный файл или директория (абстракция в контексте структуры)

  • модуль авторизации
  • модуль страниц
  • модуль компонента в фиче
  • модуль экшенов в модели сущности
  • и т.д.

Layer#

Каждая из директорий, находящихся на самом верхнем уровне приложения.

Этот уровень определяет скоуп ответственности модулей, а также уровень опасности изменений

└── src/    ├── app/                    # Инициализирующая логика приложения    ├── processes/              # (Опц.) Процессы приложения, протекающие над страницами    ├── pages/                  # Страницы приложения    ├── features/               # Ключевая функциональность приложения    ├── entities/               # Бизнес-сущности    └── shared/                 # Переиспользуемые модули

Slice#

Каждый из элементов, находящихся на верхнем уровне слоёв

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

├── app/|   # Не имеет конкретных слайсов, |   # Т.к. там содержится мета-логика над проектом и его инициализации├── processes/|   # Слайсы для реализации процессов на страницах|   ├── payment|   ├── auth|   ├── quick-tour|   └── ...├── pages/|   # Слайсы для реализации страниц приложения|   # При этом, в силу специфики роутинга - могут вкладываться друг в друга|   ├── profile|   ├── sign-up|   ├── feed|   └── ...├── features/|   # Слайсы для реализации конкретной функциональности на страницах|   ├── auth-by-phone|   ├── inline-post|   └── ...├── entities/|   # Слайсы бизнес-сущностей для реализации более сложной БЛ|   ├── viewer|   ├── posts|   ├── i18n|   └── ...├── shared/|    # Не имеет конкретных слайсов|    # Представляет собой скорее набор общеиспользуемых сегментов, без привязки к БЛ

Segment#

Каждый из модулей, находящийся на верхнем уровне каждого слайса

Этот уровень определяет назначение модулей в коде и реализации, согласно классическим моделям проектирования

{layer}/    ├── {slice}/    |   ├── ui/                     # UI-логика (components, ui-widgets, ...)    |   ├── model/                  # Бизнес-логика (store, actions, effects, reducers, ...)    |   ├── lib/                    # Инфраструктурная логика (utils/helpers)    |   ├── config/                 # Конфигурация приложения (env-vars, ...)    |   └── api/                    # Логика запросов к API (api instances, requests, ...)
note

Поскольку не каждый из слоев в явном виде использует слайсы (app, shared)

  • Сегменты могут располагаться по своим правилам shared/{api, config}
  • Или не использоваться совсем app/{providers, styles}

См. также#