Сообщество RSS DEV

Связность — это не то, что вы думаете: формальный ответ Эберхарду Вольфу

Статья Эберхарда Вольфа освещает проблемы определения сплоченности и связанности в архитектуре программного обеспечения. Основная проблема заключается в отсутствии точных определений, что приводит к субъективным интерпретациям и противоречивым советам. Принцип независимых изменений (IVP) предлагает более строгий подход, подчеркивая соответствие границ модулей назначению драйверов изменений. IVP предполагает, что элементы, разделяющие одни и те же драйверы изменений, должны находиться в одном модуле, в то время как элементы с различными драйверами должны быть разделены. Статья критикует распространенные представления, такие как приоритет обмена данными над зависимостью от изменений, и предполагаемую симметрию между сплоченностью и связанностью. Утверждается, что правильная сплоченность минимизирует связанность, делая последнюю симптомом, а не независимой переменной. Дублирование кода, часто рассматриваемое как нарушение сплоченности, может быть уместным, когда оно служит различным драйверам изменений, таким как специфические требования заказчика. Также ставится под сомнение идея о том, что организационные принципы должны меняться на разных уровнях иерархии программного обеспечения, и отстаивается последовательное применение IVP на всех уровнях детализации. Размер модуля не обязательно является проблемой, если он представляет собой действительно целостную совокупность знаний предметной области, которые изменяются вместе. Резюме завершается выделением двух аксиом IVP: разделения и объединения, согласно которым элементы, разделяющие одни и те же драйверы изменений, должны быть вместе, а элементы с различными драйверами изменений должны быть разделены.
favicon
dev.to
Cohesion Is Not What You Think: A Formal Response to Eberhard Wolff
Create attached notes ...