책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 네트워크 프로그래밍
· ISBN : 9788989975922
· 쪽수 : 528쪽
· 출판일 : 2008-10-22
목차
1부. 워밍업: 코드 변경 원리를 이해하라
1장. 소프트웨어 변경
소프트웨어를 수정하는 네 가지 이유
위험한 변경
2장. 효과적인 피드백 활용
단위테스트란?
상위단계 테스트
테스트 덮개
레거시 코드 변경 알고리즘
3장. 감지와 분리
협력자 속이기
4장. 봉합 모델
엄청난 양의 테스트
봉합
봉합의 종류
5장. 레거시 코드를 위한 도구
자동화된 리팩토링 도구
모조 객체
단위테스트 하니스
일반적인 단위테스트 하니스
2부. 본격적인 소프트웨어 변경: 코드 이렇게 고치자!
6장. 고칠 건 많고 시간은 없고...
발아 메소드
발아 클래스
포장 메소드
포장 클래스
요약
7장. 코드 하나 바꾸는 데 왜 이리 오래 걸리지?
상황 이해
시차
의존관계 깨기
요약
8장. 특징, 어떻게 추가할까?
테스트 주도 개발
비교를 통한 프로그래밍
요약
9장. 뚝딱! 테스트 하니스에 클래스 제대로 넣기
성가신 매개변수의 경우
숨은 의존관계인 경우
생성 블랍인 경우
성가신 전역 의존관계인 경우
끔찍한 인클루드 의존관계인 경우
양파 매개변수인 경우
별칭 붙은 매개변수인 경우
10장. 테스트 하니스에서 실행할 수 없는 메소드
숨은 메소드인 경우
도움이 되는 언어 특징인 경우
탐지 불가능한 부작용인 경우
11장. 코드 변경 과정에서 꼭 테스트해야 할 메소드
효과에 대한 추론
전방 추론
효과 전파
효과 추론을 위한 도구
효과 분석을 통한 학습
효과 스케치 단순화
12장. 클래스 의존관계, 반드시 없애야 할까?
차단 지점 기법
조임 지점을 이용한 설계 판단
조임 지점 함정
13장. 변경에 필요한 테스트는 뭐가 있을까?
특성화 테스트
클래스 특성화
목표 테스트
특성화 테스트 작성을 위한 휴리스틱
14장. 우릴 미치게 하는 라이브러리 의존관계
15장. 응용프로그램이 모두 API 호출로 이뤄졌다면?
16장. 코드를 잘 고치기엔 내가 모르는 2%
노트/스케치
표식 나열
스크래치 리팩토링
미사용 코드 삭제
17장. 뼈대가 약한 내 응용프로그램
시스템 스토리 말하기
벌거숭이 CRC
대화 심사
18장. 발목 잡는 테스트 코드
클래스 명명 관행
테스트 위치
19장. 객체지향이 아니라서 위험하다고? 그럼 이렇게 고쳐 봐!
쉬운 경우
어려운 경우
새로운 동작 추가
객체지향의 장점 이용
모두 객체지향적이다
20장. 내 프로젝트 군살 빼기
책임 찾기
다른 기법
더 나아가기
클래스 추출을 마친 후
21장. 동일 코드의 반복 수정, 그만할 수는 없을까?
첫 번째 단계
22장. '괴물 메소드'와의 혈투, 승부수는 적절한 테스트 루틴
여러 가지 괴물 메소드
자동화된 리팩토링 지원으로 괴물 메소드 공략
수동 리팩토링 도전
전략
23장. 위반사항을 점검하는 몇 가지 기법
하이퍼웨어 편집
단일 목적 편집
서명 보전
컴파일러 의존
24장. 무너진 코드의 하늘, 솟아날 구멍이 있을까?
3부. 반드시 넘어야 할 산: 코드 변경의 난맥, 의존관계를 극복하라!
25장. 의존관계를 깨는 기법
매개변수 적응
메소드 객체 탈출
정의 완료
전역 참조 캡슐화
정적 메소드 드러내기
호출 추출과 오버라이드
팩토리 메소드 추출과 오버라이드
게터 추출과 오버라이드
구현체 추출
인터페이스 추출
인스턴스 위임자 도입
정적 세터 도입
연결 대체
생성자 매개변수화
메소드 매개변수화
매개변수 원시화
특징 끌어올리기
의존관계 밀어내리기
함수를 함수포인터로 대체
전역 참조를 게터로 대체
메소드 하위클래스화와 오버라이드
인스턴스 변수 대체
템플릿 재정의
텍스트 재정의
부록. 리팩토링
메소드 추출