DAY08

  • 오늘 읽은 범위 : 주석~p75

책에서 기억하고 싶은 내용을 써보세요

  • 나쁜코드에 주석을 달지 마라. 새로 짜라 -브라이언 W.커니핸, P.J. 플라우거
  • 오래되고 조잡한 주석은 거짓과 잘못된 정보를 퍼뜨려 해악을 미친다-주석은 코드처럼 관리를 제대로 하지 않기 때문에 나중에 코드가 변경되더라도 주석이 변경된 코드를 설명하리란 보장이 없다
  • 주석은 언제나 실패를 의미한다 -코드로 제대로 된 표현력을 발휘하지 못했기 때문에 우리는 주석을 단다.
  • 코드 품질이 나쁘다고 주석으로 설명하려 하지말고 코드를 깔끔하게 정리하라
  • 코드만으로 의도를 표현할 수 있다면 주석은 필요하지 않다
      // 직원에게 복지 혜택을 받을 자격이 있는지 검사한다.
      if ((employee.flags & HOURLY_FLAG) && (employee.age > 65)){
          ....
      }
      // 보다는 아래코드가 낫다
      if (employee.isEligibleForFullBenefits()){
          ....
      }
    
  • 때때로 주석이 필요한 경우가 생기긴 한다. 그 이유는:
    1. 법적인 주석 -회사에서 필요로 할때 (copyright 등)
    2. 정보를 제공하는 주석 -정규표현식같은 의미를 알기 힘든 정보의 주석
    3. 의도를 설명하는 주석
    4. 의미를 명료하게 밝히는 주석 -비교함수에서 어떤 해당 비교가 어떤 의미인지 설명하는 주석
    5. 결과를 경고하는 주석 -특정 테스트케이스를 꺼야하는 경우 등
    6. TODO 주석 -나중에 할 일을 주석으로 남기는 경우
    7. 중요성을 강조한 주석 -대수롭지 않게 넘어갈 수도 있는 부분에 대한 설명
    8. 공개 API의 Document

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  1. 이번 챕터에서는 주석에 대해서 알아보았다. 주석이란 참 간사해서 간결하지 않은 코드를 짜두고 그 뒷수습을 하기 참 좋은 기능이란 것을 이번장에서 알았다. 앞서 함수챕터에서 본 것처럼 이해하기 쉬운, 표현력이 풍부한 함수를 짜게 된다면 이런 나쁜 주석들이 필요가 없어질 것이라 느꼈다.
  2. 일을 하면서 굉장히 나쁜 예의 주석을 많이 보아왔다. 무언가를 설명하긴 하는데 관리가 제대로 되지 않아 현재 함수가 표현하고 있는 바와는 전혀 다른 주석이 달려있는가 하면, 무언가를 바꿨는데 이걸 바꾼 사람은 나열을 해두지만 왜 바꿨는지조차도 설명이 되어있지 않은 주석들도 너무나도 많이 봐왔다. 이런 주석들은 정말 없느니만 못했단것을 다시 한번 상기시켜 주었다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요

세줄 요약

  • 나쁜코드에 주석을 달지 마라. 새로 짜라
  • 표현력이 풍부한 코드가 자세하게 설명하는 주석보다 낫다
  • 때때로는 주석이 필요하긴 하지만 대부분의 경우에는 주석을 달지 말자!

주석