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

Народ, помогите, пожалуйста, разобраться как правильно делать инверсию зависимостей в

ангуляр. Я наконец разобрался что это такое и пытаюсь понять как ее правильно применять в ангуляре. Правильно я понимаю что компоненты, например smart , в котором находится бизнес логика - является самым высоким слоем. Следовательно если такой smart общается с redux через абстракцию, то данная абстракция должна лежать в той же папке/модуле что и данный компонент, верно? Сейчас я ложу данные абстракции в папке
module
_services - сервисы
facade - фасады
api - http сервисы

но я думаю насколько это правильно согласно DIP
https://github.com/evoytenkoapps/angular-best-practices#%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0

25 ответов

12 просмотров

в компоненте не должно быть бизнес логики, начнем с этого

Еще и такие вещи как редакс (ngrx) зачастую овервейт для небольших или даже средних проектов

Евгений-Гений Автор вопроса
xxtux Shvets
в компоненте не должно быть бизнес логики, начнем ...

а где она должна быть? и правильно я понимаю что абстракция описывающая доступ к данным должна лежать там?

Евгений Гений
а где она должна быть? и правильно я понимаю что а...

в идеале в частях, не связанных с фреймворком. Компонент это штучка просто для отображения данных, а логика лежит отдельно. В сервисе, да. Вообще пробежал по диагонали что у вас там написано, это скорее worst-practices 🥴 Возьмите Мартина лучше

Евгений Гений
а что за мартин? можно ссылку?

https://www.piter.com/product/chistyy-kod-sozdanie-analiz-i-refaktoring-biblioteka-programmista-45ccca

Евгений-Гений Автор вопроса
xxtux Shvets
https://www.piter.com/product/chistyy-kod-sozdanie...

так это ж не про ангуляр. а у вас есть пример реального проекта где бизнес логика в сервисах, и какую пользу она дает?

Евгений-Гений Автор вопроса
xxtux Shvets
в идеале в частях, не связанных с фреймворком. Ком...

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

Евгений Гений
делайте коммиты, буду улучшать, не вопрос

спс, как нибудь в другой раз 🤤 в чем смысл делать то, что другие уже 100 раз делали

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

компонент отвечает только за view не больше и не меньше. вся логика в сервисах. зачем тебе компонент на 300-500 строк кода?

Евгений-Гений Автор вопроса
xxtux Shvets
спс, как нибудь в другой раз 🤤 в чем смысл делать ...

дайте это 100 проектов, я свой их опытом доплню

Евгений-Гений Автор вопроса
Валентин
компонент отвечает только за view не больше и не м...

а какая разница где хранить это 500 строк кода, когда без них всеравно никуда?

Евгений-Гений Автор вопроса
Валентин
компонент отвечает только за view не больше и не м...

я пока не понимаю что дает вынесение этих 500 строк в другой сервис и сто пудова процентов 20 продублируется в компонент

Евгений Гений
я пока не понимаю что дает вынесение этих 500 стро...

Компонент нельзя внедрять в другой компонент, а сервис можно Логика в сервисе легко переиспользуется

Евгений Гений
а какая разница где хранить это 500 строк кода, ко...

ну вот представь, у тебя компонент на 900 строк кода, дебажить такие макароны то еще удовольствие. проще разбить это все на компонент которые только отрисовывает верстку и к этому компоненту еще 2-3 сервиса, у каждого из них будет своя ответственность. такое и тестами покрыть проще и читать легче, и тестами покрыть попроще

Евгений-Гений Автор вопроса
Maksym G
Компонент нельзя внедрять в другой компонент, а се...

тут. да. а если логика нужна только 1 раз?

Евгений Гений
тут. да. а если логика нужна только 1 раз?

А откуда ты это знаешь? Ванга есть в семье?)

Евгений Гений
тут. да. а если логика нужна только 1 раз?

ну и сделай небольшой сервис строчек на 50 и будет тебе счастье

Евгений-Гений Автор вопроса
Валентин
ну вот представь, у тебя компонент на 900 строк ко...

а если для компонента достаточно 50 или 100 строк логики, тоже в сервис?

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

на проекте одном где работал было правило "компонент недолжен быть больше 150 строк (цифра условная), если превышает то это повод задуматься о вынесении логики в сервис(-ы)"

Евгений-Гений Автор вопроса
Валентин
на проекте одном где работал было правило "компоне...

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

Евгений Гений
это понятно. но если мы придерживаемся правила что...

Можно выносить логику работы с данными (кандидаты на сервисы) в приватные методы, когда понадобится, приватный метод перенести как публичный в сервис и использовать в 2+ местах...это тоже норм компромис... Называется не прекращающимся рефакторингом (DDD), ну и в чистом коде такое можно встретить...

Евгений Гений
а какая разница где хранить это 500 строк кода, ко...

Уйййй За такие слова в подворотне пацаны могут побить 😅

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

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

а зачем этот вопрос для удаления из чата?
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
Карта сайта