주석을 달기 전에 먼저 나의 코드가 의도를 분명하게 표현하고 있는지 확인하자. 깔끔한 네이밍과 함수 호출을 통한 의도 표현이 완벽하다면 굳이 주석을 달지 않을 수 있다는 것 또한 명심하자.
저자는 해당 부분에서 코드로 의도를 충분히 표현하지 않았기 때문에 더러운 주석을 달게된다고 하고 있다.
if ((employee.flags & HOURLY_FLAG) && (employee.age > 65))
if (employee.isEligibleForFullBenefits())
두 가지 코드 중 어떤 것이 더 의도를 분명하게 나타내고 있나? 주석을 달지 않아도 의도를 분명하게 나타낼 수 있는 상황들을 생각해보자.
assertTrue(a.compareTo(a) == 0); // a == a
assertTrue(a.compareTo(a) != 0); // a != a
assertTrue(a.compareTo(b) == -1); // a < b
위와 같이 표준 라이브러리나 변경하지 못하는 코드에 속한다면 그 의미를 명료하게 밝혀주는 것은 괜찮은 주석이 될 수도 있다.