Низкий уровень привязок

Уровень привязок (или, для краткости, просто «привязка») является мерой взаимозависимости модулей, количества входных и выходных связей между ними. В простейших архитектурах модули обладают низким уровнем привязок, а, следовательно, в меньшей степени зависят друг от друга. Разумеется, полностью устранить привязки невозможно, иначе модули вообще не будут взаимодействовать!

Существуют разные виды взаимодействий между модулями – как прямые, так и косвенные. Модуль может вызывать функции других модулей или же его функции могут вызываться из других модулей. Модуль может использовать веб-службы или функции, публикуемые другим модулем. Он может использовать типы данных другого модуля или работать с общими данными (переменными, файлами и т. д.).

Хорошая архитектура программного продукта ограничивается абсолютным минимумом коммуникационных каналов. Они являются одной из определяющих характеристик архитектуры.

Это означало, что уровень привязок между отдельными составляющими системы был настолько высок, что «скелет» системы было невозможно построить без создания каждого отдельного компонента. Любое изменение в одном компоненте расходится кругами, вызывая изменения во многих зависимых компонентах. Компоненты кода выглядели бессмысленно в изоляции от других компонентов.

В результате низкоуровневое тестирование стало невозможным. Было невозможно не только написать модульные тесты уровня кода, но и интеграционные тесты уровня компонентов, потому что каждый компонент зависел практически от всех остальных компонентов системы. Конечно, тестирование никогда не пользовалось особенно высоким приоритетом в этой компании (у нас для него все равно не хватало времени), так что считалось, что «это не проблема». Не стоит и говорить, что продукт не отличался надежностью.

Примечание

Хорошая архитектура учитывает механизмы установления связи и количество (и природу) межкомпонентных соединений. Отдельные части системы должны быть способны к самостоятельному существованию. Жесткая привязка делает невозможным тестирование кода.

Related posts:

  1. Избыточные привязки

Подпишитесь на рассылку по почте:

Введите свой адрес почты, чтобы получать уведомления о новых статьях.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>