Комментарии 5
Более интутивно понятный подход в сравниении с FSD
Работала и с проектами на Bulletproof React и с проектами на FSD. Проекты на FSD это кашекод в котором крайне трудно что то искать, в отличие от Bulletproof.
Видно, что автор этого подхода действительно его выстрадал, поработав с десятком проектов на лапшекоде Redux и разочаровавшись в FSD. И в целом сделал логичный следующий шаг, решив несколько проблем легаси-проектов.
Осталась всего сотня-две таких шагов и получится что-то нормальное - без прибивания гвоздями к Реакту, хукам, с нормальной файлогенерацией и автовалидацией, со встроенным эффективным feedback loop для LLM, со стабильными SSR / Widget режимами, без 2-3мб бандла на старте и т.п. И пройдя это все и протестируя на десятках проектов с разного размера командами, окажется что Flat Architecture (я предпочитаю называть "классическая файловая структура") не так уж и плоха, если скомпоновать в формализованные слои.
Но как шаг для борьбы с легаси в условном 2018 году выглядит отлично. Как старт для новых проектов - очень сомнительно.
Между UI State и Application State в некоторых более-менее сложных приложениях есть еще один уровень стейт менеджемента - это локализованные состояния для группы компонентов связанных между собой горизонтально и/или вертикально. Назвать ее можно как угодно: Widget State, Feature State. Это в основном композиции из нескольких компонентов которые все вместе образуют какой то цельный виджет или логику. Выносить состояния на уровень Application State размазывает локальную логику на глобал, а опустить на уровень UI State (useState, useReducer, Context) приводит к запутанным и не оптимизированным конструкциям типа prop drilling

Разбираем Bulletproof React: как не утонуть в хаосе собственного кода