일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 항해99
- 합병 정렬
- docker
- 상속
- junit 5
- raw 타입
- 함수형 인터페이스
- Study Halle
- annotation processor
- System.out
- 람다식
- 브릿지 메소드
- 바운디드 타입
- 제네릭 타입
- 자바스터디
- 로컬 클래스
- github api
- 제네릭 와일드 카드
- 프리미티브 타입
- throwable
- System.in
- auto.create.topics.enable
- 정렬
- 스파르타코딩클럽
- 자바할래
- System.err
- 접근지시자
- 익명 클래스
- yield
- Switch Expressions
Archives
- Today
- Total
코딩하는 털보
클린 코드, 4. 주석 본문
클린 코드, 4. 주석
코드만이 정확한 정보를 제공하는 유일한 출처다. 주석은 잘못된 정보를 전달하기 쉽다. 주석을 가능한 줄이도록 노력해야 한다.
- 주석은 나쁜 코드를 보완하지 못한다.
표현력이 풍부하고 깔끔하며 주석이 없는 코드가 복잡하고 어수선하며 주석이 많이 달린 코드보다 훨씬 좋다. - 코드로 의도를 표현하라.
주석으로 의도를 전달하기 보다는 코드로 표현하려 노력하자. - 좋은 주석
- 법적인 주석
저작권 정보 또는 소유권 정보, 계약조건 등 - 정보를 제공하는 주석
눈으로 보기엔 이해하기 힘든 메서드의 반환값을 설명해주는 주석, 그러나 함수 이름을 바꾸거나 다른 클래스를 만들어 코드를 이동하면 주석을 달지 않아도 되는 경우가 많다. - 의도를 설명하는 주석
어떤 구현 방법 결정에 대한 의도를 설명하는 주석 - 의미를 명료하게 밝히는 주석
ex)assertThat(a.compareTo(a) == 0); // a == a
그릇된 주석을 다는 것은 매우 위험하므로 다른 방법이 없을 때만 사용하고 정확히 달도록 주의해야 한다. - 결과를 경고하는 주석
특정 테스트 케이스 실행을 권고하거나(JUnit의 @ignore로 대체가능) 객체 생성에 있어서 주의점을 경고하는 등 - TODO 주석
구현이나 수정이 필요하지만 당장은 구현하기 어려운 업무를 기술한다. 없애도 괜찮을 때는 빨리 없애기. - 중요성을 강조하는 주석
대수롭게 여겨질 수 있는 코드의 중요성을 강조할때 사용한다. - 공개 API에서 Javadocs
- 법적인 주석
- 나쁜 주석
대다수의 주석- 주절거리는 주석
보는 사람이 이해하지 못하도록 제대로 소통하지 않는 주석 - 같은 이야기를 중복하는 주석
코드 내용만으로도 충분이 전달되는 내용을 한번 더 적은 주석 - 오해할 여지가 있는 주석
- 의무적으로 다는 주석
모든 멤버에 Javadocs를 추가하는 등 - 이력을 기록하는 주석
대신 소스 관리 시스템을 사용하자 - 있으나 마나 한 주석
너무나도 당연한 사실이나 정보를 주는 주석 - 함수나 변수로 표현할 수 있다면 주석을 달지 마라
- 위치를 표시하는 주석 (배너)
- 공로를 돌리거나 저자를 표시하는 주석
소스 관리 시스템을 사용하자 - 주석으로 처리한 코드
코드를 기억하기 위해 주석 처리한 코드, 소스 관리 시스템을 사용하자 - HTML 주석
- 전역 정보
주석 근처의 코드에 대해서만 기술하자. 통제도 할수 없고 유지보수도 힘들다. - 너무 많은 정보
흥미로운 역사나 관련없는 정보 - 모호한 관계
주석과 주석이 설명하는 코드 사이에 관계가 명백해야 한다. - 함수 헤더
- 비공개 코드에서 Javadocs
- 주절거리는 주석
Comments