주석
- 부적절한 정보
- 쓸모 없는 주석
- 중복된 주석
- 성의 없는 주석
- 주석 처리된 코드
환경
여러 단계로 빌드해야 한다
- 빌드는 간단히 한 단계로 끝나야 한다.
- 한 명령으로 전체를 체크아웃하여 빌드할 수 있어야 한다.
여러 단계로 테스트해야 한다
- 모든 단위 테스트는 한 명령으로 돌려야 한다.
- 그러한 방법이 빠르고 쉽고 명백하다.
함수
- 너무 많은 인수
- 출력 인수
- 플래그 인수
- 죽은 함수
위 4개는 최대한 피하는 것이 좋다.
자바
긴 import 목록을 피하고 와일드카드를 사용한다
import package.*;
- 긴 import 목록은 읽기에 부담스럽다.
- 사용하는 패키지를 간단히 명시하면 충분하다.
상수를 상속하지 않는다
- 상수를 상속 계층 맨 위에 숨겨 상속하면 안 된다. (끔찍한 광행)
- static import를 사용한다.
이름
서술적인 이름을 사용한다
- 소프트웨어 가독성의 90%는 이름이 결정한다.
- 그러므로 시간을 들여 현명한 이름을 선택하고 유효한 상태로 유지한다.
적절한 추상화 수준에서 이름을 선택한다
- 구현을 드러내는 이름은 피한다.
- 작업 대상 클래스나 함수가 위치하는 추상화 수준을 반영하는 이름을 선택한다.
명확한 이름
- 함수나 변수의 목적을 명확히 밝히는 이름을 선택한다.
- 길다는 단점을 서술성이 충분히 메꾼다.
긴 범위는 긴 이름을 사용한다
- 이름이 짧은 변수나 함수는 범위가 길어지면 의미를 잃는다.
- 이름 범위가 길수록 이름을 정확하고 길게 짓는다.
테스트
불충분한 테스트
- 테스트 케이스는 잠재적으로 깨질 만한 부분을 모두 테스트해야 한다.
- 테스트 케이스가 확인하지 않는 조건이나 검증하지 않는 계산이 있다면 잠재적 버그를 갖고 있는 것이다.
커버리지 도구를 사용한다
- 커버리지 도구는 테스트가 빠뜨리는 코드를 알려준다.
- 커버리지 도구를 사용하면 테스트가 불충분한 모듈, 클래스, 함수를 찾아준다.
사소한 테스트를 건너뛰면 안 된다
- 사소한 테스트가 제공하는 문서적 가치는 구현에 드는 비용을 넘어선다.
경계 조건을 테스트한다
- 경계 조건은 신경 써서 테스트해야 한다.
- 중앙 조건은 올바르게 짜놓고 경계 조건에서 실수하는 경우가 흔하다.
버그 주변은 철저히 테스트한다
- 버그는 서로 모이는 경향이 있다.
- 한 함수에서 버그를 발견했다면 그 함수를 철저히 테스트하는 것이 좋다.
테스트는 빨라야 한다
- 느린 테스트 케이스는 실행하지 않게 된다.
- 테스트 케이스가 빠르게 돌아갈 수 있도록 구현한다.
'Book > 클린코드' 카테고리의 다른 글
[클린코드] 17장 냄새와 휴리스틱 (일반) (1) | 2023.09.21 |
---|---|
[클린코드] 16장 SerialDate 리팩토링 (0) | 2023.09.21 |
[클린코드] 15장 JUnit 들여다보기 (0) | 2023.09.21 |
[클린코드] 14장 점진적인 개선 (0) | 2023.09.21 |
[클린코드] 13장 동시성 (0) | 2023.09.17 |