Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP 89 Improve project structure #112

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Conversation

in19farkt
Copy link
Contributor

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

Что сделал:

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

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

@NikitaRzm
Copy link
Contributor

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

@in19farkt in19farkt changed the title WIP Improve project structure WIP 89 Improve project structure Apr 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants