<aside> 💡 나쁜 코드에 주석을 달지 마라. 새로 짜라.
</aside>
저자
<aside> 💡 주석은 기껏해야 필요악이다. 프로그래밍 언어 자체가 표현력이 풍부하다면, 아니 우리에게 프로그래밍 언어를 치밀하게 사용해 의도를 표현할 능력이 있다면, 주석은 거의 필요하지 않으리라. 아니, 전혀 필요하지 않으리라.
</aside>
<aside> 💡 우리는 코드로 의도를 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. 진심이다. 주석은 언제나 실패를 의미한다. 때때로 주석 없이는 자신을 표현할 방법을 찾지 못해 할 수 없이 주석을 사용한다.
</aside>
<aside> 💡 주석을 달 때마다 자신에게 표현력이 없다는 사실을 푸념해야 마땅하다.
</aside>
저자가 주석을 무시하는 이유를 다음과 같이 설명한다.
주석은 거짓말을 한다. 항상도 아니고 고의도 아니지만 너무 자주 거짓말을 한다. 코드는 변화하고 진화하는데 주석이 코드를 따라가지 못한다. 프로그래머들이 주석을 유지하고 보수하기란 현실적으로 불가능하니까.
<aside> 💡 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 진실은 한 곳에만 존재한다. 바로 코드다. 코드만이 자기가 하는 일을 진실되게 말한다.
</aside>
코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다.
// 직원에게 복지 혜택을 받을 자격이 있는지 검사
if ((employee.flogs & HOURLY_FLAG) && (employee.age > 65))
if (employee.isEligibleForFullBenefits())
위 예제와 같이 코드로 대다수 의도를 표현할 수 있다. 주석으로 달려는 설명을 함수로 만들어 표현해도 충분하다.