Size: a a a

2020 October 27

V

Vetro in ☄️ effector
На features/slices потом надо будет перенести
источник

V

Vetro in ☄️ effector
А пока так 🤷‍♂️
источник

R

Rafael 🦠 in ☄️ effector
я вообще это еще и за фасадом скрываю
источник

R

Rafael 🦠 in ☄️ effector
контроллер

в methods - эффекты
в scenarios - описание взаимодействия (все это импортится в init как сайд эффекты)
в shared  - всякие хелперы и прочая хурма  (все то, что _помогает_ описывать бизнес логику, но ею не является)
в state - сторы
в index выносятся все сторы и эффекты и ивенты, но не все, естесвенно. Это фасад
источник

R

Rafael 🦠 in ☄️ effector
вот с раскрытыми папочками
источник

R

Rafael 🦠 in ☄️ effector
пол года жизни потратил на то, чтобы к этому прийти
источник

🦜

🦜 in ☄️ effector
Rafael 🦠
контроллер

в methods - эффекты
в scenarios - описание взаимодействия (все это импортится в init как сайд эффекты)
в shared  - всякие хелперы и прочая хурма  (все то, что _помогает_ описывать бизнес логику, но ею не является)
в state - сторы
в index выносятся все сторы и эффекты и ивенты, но не все, естесвенно. Это фасад
слишком много сущностей в добавок к юнитам
источник

R

Rafael 🦠 in ☄️ effector
вообще цель такого подхода одна - облегчить рефакторинг
источник

R

Rafael 🦠 in ☄️ effector
🦜
слишком много сущностей в добавок к юнитам
вот это меня как раз не волнует
источник

DS

Dmitriy Shuleshov in ☄️ effector
Rafael 🦠
контроллер

в methods - эффекты
в scenarios - описание взаимодействия (все это импортится в init как сайд эффекты)
в shared  - всякие хелперы и прочая хурма  (все то, что _помогает_ описывать бизнес логику, но ею не является)
в state - сторы
в index выносятся все сторы и эффекты и ивенты, но не все, естесвенно. Это фасад
Каждая директория обязательна?
источник

I

Iri 🛸 in ☄️ effector
везде одни и те же лица
источник

R

Rafael 🦠 in ☄️ effector
Dmitriy Shuleshov
Каждая директория обязательна?
для меня да
источник

R

Rafael 🦠 in ☄️ effector
Rafael 🦠
вот это меня как раз не волнует
моя цель - максимально снизить стоимость внесения изменений и цену будущего рефакторинга
источник

DS

Dmitriy Shuleshov in ☄️ effector
Rafael 🦠
моя цель - максимально снизить стоимость внесения изменений и цену будущего рефакторинга
Как помогает такой подход?
источник

V

Vetro in ☄️ effector
Хм, заменил на хендлеры - все равно не ререндерит
источник

R

Rafael 🦠 in ☄️ effector
Dmitriy Shuleshov
Как помогает такой подход?
во первых это легче поддерживать - мелкие изменения вообще не требуют изменения логики где-либо еще
улучшенный dx, который позволет хорошо работать автокомплиту - так в другом слое импорт идет из index.ts, то измнеения внутри контроллера вообще ничего больше не затрагивает + ты всегда знаешь какой публичный интерфейс твой контроллер предлагает

я уже не говорю о том, что вместо двух уровней доступа получается 3: приватные переменные, протектед (которые нельзя даватть использовать, но которые могут участвовать в тестировании) и публичные
источник

R

Rafael 🦠 in ☄️ effector
у меня проект поверх grpc-web и рефакторинг был отчасти это постоянные изменения в контрактах из-за чего приходилось кучу всего перелопачивать

и разграничение зон ответсвенности, инкапсуляция - это именно то, что позволило с каждой такой правкой вносить меньше изменений
источник

R

Rafael 🦠 in ☄️ effector
тот же подход через index и в api слое:
каждая папка - это название процедуры из контракта (кроме messages - там лежат конверторы)
источник

DS

Dmitriy Shuleshov in ☄️ effector
Rafael 🦠
контроллер

в methods - эффекты
в scenarios - описание взаимодействия (все это импортится в init как сайд эффекты)
в shared  - всякие хелперы и прочая хурма  (все то, что _помогает_ описывать бизнес логику, но ею не является)
в state - сторы
в index выносятся все сторы и эффекты и ивенты, но не все, естесвенно. Это фасад
С помощью какой конвенции защищаешься от циклических?
источник

R

Rafael 🦠 in ☄️ effector
каждая процедура это хендлер (адаптер), это типы и это index - где оборачивается все в эффект
источник