< 저자소개 >
* 윌리엄 웨이크(WILLIAM C. WAKE) 소프트웨어 컨설턴트, 코치, 트레이너로서 20여 년간 프로그래밍을 하고 있다. 그는 Capital One Financial, MCI/WorldCom, VTLS, Inc. 등에서 일했으며 다른 저서로는『Extreme Programming Explored』, 『Design Pattern in Java 2/E』가 있다. < 책소개 >
개발자를 위한 워크북. 이 책은 프로그램의 설계와 구현을 위한 리팩터링 기법에 관하여 다루고 있는 것으로 예제를 통해 종합적인 리팩터링 연습을 할 수 있도록 구성했다. 《리팩터링 워크북》에서는 냄새에 대한 단순한 지식만 전달하는 것이 아니라 냄새를 이해하게 해준다. 신중하게 구성된 일련의 연습문제를 풀다 보면 한층 더 깊이 있게 리팩터링을 이해하고 얼마간의 통찰력도 얻게 될 것이다. 저자가 사용하는 워크북 방법은 이 책에 있는 기술을 실습을 통해 확인하는 방법이다. < 목차 >
역자서문 서문
__1장 로드맵 ____개관 ____1부: 클래스 내부의 냄새 ____2부: 클래스 사이의 냄새 ____3부: 프로그램 리팩터링 ____도전사항에 대해 한 마디 [ 1부 클래스 내부의 냄새 ]
__2장 리팩터링 사이클 ____리팩터링이란 무엇인가? ____냄새는 문제다 ____리팩터링 사이클 ____언제 끝내야 할까? ____리팩터링 내부 ____도전사항 ____결론
__3장 측정할 수 있는 냄새 ____다루는 냄새 ____긴 메서드 ____거대한 클래스 ____긴 매개변수 리스트 ____추가 도전사항 ____결론
__쉬어가기1… 냄새와 리팩터링
__4장 이름 ____다루는 냄새 ____타입이 내장되어 있는 이름(헝가리안 표기법 포함) ____의사소통을 방해하는 이름 ____일관성 없는 이름
__5장 불필요한 복잡성 ____다루는 냄새 ____죽은 코드 ____추측성 일반화
__쉬어가기2… 역관계 리팩터링
__6장 중복 ____다루는 냄새 ____매직 넘버 ____중복된 코드 ____다른 인터페이스를 갖는 대체 클래스 ____도전사항
__7장 조건 로직 ____다루는 냄새 ____Null 체크 ____복잡한 Boolean 표현식 ____특별 케이스 ____가장된 상속(Switch 문)
__쉬어가기3 디자인 패턴
[ 2부 클래스 사이의 냄새 ]
__8장 데이터 ____다루는 냄새 ____기본 타입에 대한 강박관념 ____데이터 클래스 ____데이터 덩어리 ____임시 필드
__9장 상속 ____다루는 냄새 ____거부된 유산 ____부적절한 친밀(하위 클래스 형태) ____게으른 클래스
__10장 책임 ____다루는 냄새 ____기능에 대한 욕심 ____부적절한 친밀(일반적인 형태) ____메시지 체인 ____미들 맨 ____도전 문제
__11장 변경 수용하기 ____다루는 냄새 ____여러 원인에 의한 변경 ____산탄총 수술 ____평행 상속 계층구조 ____조합적 폭발
__12장 라이브러리 클래스 ____다루는 냄새 ____불충분한 라이브러리 클래스 ____도전 문제
__쉬어가기4… 리팩터링 생성하기 [ 3부 프로그램 리팩터링 ]
__13장 데이터베이스 예제
____Course.java ____Offering.java ____Schedule.java ____Report.java ____TestSchedule.java ____TestReport.java
__14장 간단한 게임
____개발 에피소드
__15장 목록
____도입 ____경로 1: Catalog.itemsMatching(query) ____경로 2: Query.matchesIn(catalog) ____경로 3: Process(catalog.data, query.data) ____결론
__16장 계획 짜기 게임 시뮬레이터 ____1부: 초기 코드 ______Table.java ______Background.java ______Card.java ____2부: 기능 재분배하기 ______중복, 선택 문제, 몇 가지 거친 조각 제거하기 ____3부: 코드 좀더 다듬기
__17장 향후 과제 ____책 ____권고 사항 ____시도해 볼 만한 것들 ____웹 사이트 [4부 부록]
__부록A… 연습문제 해답 __부록B… 자바 리팩터링 도구들 __부록C… 각 리팩터링의 역관계 리팩터링 __부록D… 주요 리팩터링 기법 참고 자료 찾아보기