리팩토링에서 마틴 파울러는 다양한 “코드 냄새”를 거론하고 있다.
아래 소개하는 목록에서 마틴이 맡은 냄새에 내가 맡은 냄새를 추가했다.
또한 저자가 코드를 작성하면서 사용하는 기교와 휴리스틱도 포함한다.
주석
C1 : 부적절한 정보
- 다른 시스템에 (소스 코드 관리 시스템, 버그 추적, 이슈 추적) 저장할 정보는 주석으로 적절하지 못하다.
- 예를들어, 변경 이력은 장황한 날짜와 따분한 내용으로 소스 코드만 번잡하게 만든다.
- 일반적으로 작성자, 최종 수정일, SPR 번호 등과 같은 메타 정보만 주석으로 넣는다.
- 주석은 코드와 설계에 기술적인 설명을 부연하는 수단이다.
C2 : 쓸모 없는 주석
- 오래된 주석, 엉뚱한 주석, 잘못된 주석은 쓸모가 없다.
- 주석은 빨리 낡기 때문에 쓸모 없어질 주석은 아예 달지 않는 편이 가장 좋다.
C3 : 중복된 주석
- 코드만으로 충분한데 구구절절 설명하는 주석이 중복된 주석이다. 아래 예시를 보자
i++; // 1 증가
// 함수 서명만 달랑 기술하는 javadoc
/**
* @param sellRequest
* @return
* @throws ManagedComponentException
* **/
public SellResponse beginSellItem(SellRequest sellRequest)
throws ManagedComponentException {
}