📚📚📚📚
2022.04.29
코드로 의도를 표현하라!
1. 법적인 주석
ex) 각 소스 파일 첫머리에 주석으로 들어가는 저작권 정보와 소유권 정보는 필요하고도 타당하다.
2. 정보를 제공하는 주석
때로는 기본적인 정보를 주석으로 제공하면 편리하다.
3. 의도를 설명하는 주석
4. 의미를 명료하게 밝히는 주석
때때로 모호한 인수나 반환값은 그 의미를 읽기 좋게 표현하면 이해하기 쉬워진다.
5. 결과를 경고하는 주석
6. TODO 주석
때로는 '앞으로 할 일'을 //TODO 주석으로 남겨두면 편하다.
7. 중요성을 강조하는 주석
🗑🗑🗑🗑🗑
주절거리는 주석, 의무적으로 다는 주석
같은 이야기를 중복하는 주석
오해할 여지가 있는 주석
이력을 기록하는 주석
있으나 마나 한 주석
너무 당연한 사실을 언급하며 새로운 정보를 제공하지 못하는 주석이다.
함수나 변수로 표현할 수 있다면 주석을 달지 마라
위치를 표시하는 주석
닫는 괄호에 다는 주석
공로를 돌리거나 저자를 표시하는 주석
주석으로 처리한 코드
HTML 주석
전역 정보
주석을 달아야 한다면 근처에 있는 코드만 기술하라. 코드 일부에 주석을 달면서 시스템의 전반적인 정보를 기술하지 마라.
너무 많은 정보
주석에다 흥미로운 역사나 관련 없는 정보를 장황하게 늘어놓지 마라.
모호한 관계
주석과 주석이 설명하는 코드는 둘 사이 관계가 명백해야한다.
함수 헤더
짧은 함수는 긴 설명이 필요 없다. 짧고 한 가지만 수행하며 이름을 잘 붙인 함수가 주석으로 헤더를 추가한 함수보다 훨씬 좋다.
아직 다른 분들과 협업을 진행한 경험이 없고, 웹페이지는 배포해봤지만, 특정서비스를 제공하는 프로그램을 정식 배포해본 적이 없어서 주석을 적을 기회는 별로 없었다. 굳이 따지자면.. 나쁜 주석 10. 주석으로 처리한 코드 정도 일 것이다. 코딩테스트 대비 문제를 풀다보니까 또 다른 경우의 수를 코드로 주석처리한 기억이 있다. 나쁜 코드라니...😭😭
협업을 하게 된다면 자신들만의 변수이름, 코딩스타일이 있어서 주석이 필요할 것 같지만, 최대한 모든 사람들이 읽으면서 의도를 잘 파악할 수 있는 코드를 짜봐야겠다. 기능을 위한 코드를 짜고 나서 변수,함수이름에 대한 리팩토링을 하는 시간을 가지는 건 필수라고 다시한번 느낀다.
코드로 의도를 표현하라!!
주석에 관한 내용은 아니지만, 책에서 제시한 예시에서 에라토스테네스의 체 관련 코드를 보니 PTSD가 왔다. 코딩테스트를 위해 문제들을 풀 때, 벽이라는 것을 처음 느끼게 해준 소수... 다시 한 번 예시코드 알고리즘 생성 과정을 복습하러 가야할 것 같다.