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

🔎 Введение

OVERVIEW-ORIENTED

feature-sliced-banner

FeatureSliced - это методология для проектирования frontend проектов. Она нацелена на разделение приложения согласно бизнес-логике и областям ответственности.

note

Методология не привязана к конкретному стеку и применима к любым фронтенд-проектам в целом.

Но текущая версия приводит примеры и проработана на базе связки JavaScript + React

Основы

schema-themed--scheme

Больше подробностей: "Концепции, Абстракции, Структура"

Мотивация

Обычно, подходы построения архитектуры фронтенда от проекта к проекту переизобретаются с нуля, пополняя тем самым "проектные знания"

Несмотря на то, что специфика фронтенд-проектов отличается не так значительно

При этом, неверно принятые решения зачастую приводят к проблемам масштабируемости проекта и команды.

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

Да, практик и паттернов много (SOLID, GRASP, DDD, ...)

Но для фронтенда крайне трудно найти устоявшиеся и конкретные подходы

Обзор

Методология призвана упростить и стандартизировать декомпозицию логики для больших и долгоживущих проектов.

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

info

Модуль - структурная единица проекта (файл / директория)

Явная бизнес-логика

Модули распределяются согласно скоупу влияния, бизнес-ответственности и техническому назначению

Благодаря этому архитектура стандартизируется и становится более простой для ознакомления

Адаптация к новым условиям

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

Благодаря этому под новые требования можно независимо модифицировать функциональность приложения без непредвиденных последствий

Техдолг и рефакторинг

Каждый модуль является независимым и самодостаточным

Благодаря этому можно переписать его с нуля без неожиданных сайд-эффектов

Масштабирование проекта и команды

Увеличение функциональности ведет к значительно меньшему усложнению проекта, т.к. вся логика распределена детерминированно и изолированно

Благодаря этому легко добавлять и онбордить новых людей в команду, а также расширять функциональность проекта

Контролируемое переиспользование логики

Каждый модуль имеет свои ограничения и рекоммендации на переиспользуемость согласно своему слою

Благодаря этому сохраняется баланс между соблюдением принципа DRY и возможности кастомизировать логику модуля без оверхедных переопределений

Что дальше?

🚀
Быстрый старт

Быстрое погружение в методологию

Основы • Быстрый старт • Мотивация
🎯
Гайды

Практические гайды и примеры по применению Feature Sliced

v1 • Легаси • Примеры
🧩
Концепции

Ключевые концепции для более эффективного понимания и применения

Декомпозиция • Изоляция • Public API
📚
Справочник

Справочная информация по ключевым понятиям

Глоссарий • Слои • Сегменты
🍰
О методологии

Философия методологии, ее цели и место в современном фронтенде

Миссия • Продвижение & Интеграция
💫
Сообщество

Комьюнити-ресурсы и дополнительные материалы

Awesome • Команда • Контрибьютинг
🛠
Примеры

Примеры проектов, спроектированных с Feature Sliced