react-redux-starter-kit
react-redux-starter-kit copied to clipboard
WIP 89 Improve project structure
Пытаюсь навести порядок в структуре проекта. Сейчас это выглядит чуть лучше чем было, но всё еще далеко от идеала.
Что сделал:
- вынес в
src/configвсе что связано с конфигурацией проекта, там собираются в кучку модули, фичи, экстра депенденсис, формированиеIAppReduxState - немного рефакторнул
src/core. Убрал прямую зависимость отfeatures/modules, всё что нужно для запуска проекта забирается изsrc/config
Что недоделано и какие проблемы я вижу сейчас:
-
src/configиsrc/coreимеют циклическую зависимость на уровне типов, чтобы это разрулить нужна третья сторона, но не охото ее вводить. - Не понятно как контролировать соблюдение границ зависимостей между config, core, modules, features и services. По хорошему это должно выглядеть так:
core -> config
config -> modules | features | services
modules -> features | services
features -> services
Но нам в фичах и в модулях нужны типы, которые возможно сформировать только в core или config, например тип IAppReduxState или IDependencies. А еще у нас в core формируется IocContainer, который также может понадобиться в модулях/фичах/сервисах.
- нужно куда-то определить
FeatureConnectorиContainersProvider. Первый никак не зависит от фич и модулей, но зависит отIocContainer, который формируется вcore. У второго зависимости те же что и у первого, но к ним добавляются контейнеры из фич.
Принимается критика, пожелания, предложения :) Хз, возможно я вообще не в ту сторону пошел.
Есть соглашение именовать вещи, которые ты щас не знаешь куда вынести - inf (infrastructure), может твой конфиг это и есть инфраструктура, а может только то, что ты не знаешь куда вынести :) надо подумать над этим )