Паттерны
October 9, 2023
Feature Sliced архитектура web-приложения
Бизнес-ориентированный подход, суть которого заключается в строго регламентированном взаимодействии трех основных сущностей:
Структура:
Слой (layer)
- Каждый слой стандартизирован, но опционален
- Слои располагаются вертикально и обозначают зону ответственности
- Модули на одном слое взаимодействуют только с модулями на слоях ниже
- Слои выше:
- Слои ниже:
shared
entities
features
widgets
- Композиционный слой для соединения сущностей и фич в самостоятельные блоки (IssuesList, UserProfile).
pages
processes
app
Слайс (slices)
Разделяет код по предметной области группируя вместе логически связанные модули.
Слайсы не могут использовать другие слайсы на том же слое, что обеспечивает высокий уровень связности при низком уровне зацепления.
Сегменты (segments)
Это маленькие модули, главная задача которых разделить код внутри слайса по техническому назначению (UI, model, api, lib)
Итог
Плюсы
- Позволяет найти однозначное место для любого кода
- Легкая навигация по кодовой базе за счет стандартизации и единообразия
- Код расположен согласно области влияния (слой), предметной области (слайс) и техническому назначению (сегмент
- Контролируемое переиспользование логики
- Каждый компонент имеет свое назначение и предсказуемый список зависимостей. Благодаря этому сохраняется баланс между соблюдением принципа DRY и возможностью адаптировать модуль под разные цели
- Устойчивость к изменениям и рефакторингу
- Один модуль не может использовать другой модуль, расположенный на том же слое или на слоях выше, что позволяет изолированно модифицировать приложение под новые требования без непредвиденных последствий
- Ориентированность на потребности бизнеса и пользователей
- Разбиение приложения по бизнес-доменам помогает глубже понимать, структурировать и находить фичи проекта
- Существуют подходы для миграции на FSD
- Масштабирование
- Стандартизация
- Наличие документации
- ООП-синергия
Минусы
Подходит:
October 9, 2023, 22:47
0 views
0 reactions
0 replies
0 reposts