CleanCode

[CleanCode] 시스템

zamezzz 2023. 11. 14. 20:00

CleanCode - 시스템

 

이 장에서는 사용제작이 다르다는 사실을 명심하는 것부터 시작됩니다.
사용과 제작을 분리하는 메커니즘 하나가 의존성 주입(DI)입니다.
DI는 제어의 역전(IoC)기법을 의존성 관리에 적용한 메커니즘입니다.

IoC에서는 한 객체가 맡은 보조 책임을 새로운 객체에게 전적으로 떠넘깁니다. 

새로운 객체는 넘겨받은 책임만 맡으므로 단일책임원칙을 지키게됩니다.

호출하는 객체는 실제로 반환되는 객체의 유형을 제어하지 않습니다. 대신 의존성을 능동적으로 해결합니다.

확장
'처음부터 올바르게' 시스템을 만들 수 있다는 믿음은 미신이라고 합니다. (말이 안됩니다!)
그래서 우리는 오늘 주어진 사용자 스토리에 맞춰 시스템을 구현해야 합니다. 

그리고 내일은 새로운 스토리에 맞춰 시스템을 조정하고 확장해나가며 개발하면 됩니다. 

이것이 반복적이고 점진적인 애자일 방식의 핵심입니다.

마무리
시스템 역시 깨끗해야 합니다.
끗하지 못한 아키텍처는 도메인 논리를 흐리며 기민성을 떨어뜨립니다.
시스템을 설계하든 개별 모듈을 설계하든, 실제로 돌아가는 가장 단순한 수단을 사용해야 한다는 사실을 명심해야 합니다.

반응형

'CleanCode' 카테고리의 다른 글

[CleanCode] 동시성  (0) 2023.12.10
[CleanCode] 창발성  (1) 2023.12.05
[CleanCode] 클래스  (0) 2023.11.13
[CleanCode] 단위 테스트  (1) 2023.11.11
[CleanCode] 경계  (0) 2023.11.11