Методология, помогающая определять разбиение модулей и связи между ними в приложении
- Обеспечивает понятность и явность архитектуры
- Обеспечивает контроль и изоляцию модулей
- Обеспечивает адаптивность под проекты
Методология помогает определять и стандартизировать разбиение модулей для больших и долгоживужих проектов.
В соответствие с ней, становится проще поддерживать и адаптировать изменяющуюся функциональность приложений.
См. также "Требования к архитектуре"
Стандартизация проектных знаний и решений, подкрепленная обширным опытом разработки.
Методология агрегирует лучшие практики и паттерны проектирования, с адаптацией под специфику разработки фронтенд-проектов (базируясь на разделении ответственности модулей)
Ведь практик и паттернов много (SOLID, GRASP, DDD), но устоявшиеся и конкретные подходы - крайне трудно найти
См. также "Мотивация создания методологии"
Public API, Isolation, ...
См. также "Абстракции методологии" и "Разбиение приложения"
WIP:Нейминг групп временный, и будет определен окончательно ближе к релизу MVP
└── src/ ├── app/ # Layer: Приложение | # ├── processes/ # Layer: Процессы (опционален) | ├── {some-process}/ # Slice: (н-р процесс CartPayment) | | ├── lib/ # Segment: Инфраструктурная-логика (хелперы) | | └── model/ # Segment: Бизнес-логика | ... # | # ├── pages/ # Layer: Страницы | ├── {some-page}/ # Slice: (н-р страница ProfilePage) | | ├── lib/ # Segment: Инфраструктурная-логика (хелперы) | | ├── model/ # Segment: Бизнес-логика | | └── ui/ # Segment: UI-логика | ... # | # ├── features/ # Layer: Фичи | ├── {some-feature}/ # Slice: (н-р фича AuthByPhone) | | ├── lib/ # Segment: Инфраструктурная-логика (хелперы) | | ├── model/ # Segment: Бизнес-логика | | └── ui/ # Segment: UI-логика | ... # | # ├── entities/ # Layer: Бизнес-сущности | ├── {some-entity}/ # Slice: (н-р сущность User) | | ├── lib/ # Segment: Инфраструктурная-логика (хелперы) | | ├── model/ # Segment: Бизнес-логика | | └── ui/ # Segment: UI-логика | ... # | # ├── shared/ # Layer: Переиспользуемые ресурсы | ├── api/ # Segment: Логика запросов к API | ├── lib/ # Segment: Инфраструктурная-логика (хелперы) | └── ui/ # Segment: UI-логика | ... # | # └── index.tsx/ #Не так много примеров проектов, которые полностью следуют правилам и принципам методологии, с сохранением преимуществ
Это связано с тем, что принципы вырисовывают очень идеальную архитектуру в теории, но сложную в реализации
На данный момент ведется активная работа над тем, чтобы соединить опыт многих разработчиков и выразить его в единой методологии, помогающей в реализации методологии в проектах
Get startedВведение в методологиюAboutО методологииMiscПрочие материалы- A feature based approach to React development
- Why React developers should modularize their applications?
- How to Organize Your React + Redux Codebase
- The Humanizing Work Guide to Splitting User Stories (aka "Vetical Slices")
- Доклад React SPB Meetup#1 - Feature Slices
- Feature Driven Architecture - Oleg Isonen
- Предыдущие ответвления методологии: feature-slices, feature-driven
DiscussionsДискуссии по методологииЗдесь обсуждаются и разбираются рельные примеры применения, вопросы, проблемы, идеи методологии
Все это в совокупности влияет на спецификацию, тулкит и в целом - на дальнейшее видение и развитие методологии
Т.е. все, чего пока нет в спецификации/тулките - так или иначе обсуждается в github-discussions
ContributingКак можно помочь?- ⭐ Оцените нас на GitHub, если у вас остались положительные впечатления
Или если по-вашему этот проект должен развиваться дальше
- 💫 Ознакомьтесь с нашим contributing гайдом
Важно любое содействие - от фидбека до участия в самой разработке!
- ⭐ Оцените нас на GitHub, если у вас остались положительные впечатления



