Башня Байткода
69 subscribers
26 photos
2 files
27 links
Авторские заметки об архитектуре ПО на основе реальной практики.

github: https://github.com/PHPTCloud
Download Telegram
#arch #fsd #note
Дизайн с нарезкой деталей - Feature-Sliced Design или FSD

❗️ Feature-Sliced Design (FSD) — это архитектурная методология для проектирования frontend-приложений. Проще говоря, это свод правил и соглашений по организации кода. Главная цель методологии — сделать проект понятным и структурированным, особенно в условиях регулярного изменения требований бизнеса.

Проект на FSD состоит из слоев (layers), каждый слой состоит из слайсов (slices) и каждый слайс состоит из сегментов (segments).

❗️ Слои

Слои стандартизированы во всех проектах и расположены вертикально. Модули на одном слое могут взаимодействовать лишь с модулями, находящимися на слоях строго ниже. На данный момент слоев семь (снизу вверх):

1️⃣ shared - переиспользуемый код, не имеющий отношения к специфике приложения/бизнеса.

2️⃣ entities - бизнес-сущности.

3️⃣ features - взаимодействия с пользователем, действия, которые несут бизнес-ценность для пользователя.

4️⃣ widgets - композиционный слой для соединения сущностей и фич в самостоятельные блоки.

5️⃣ pages - композиционный слой для сборки полноценных страниц из сущностей, фич и виджетов.

6️⃣ processes (процессы, устаревший слой) - сложные сценарии, покрывающие несколько страниц.

7️⃣ app - настройки, стили и провайдеры для всего приложения.

❗️ Слайсы

Затем есть слайсы, разделяющие код по предметной области. Они группируют логически связанные модули, что облегчает навигацию по кодовой базе. Слайсы не могут использовать другие слайсы на том же слое, что обеспечивает высокий уровень связности (cohesion) при низком уровне зацепления (coupling).

❗️ Сегменты

В свою очередь, каждый слайс состоит из сегментов. Это маленькие модули, главная задача которых — разделить код внутри слайса по техническому назначению.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2🤔2