Clean Code that Works.

깔끔하고 이해하기 쉽운 소스를 만들기 위해 구입한 책.
리팩토링 중에서 자주 쓰이는 것들을 간단한 예제와 함께 잘 정리해 두었다.
아주 쉽게 읽을수 있었던 책.

주요 내용은

- 매직넘버를 심볼릭 정수로 치환하기 : 소스에 '100'이라고 쓰여져 있다면.
- 제어 플래그의 삭제 : 제어 플래그 때문에 코드를 읽기 힘들다면.
- assertion의 도입 : '이것이 성립될 것' 이라고 하는 주석이 있으면.
- NULL 오브젝트 도입 : Null 체크가 너무 많다면.
- 메소드의 추출 : 코드가 너무 길어 읽기 힘들다면.
- 클래스의 추출 : 클래스의 책임이 너무 많다면.
- 타입코드를 클래스로 치환하기 : 오브젝트 식별에 int가 사용되고 있다면.
- 타입코드를 서브클래스로 치환하기 : 타입코드마다 동작이 다르다면.
- 타입코드를 State/Strategy로 치환하기 : 타입코드마다 동작이 다르다면.
- 오류 코드를 예외로 치환하기 : 오류 처리가 어지럽게 흩어져 있다면.
- 생성자를 Factory Method로 치환하기 : 클래스명이 new로 하드코딩 되어 있다면.
- 관찰되는 데이터의 복제 : 모델과 뷰가 혼재되어 있다면.
- 상속을 위임으로 치환하기  : IS-A관계가 아님에도 불구하고 상속하고 있다면.
- 위임의 은폐 : 위임 클래스까지 보인다면.
- 상속의 분할 : 상속이 얽혀 있다면.

아.. 보면서 내가 짰던 프로그램을 생각해보니..
리팩토링 해야할 것들이 ... ㄷㄷㄷㄷ
주말엔 소스 리팩토링좀 하자 ;ㅁ ;