첫째, 돌려보자
- 테스트 케이스를 훑어보면 모든 경우를 점검하지 않는다는 것을 알 수 있다.
- 코드 커버리지 분석 도구를 이용하여 단위 테스트가 실행하는 코드와 실행하지 않는 코드를 조사한다.
- 클래스를 철저히 이해하고 리팩터링하려면 훨씬 높은 테스트 커버리지가 필요하다. (현재는 50%)
둘째, 고쳐보자
1. 필요없는 주석은 제거
변경 이력은 1960년대에 나온 방식이므로 제거한다.
현재는 소스 코드 제어 도구를 사용한다.
2. Javadoc 주석
한 소스코드에 여러 언어를 사용하는 것은 좋지 않다. 주석 전부를 <pre>로 감싼다.
3. 상수 모음 클래스는 enum으로 관리
MonthConstatns 클래스는 달을 정의하는 static final 모음에 불과하므로 enum으로 정의한다.
그 외의 상수 모음으로 쓰이는 클래스는 enum으로 재정의한다.
4. 올바른 위치에 변수 선언
ACCREGATE_DAYS_TO_END_OF_PRECEDING_MONTH는 SpreadwsheetDate에서만 사용한다.
특정 구현에 의존하지 않는 변수는 사용되는 위치에 가깝게 옮긴다.
5. 접근 제한자
public일 필요가 없다면 private으로 변경한다.
'Book > 클린코드' 카테고리의 다른 글
[클린코드] 17장 냄새와 휴리스틱 (주석, 환경, 함수, 자바, 이름, 테스트) (0) | 2023.09.21 |
---|---|
[클린코드] 17장 냄새와 휴리스틱 (일반) (1) | 2023.09.21 |
[클린코드] 15장 JUnit 들여다보기 (0) | 2023.09.21 |
[클린코드] 14장 점진적인 개선 (0) | 2023.09.21 |
[클린코드] 13장 동시성 (0) | 2023.09.17 |