커플링 개념
- 결합: 모듈이 다른 모듈을 알고 의존하는 정도를 나타냅니다.
- 낮은 결합도: 한 모듈의 변경 사항이 다른 모듈에 미치는 영향이 적습니다.
- 높은 결합도: 한 모듈의 변경 사항이 여러 모듈에 영향을 미칠 수 있습니다.
응집력 개념
- 응집성: 모듈의 책임이 얼마나 잘 그룹화되어 있는지를 나타냅니다.
- 높은 응집력: 모듈은 관련 책임을 가지며 단일 작업 수행에 중점을 둡니다.
- 낮은 응집력: 책임의 연관성이 적습니다.
의사소통 접근법
메시징 커뮤니케이션
- 비동기 통신.
- 모듈은 메시지를 보내고 받습니다.
- 인터페이스를 통한 메시지 계약 정의
- 모듈 간의 분리를 촉진합니다.
- 모듈은 메시지 버스를 통해 통신합니다
- 도구: RabbitMQ, Kafka 등
전통적인 커뮤니케이션
- 모듈 간 기능을 호출합니다.
- 패키지 간 개체, 구조체, 특성 사용
- 한 모듈이 다른 모듈을 호출합니다.
- 네임스페이스, 패키지, 모듈 사용
관찰
- 완전한 디커플링을 보장하기는 어렵습니다
- 모듈 간에는 항상 어느 정도 종속성이 있습니다.
- 계약, 인터페이스, 메시징을 사용하더라도 어느 정도 종속성이 있습니다.
- 한 모듈과 다른 모듈 사이에 종속성이 있는 것은 정상입니다.
소스 코드:
- https://github.com/ortizdavid/golang-modular-software
위 내용은 결합과 응집의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!