SerialDate 리팩터링
JCommon 라이브러리의 org.jfree.date 패키지 내에 있는 SerialDate 클래스를 탐험한다.
SerialDate : 날짜를 표현하는 자바 클래스. 시간대에 무관하게 날짜를 표현하기 위한 클래스다.
첫째, 돌려보자
테스트 케이스 점검
- 기존 테스트 케이스가 모든 경우를 점검하지 않음.
=> 코드 커버리지 분석 도구인 클로버를 이용해 조사한 결과, 실행 가능한 문장 중 약 50%만 단위 테스트가 실행됨
+테스트 케이스의 많은 코드가 주석으로 처리됨(실패한 테스트 케이스)
=> 독자적으로 단위 테스트 케이스 구현 -> 코드 커버리지 대략 92% 달성
=> 주석으로 뺀 코드 점검 => 통과해야 할 테스트들을 살리고, 테스트 케이스를 통과하도록 디버깅.
둘째, 고쳐보자
테스트 케이스를 실행해 가며 코드를 고쳐 보자.
- 코드 변경 이력 없애기 - 소스 코드 제어 도구를 사용하므로 불필요
- import문 줄이기
- Javadoc 주석 전부를
<pre>
로 감싸기 - 소스 코드에 보이는 형식을 Javadoc에 유지 - 클래스 이름 변경 - SerialDate의 근원인 serial number(일련번호) 용어는 정확하지 못하고, 구현을 암시하지만 실상은 추상 클래스임 => DayDate로 변경
- MonthConstants를 enum으로 정의하도록 수정 - MonthConstants 클래스는 static final 상수 모음에 불과하기 때문
- 직렬화 선언을 자동 제어하도록 serialVersionUID 변수 제거
- 불필요한 주석 제거
- 일부 클래스만 사용하는 변수 옮김
'독서일지 > 클린 코드' 카테고리의 다른 글
클린 코드 독서일지 - Day 38 (0) | 2023.12.13 |
---|---|
클린 코드 독서일지 - Day 37 (0) | 2023.12.13 |
클린 코드 독서일지 - Day 35 (0) | 2023.12.10 |
클린 코드 독서일지 - Day 34 (0) | 2023.12.10 |
클린 코드 독서일지 - Day 33 (0) | 2023.12.07 |