Clean Code 라는 책을 읽었습니다.Robert C. Martin의 . 이 책에서는 작은 함수 작성, 이름 선택 등의 코드를 정리하는 많은 방법을 보았습니다. 필자가 읽은 깨끗한 코드에 관해 가장 흥미로운 책으로 보입니다. 그러나 오늘 상사는이 책을 읽은 후 코드를 작성하는 방식을 좋아하지 않았습니다.
그의 주장은
- 작은 함수를 작성하면 코드가 무엇을하는지보기 위해 각각의 작은 함수로 이동해야하기 때문에 고통 스럽다.
- 메인 루프가 300 줄 이상이더라도 모든 것을 메인 큰 루프에 넣으십시오. 읽기가 더 빠릅니다.
- 코드를 복제해야하는 경우 작은 함수 만 작성하십시오.
- 주석의 이름으로 함수를 작성하지 말고 복잡한 주석 코드 (3-4 행)를 위의 주석으로 작성하십시오. 마찬가지로 실패한 코드를 직접 수정할 수 있습니다
이것은 내가 읽은 모든 것에 위배됩니다. 일반적으로 코드는 어떻게 작성합니까? 하나의 주요 큰 루프, 작은 기능 없음?
내가 사용하는 언어는 주로 자바 스크립트입니다. 명확하게 명명 된 작은 모든 기능을 삭제하고 모든 것을 큰 루프에 넣었으므로 지금 읽기가 어렵습니다. 그러나 상사는 이것을 좋아합니다.
한 예는 다음과 같습니다.
// The way I would write it
if (isApplicationInProduction(headers)) {
phoneNumber = headers.resourceId;
} else {
phoneNumber = DEV_PHONE_NUMBER;
}
function isApplicationInProduction(headers) {
return _.has(headers, 'resourceId');
}
// The way he would write it
// Take the right resourceId if application is in production
phoneNumber = headers.resourceId ? headers.resourceId : DEV_PHONE_NUMBER;
예를 들어 읽은 책에서 주석은 작은 함수를 작성하고 업데이트되지 않은 주석 (주석이 아닌 코드를 수정)으로 이어지는 경우 쓸모가 없기 때문에 깨끗한 코드를 작성하지 못하는 것으로 간주됩니다. 그러나 내가하는 일은 주석을 삭제하고 주석 이름으로 함수를 작성하는 것입니다.
글쎄, 조언을하고 싶습니다. 깨끗한 코드를 작성하는 것이 어떤 방법 / 연습이 더 낫습니까?
isApplicationInProduction()
기능 이 없습니다 ! 테스트를 수행해야하며 코드가 프로덕션 환경과 다른 방식으로 작동하는 경우 테스트가 쓸모가 없습니다. 프로덕션 환경에서 의도적 으로 테스트되지 않은 코드를 발견하는 것과 같습니다 .