요약
JacquesB가 쓴 것처럼 모든 사람이 Robert C. Martin의 "Clean Code"에 동의하는 것은 아닙니다.
예상 한 원칙을 "위반"한 것으로 밝혀진 오픈 소스 프로젝트에는 다른 원칙이있을 수 있습니다.
내 관점
Robert C. Martin의 원칙을 매우 준수하는 몇 가지 코드 기반을 감독합니다. 그러나 나는 그들이 옳다고 주장하지 않으며 , 단지 그들이 우리 를 위해 잘 작동한다고 말할 수 있습니다 -그리고 "우리"는 사실
- 제품의 범위와 아키텍처
- 목표 시장 / 고객 기대
- 제품 유지 기간,
- 우리가 사용하는 개발 방법론
- 우리 회사의 조직 구조
- 개발자의 습관, 의견 및 과거 경험.
기본적으로 이것은 각 팀 (회사, 부서 또는 오픈 소스 프로젝트)이 독특합니다. 그들은 다른 우선 순위와 다른 관점을 가질 것이며, 물론 다른 절충점을 만들 것입니다. 이러한 장단점과 결과 코드 스타일은 주로 맛의 문제이며 "잘못된"또는 "올바른"것으로 입증 될 수 없습니다. 팀은 "우리에게 효과가 있기 때문에이 작업을 수행합니다"또는 "우리에게 효과가 없기 때문에이를 변경해야합니다"라고만 말할 수 있습니다.
즉, 수년에 걸쳐 큰 코드베이스를 성공적으로 유지할 수 있으려면 각 팀이 위에 주어진 측면에 적합하다고 생각되는 코드 규칙 세트에 동의해야합니다. 이는 Robert C. Martin의 관행, 다른 저자의 관행 채택 또는 자신의 발명을 의미 할 수 있습니다. 공식적으로 기록하거나 "예를 들어"문서화하는 것을 의미 할 수 있습니다. 그러나 그들은 존재해야합니다.
예
"긴 메소드에서 여러 개인 메소드로 코드를 분할"하는 방법을 고려하십시오.
간단한 예로서, 공개 방법은 아마 단지 같은 private 메소드 호출로 구성 것이다 - 로버트 C. 마틴은이 스타일 추상화 한 수준으로 각 방법의 내용을 제한 할 수 있다고 verifyInput(...)
, loadDataFromHardDisk(...)
, transformDataToJson(...)
그리고 마지막으로 sendJsonToClient(...)
, 이러한 방법은 것 구현 세부 사항.
- 독자들은 높은 수준의 단계에 대한 빠른 개요를보고 읽고 싶은 세부 사항을 선택할 수 있기 때문에 이런 사람들이 있습니다.
- 모든 사람들이 모든 세부 사항을 알고 싶을 때 실행 흐름을 따라 가기 위해 클래스에서 뛰어야하기 때문에 어떤 사람들은 그것을 싫어합니다 (JacquesB가 복잡성을 추가하는 것에 대해 글을 쓸 때 이것이 가능성이 있음).
교훈은 : 의견을 가질 자격이 있기 때문에 모든 것이 옳습니다.