RSS DEV 커뮤니티

응집력은 당신이 생각하는 것이 아닙니다: 에버하르트 볼프에 대한 공식적인 답변

에버하드 울프의 글은 소프트웨어 아키텍처에서 응집도와 결합도를 정의하는 데 따르는 어려움을 강조합니다. 핵심 문제는 명확한 정의가 부족하여 주관적인 해석과 일관성 없는 조언으로 이어진다는 것입니다. 독립 변동 원칙(IVP)은 모듈 경계를 변경 드라이버 할당과 일치시키는 데 중점을 두는 보다 엄격한 접근 방식을 제공합니다. IVP는 동일한 변경 드라이버를 공유하는 요소는 동일한 모듈 내에 있어야 하며, 다른 드라이버를 가진 요소는 분리되어야 한다고 제안합니다. 이 글은 데이터 공유를 변동 의존성보다 우선시하는 일반적인 개념과 응집도와 결합도 사이의 인식된 대칭성을 비판합니다. 적절한 응집도는 결합도를 최소화하여 후자를 독립 변수가 아닌 증상으로 만든다고 주장합니다. 종종 응집도 위반으로 간주되는 코드 중복은 고객별 요구 사항과 같은 별개의 변경 드라이버를 충족하는 경우 적절할 수 있습니다. 소프트웨어 계층의 다른 수준에서 조직 원칙이 변경되어야 한다는 생각도 의문을 제기하며, 모든 세분성에서 IVP의 일관된 적용을 옹호합니다. 모듈의 크기는 함께 변동하는 도메인 지식의 진정으로 응집된 본질을 나타내는 경우 반드시 문제가 되는 것은 아닙니다. 요약은 IVP의 두 가지 공리인 분리와 통합을 강조하며, 동일한 변경 드라이버를 공유하는 요소는 함께 있어야 하고, 다른 변경 드라이버를 가진 요소는 분리되어야 한다고 말합니다.
favicon
dev.to
Cohesion Is Not What You Think: A Formal Response to Eberhard Wolff
Create attached notes ...