소개
-
존: 소프트웨어 설계에 관한 책을 쓴 두 저자, 로버트 "엉클 밥" 마틴과 존 아우스터하우트가 소프트웨어 설계 철학의 차이에 대해 논의함.
-
UB: 존의 책을 읽고 즐거웠으며, 몇 가지 의견 차이가 있지만 전반적으로 유익하다고 평가함.
전반적인 철학 비교
-
존: 소프트웨어 설계의 목표는 시스템을 이해하고 수정하기 쉽게 만드는 것임. 복잡성을 줄이는 것이 중요하며, 이는 개발자가 알아야 할 정보의 양을 줄이거나 필요한 정보를 더 명확하게 만드는 것을 의미함.
-
UB: 존의 접근 방식에 동의하며, 프로그래머가 코드를 읽고 이해하는 데 도움을 주는 것이 중요하다고 강조함.
메서드 길이
-
존: 메서드를 작게 나누는 것이 중요하지만, 너무 작게 나누면 인터페이스가 복잡해지고 얽힘이 발생할 수 있음.
-
UB: 작은 함수가 좋다고 생각하지만, 책에서 제시한 숫자적 한계는 절대적인 것이 아님. 메서드는 "한 가지 일"을 해야 한다고 주장함.
-
존: "한 가지 일" 규칙은 모호하며, 과도한 분해를 막을 유용한 가드레일이 없다고 비판함.
-
UB: 과도한 분해가 가능하다고 인정하며, 메서드가 너무 작아지면 얽힘이 발생할 수 있음을 인정함.
주석
-
존: _Clean Code_의 주석에 대한 접근 방식은 문서화가 부족하게 만들어 소프트웨어 개발 비용을 증가시킨다고 주장함.
-
UB: 주석은 필요악이며, 잘못된 주석이 많기 때문에 주석에 대해 비판적인 접근을 취함.
-
존: 주석은 중요한 정보를 제공하며, 코드만으로는 표현할 수 없는 정보를 보완한다고 주장함.
결론
- 두 저자는 모듈식 설계의 중요성에 동의하지만, 코드 분해의 정도와 주석의 필요성에 대해 의견 차이가 있음.
- _Clean Code_는 작은 메서드와 주석에 대한 비판적 접근을 강조하며, _APOSD_는 더 많은 주석의 사용을 권장함.