169 похожих чатов

Коллеги, подскажите, пожалуйста, где правильно располагать абстракцию с которой работают

компоненты или бизнес сервисы модуля, соблюдая инверсию зависимостей? Вот пример абстракции стейт менеджера. Пытаюсь разобраться, где архитектурно правильно ее хранить. https://github.com/evoytenkoapps/angular-best-practices/blob/master/examples/src/app/redux-store-ngxs/_services/facade/facade/animal.facade.ts

26 ответов

8 просмотров

Думаю ближе к самому классу/коду который хотите спрятать в фасаде

Евгений-Гений Автор вопроса
Юра 🪐
Думаю ближе к самому классу/коду который хотите сп...

соблюдая dip, нужно наоборот, нужно хранить ближе к тому кто "выше" чем стора

Евгений-Гений Автор вопроса
Юра 🪐
И кто выше тогда?

ну точно выше сервис с бизнес логикой. но у меня все логика в компоненте, и в моем случае, наверное компонент выше сторы.

Евгений Гений
ну точно выше сервис с бизнес логикой. но у меня в...

Я вот думаю нужно ли для "фасад" класса делать отдельный класс? Почему бы сервису не быть фасадом?

Евгений Гений
не понял?

Видел где-то на просторах интернета, что делали обычный сервис, и к нему еще фасад

Евгений Гений
ну точно выше сервис с бизнес логикой. но у меня в...

А если ты делаешь либу в которой ты експортишь стор. Не будешь создавать фасад где ближе, а наверное в самой либе

Я бы в корень фича модуля положил интерфейс/абстрактный класс, а в папке со стором - сделал реализацию фасада

Евгений-Гений Автор вопроса
Maxim Afanasev
Я бы в корень фича модуля положил интерфейс/абстра...

Во! тоесть примерно так? ./feature feature.module.ts feature.facade.ts ?

Maxim Afanasev
Я бы в корень фича модуля положил интерфейс/абстра...

А как решать проблему когда стор надо перенести в либу и шарить между апками, как получить доступ к интерфейсу который в фиче?

Евгений Гений
Во! тоесть примерно так? ./feature featur...

Кстати, если упарываться по solid, то надо еще interface segregation. Т.е. разделить интерфейс фасада на несколько и потом в фасаде реализовать их все. Но в Ангуляре слишком бойлерплейтно будет, т.к. нельзя по интерфейсам инжектить

Евгений-Гений Автор вопроса
Maxim Afanasev
Кстати, если упарываться по solid, то надо еще int...

это если в фасаде будет куча методов? например больше 10 ?

Евгений-Гений Автор вопроса
Юра 🪐
А как решать проблему когда стор надо перенести в ...

так по идее импорт и решит эту проблему.

Евгений Гений
так по идее импорт и решит эту проблему.

Это если в либе хранить все что связано с фичей

Юра 🪐
А как решать проблему когда стор надо перенести в ...

Я думаю, выделять стор в отдельную либу - не очень хорошая идея, лучше делить по фичам

Евгений-Гений Автор вопроса
Maxim Afanasev
Я думаю, выделять стор в отдельную либу - не очень...

у меня сейчас так, но вот недавно задался вопросом, что будет если вынести фичу в лейзи. как реализация сторы загрузится в стейт менеджер из лейзи, у меня сейчас возможно отключен лейзи, поэтому проблем нет. не подскажите из вашего опыта?

Евгений Гений
у меня сейчас так, но вот недавно задался вопросом...

Нормально работает, так и делаем, фича-стор в лейзи лежит

Евгений-Гений Автор вопроса
Maxim Afanasev
Нормально работает, так и делаем, фича-стор в лейз...

а у вас какой стейт менеджер или менеджеры?

Евгений Гений
это если в фасаде будет куча методов? например бол...

Тут дело не в количестве методов, а в количестве потребителей, т.е. по сути, компонентов. Если есть несколько независимых друг от друга модулей с компонентами, которые юзают один фасад - то можно каждому сделать свой интерфейс

Евгений-Гений Автор вопроса
Maxim Afanasev
Тут дело не в количестве методов, а в количестве п...

правильно я понимаю, что в этом случае, с точки зрения компонента, мы соблюдаем SRP. А с точки зрения фасада, зачем так делать? Не проще сделать N фасадов, под каждый компонент?

Евгений Гений
правильно я понимаю, что в этом случае, с точки зр...

Можно и так. Но, в принципе, реализация может быть одна, это не имеет значения. Важно, что интерфейсы поделены

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
I just installed it but how do I use it?
Talula
12
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Good afternoon, I just started learning php in conjunction with mysql. I am registering a system on a local Mamp server using phpMyAdmin. It seems to be stored normally in the...
ManGo
1
я не про это. какая еще есть инфа, или может появиться, что ее можно обозначить названием данной игры? зачем плодить хештеги, которые обозначают одну сущность? в данном случ...
Aiwan \ (•◡•) / _bot
5
Карта сайта