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

Ну вот есть например форма с сотней контролов, там много

зависимостей контролов друг от друга. В простом случае создается компонент, в нем одна форма и много valueChanges, но кода много и надо как то дробить. Что делаете дальше? Создаете сервис, туда сетаете форму, там начинаете следить за изменениями контролов или как?

22 ответов

8 просмотров

а в чем проблема? (производительность проседает / много запросов к беку)

делить на независимые части, компоненты, подформы, сервисы в том числе, все от логики зависит

Alexandr-Manyunin Автор вопроса
Юрий Безруков
а в чем проблема? (производительность проседает / ...

Проблема в сложности и организации кода. Когда все в одном компоненте, то легко отслеживать, один контекст, но много кода. Далее начинается дробление, растет сложность и комплексность. Поэтому спрашиваю кто как делает

Alexandr-Manyunin Автор вопроса
xxtux Shvets
делить на независимые части, компоненты, подформы,...

Я просто видел например что делают сервис для отдельного контрола, чтобы логику с ним изолировать, в этот сервис сетают форму, из нее достают например пять контролов, на них подписываются и меняют текущий контрол. Но по мне так это не очень практика, связность высокая.

Alexandr-Manyunin Автор вопроса
Oleg Safonov
Связность чего высокая?

сервисов друг с другом

Alexandr Manyunin
сервисов друг с другом

А сколько там сервисов? Я просто увидел про один сервис, откуда ещё?

Alexandr-Manyunin Автор вопроса
Oleg Safonov
А сколько там сервисов? Я просто увидел про один с...

Сервис делается для контрола, контролов несколько => несколько сервисов

Alexandr Manyunin
Сервис делается для контрола, контролов несколько ...

а, увидел. А как эти сервисы связаны то? каждый ж на контролы завязан

Alexandr-Manyunin Автор вопроса
Oleg Safonov
а, увидел. А как эти сервисы связаны то? каждый ж ...

Точнее не сервисы связаны ,а весь код. Получается один сервис контрола в себе знает про другие контролы, другой сервис про другие контролы. Все знают про другу друга и меняют друг друга и это сложно понимать и менять.

Alexandr-Manyunin Автор вопроса
Oleg Safonov
а, увидел. А как эти сервисы связаны то? каждый ж ...

Просто по мне форма это и есть удачная абстракция и не стоит ее делить, или стоит? И как? поэтому и спрашиваю кто как делает

Alexandr Manyunin
Точнее не сервисы связаны ,а весь код. Получается ...

С одной стороны - да. С другой - если сервис управляет контролом, который зависит от других контролов - с этим ничего не поделаешь, если нужно для блокировки кнопки прочитать условно два контрола - то их в любом случае придётся читать. Или генерить кучу абстракций сверху. А у вас уже есть готовый код и столкнулись со сложной поддержкой или в процессе написания только?

Alexandr-Manyunin Автор вопроса
Oleg Safonov
С одной стороны - да. С другой - если сервис управ...

Если люди только читают другие контролы то это в целом норм, но если вдруг кто начнет ещё и менять другие, такое только на код ревью ловится. Просто кажется что с реактивными формами можно работать проще и хотелось бы узнать чужие решения. В статьях в инете обычно 2 - 3 контрола и все просто)

Alexandr Manyunin
Если люди только читают другие контролы то это в ц...

Ещё тестами нужно покрывать всё, тогда не только не ревью отловится) В целом согласен, трудно найти примеры более менее сложных приложений

Alexandr-Manyunin Автор вопроса
Oleg Safonov
Ещё тестами нужно покрывать всё, тогда не только н...

потому что сложные приложения так или иначе обрастают своими костылями :)

Alexandr Manyunin
Согласен, но не у всех пишутся(

Для какой цели контрол читают другие контролы? (есть примеры?)

Alexandr-Manyunin Автор вопроса
Юрий Безруков
Для какой цели контрол читают другие контролы? (ес...

Подписывается на их valueChanges и следит за их изменениями,чтобы поменяться самому

Юрий Безруков
Для какой цели контрол читают другие контролы? (ес...

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

Oleg Safonov
например дизейбл контрола, в зависимости от значен...

Подписываемся на нужный контрол (от которого зависит наш статус) и в зависимости от него дизейблимся Вроде это можно оставить в компоненте, не переносят в сервис А если такого очень много, то на помощь приходят тесты Иначе никак...

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

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

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта