react-redux-starter-kit icon indicating copy to clipboard operation
react-redux-starter-kit copied to clipboard

WIP 89 Improve project structure

Open in19farkt opened this issue 6 years ago • 1 comments

Пытаюсь навести порядок в структуре проекта. Сейчас это выглядит чуть лучше чем было, но всё еще далеко от идеала.

Что сделал:

  • вынес в 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. У второго зависимости те же что и у первого, но к ним добавляются контейнеры из фич.

Принимается критика, пожелания, предложения :) Хз, возможно я вообще не в ту сторону пошел.

in19farkt avatar Apr 13 '19 09:04 in19farkt

Есть соглашение именовать вещи, которые ты щас не знаешь куда вынести - inf (infrastructure), может твой конфиг это и есть инфраструктура, а может только то, что ты не знаешь куда вынести :) надо подумать над этим )

NikitaRzm avatar Apr 14 '19 05:04 NikitaRzm