Size: a a a

AngularPiter - русскоговорящее сообщество

2020 June 09

D

Danil in AngularPiter - русскоговорящее сообщество
У меня в коде похлеще вещи есть которые напоминают реальную магию )
источник

K

Katerina in AngularPiter - русскоговорящее сообщество
Danil
Везде есть плюсы и есть минусы, понятный и минимальный код вещи редко совместисые)

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

D

Danil in AngularPiter - русскоговорящее сообщество
Katerina
тут вопрос не минимального, а поддерживаемого легко
Мне кажется тут вопрос как договориться) кидайте монетку)
источник

AP

Andrey Podkovyrov in AngularPiter - русскоговорящее сообщество
натыкался кстати где-то на статью, где все модальные окна в проекте выносили в отдельный сервис, который инжектил в себя matdialog. и вызывали из других мест и сервисов мол openLoginDialog(), openConfirmDialog(), безе передачи самих компонентов, все были в одном месте
источник

AP

Andrey Podkovyrov in AngularPiter - русскоговорящее сообщество
и так кажется будет всем понятно что если это модальное окно, надо идти в ModalService условный
источник

D

Danil in AngularPiter - русскоговорящее сообщество
У нас в одном проекте так и было, плюс сервис управлял разными катомными модалками которые имели разный стили и хостились в app
источник

AI

Andrei 💅💅💅 Iashchak... in AngularPiter - русскоговорящее сообщество
Andrey Podkovyrov
и так кажется будет всем понятно что если это модальное окно, надо идти в ModalService условный
так ток разрастается модуль в старых ангулярах)
источник

D

Danil in AngularPiter - русскоговорящее сообщество
Andrei 💅💅💅 Iashchak
так ток разрастается модуль в старых ангулярах)
Это в каких?
источник

AP

Andrey Podkovyrov in AngularPiter - русскоговорящее сообщество
можно как-то по типам раздробить попробовать)
источник

D

Danil in AngularPiter - русскоговорящее сообщество
У нас на 4 так было
источник

AI

Andrei 💅💅💅 Iashchak... in AngularPiter - русскоговорящее сообщество
Danil
Это в каких?
до ленивых компонентов всмысле)
источник

AP

Andrey Podkovyrov in AngularPiter - русскоговорящее сообщество
в итоге, получается, на вопрос, может ли сервис взаимодействовать с Ui, ответ - может?)
источник

K

Katerina in AngularPiter - русскоговорящее сообщество
Andrey Podkovyrov
натыкался кстати где-то на статью, где все модальные окна в проекте выносили в отдельный сервис, который инжектил в себя matdialog. и вызывали из других мест и сервисов мол openLoginDialog(), openConfirmDialog(), безе передачи самих компонентов, все были в одном месте
какая разница, передаешь ты туда компонент или нет? типа если не передаешь, бог не видит грех?))
источник

AP

Andrey Podkovyrov in AngularPiter - русскоговорящее сообщество
Katerina
какая разница, передаешь ты туда компонент или нет? типа если не передаешь, бог не видит грех?))
я и не вижу разницы) и сделал бы так, как ты предлагаешь. просто размышляю, чтобы убедиться, что так делать можно)
источник

D

Danil in AngularPiter - русскоговорящее сообщество
Andrey Podkovyrov
в итоге, получается, на вопрос, может ли сервис взаимодействовать с Ui, ответ - может?)
Может
источник

D

Danil in AngularPiter - русскоговорящее сообщество
Если захочешь и не такое можно
источник

D

Danil in AngularPiter - русскоговорящее сообщество
Лишь бы не побили потом )
источник

AP

Andrey Podkovyrov in AngularPiter - русскоговорящее сообщество
Danil
Если захочешь и не такое можно
это понятно, я в глобальном плане "может") не нарушая правил, канонов и тд
источник

K

Katerina in AngularPiter - русскоговорящее сообщество
Danil
Лишь бы не побили потом )
побили от того, что не могут объяснить, почему нельзя, и нет других аргументов?)
источник

АП

Александр Приходько ... in AngularPiter - русскоговорящее сообщество
Andrey Podkovyrov
натыкался кстати где-то на статью, где все модальные окна в проекте выносили в отдельный сервис, который инжектил в себя matdialog. и вызывали из других мест и сервисов мол openLoginDialog(), openConfirmDialog(), безе передачи самих компонентов, все были в одном месте
На первый взгляд выглядит хорошо. Но только на первый взгляд.
А если понадобится переиспользовать ConfirmDialog в другом проекте? Получится что нужно выковырять метод openConfirmDialog перенести его в другой проект, попутно туда скопировав кусок этого сервиса, отвечающего за инициализацию, потом окажется, что там еще был флажок isConfirmDialogOpened и где-то сбрасывался, а при переносе его забыли сбросить - так как это было в другом методе.
Итого, нарушили принцип единой ответственности ради якобы удобства поиска реализации, получили проблемы с переиспользованием.
На мой взгляд, правильнее было бы создать папочку /dialogs в которой для каждого такого диалога, сделать свой сервис - единая ответственность, все инкапсулировано в одном сервисе - переносится в другой проект легко, искать легко и предсказуемо, так как все сервисы у нас в папке /dialogs. Все каноны соблюдены и это доказано гибкостью на практике.
источник