Когда необходима тесная связь или это хорошо?
Из всех моих чтений и исследований по ОО-дизайну / шаблонам / принципам я обнаружил, что общее согласие заключается в том, что слабая связь (и высокая когезия) почти всегда является лучшей конструкцией. Я полностью согласен с моим прошлым опытом разработки программного обеспечения.
Но допустим, что какая-то конкретная компания по разработке программного обеспечения (в которой я не работаю) имеет сомнительно разработанное крупномасштабное программное обеспечение, которое взаимодействует с некоторым оборудованием. Модули (над которыми я никогда не работал) настолько тесно связаны и вызывают вызовы функций, которые позволяют управлять уровнями более 20 уровней. Границы классов никогда четко не определены, а варианты использования плохо продуманы. Хороший разработчик программного обеспечения (не я) поднял бы эти проблемы, но его отвергнут только более старшие разработчики, которые на самом деле не применяют методы разработки (такие как SOLID или TDD), потому что программное обеспечение работало в течение многих лет, используя "традиционную" методологию и уже поздно меняться. И самые большие жалобы от клиентов (которые я не знаю, кто они) относятся к качеству продукта.
Из-за вышеупомянутого нереального сценария (я никогда не был в стороне), я подумал о том, есть ли случаи, когда тесная связь предпочтительнее или даже требуется? В каких случаях разработчику необходимо пересекать границы модулей и обмениваться состояниями, увеличивать зависимость и снижать тестируемость? Какие примеры систем настолько сложны, что могут потребовать этого? Я не смог придумать хороший случай, поэтому надеюсь, что некоторые из более опытных мастеров могут мне помочь.
Благодарю. Опять же, я не знаю эту компанию.
1 ответ
Тесно связанная архитектура объединяет корпоративные приложения вокруг единой точки правды, которая часто является единой СУБД с пространственной поддержкой. Типы приложений, которые связаны между собой, включают в себя инженерное проектирование (CAD), управление записями объектов (GIS), управление активами, рабочий процесс, ERP, CRM, управление отключениями и другие корпоративные приложения.
Основным преимуществом тесно связанной архитектуры является то, что она обеспечивает быструю и эффективную обработку больших объемов данных, обеспечивает единую точку правды вместо нескольких, часто избыточных, источников данных и обеспечивает открытый доступ к данным во всей организации.
Тесно связанные архитектуры основываются на таких стандартах, как SQL, ODBC, JDBC и OLEDB, SQL/MM, а также Простая спецификация функций для SQL от OGC, чтобы обеспечить открытый и безопасный доступ к данным, включая геопространственные данные, во всей организации.,
Слабосвязанные веб-службы требуют существенных избыточностей в отличие от тесной связи между клиентами и службами, что сводит к минимуму избыточности.
Одна из проблем асинхронных слабосвязанных веб-служб заключается в том, что для некоторых бизнес-функций он может превышать свои ресурсы для серверов или системы очереди сообщений.
Слабосвязанные веб-службы могут быть переведены в режим жесткой связи, чтобы избежать перегрузок системы из-за ограниченных ресурсов.