14장 점진적인 개선
어떻게 짰는가?
- 처음부터 구현한 코드가 아니다.
- 깨끗하고 우아한 프로그램을 한 방에 내놓으리라 기대하지 않는다
- 깨끗한 코드는 지저분한 코드를 정리한 후에 등장한다
처음 작성한 코드(255 ~ 261 참고)
- 인스턴스 변수 개수가 너무 많음
- “TILT” 와 같은 희한한 문자열
- HashSets, TreeSets, try-catch-catch 블록 등 지저분한 코드
1차 개선
- Boolean 인수를 지원하던 기존 코드를 String과 Integer 인수 유형 두 개를 추가하려고 보니 더욱 지저분해짐
- 그래서 코드 진행을 멈추고 코드 리팩토링을 하기로 결정
리팩토링
- String 인수와 Integer 인수를 추가하려고 보니, 주요 지점 세 곳에 코드를 추가해야 한다는 사실 파악
- 인수 유형에 해당하는 HashMap을 선택하기 위해 스키마 요소의 구문을 분석
- 명령행 인수에서 인수 유형을 분석해 진짜 유형으로 변환