도서명 | 자바로 배우는 리팩토링 입문 |
---|---|
저자 | 유키 히로시 |
출판사 | 길벗 |
ISBN | 9791160502855 (1160502854) |
쪽수 | 440 |
출간일 | 2017-10-31 |
사이즈 | 184 * 236 * 21 mm /837g |
목차 또는 책소개 | 이것만은 알고 시작하자, UML 0장 리팩토링이란 0.1 리팩토링이란 0.2 리팩토링과 악취 0.3 리팩토링 카탈로그 0.4 리팩토링 에센스 0.5 리팩토링 Q&A 0.6 연습 문제 0.7 연습 문제 해답 1장 매직 넘버를 기호 상수로 치환 _소스 코드에 100이라고 적힌 경우 1.1 리팩토링 1.1.1 매직 넘버를 기호 상수로 치환 1.2 예제 프로그램 1.2.1 리팩토링 전 1.2.2 리팩토링 실행 1.2.3 리팩토링 후 1.3 한 걸음 더 나아가기 1.3.1 분류 코드를 클래스로 치환하기 1.3.2 enum 1.3.3 기호 상수가 적합하지 않은 경우 1.3.4 바이트 코드에 내장된 상수에 주의하기 1.4 정리 1.5 연습 문제 1.6 연습 문제 해답 2장 제어 플래그 삭제 _제어 플래그 때문에 코드가 읽기 어려운 경우 2.1 리팩토링 2.1.1 제어 플래그 삭제 2.2 예제 프로그램(FindInt) 2.2.1 리팩토링 전 2.2.2 리팩토링 실행(break 사용) 2.2.3 리팩토링 실행(return 사용) 2.3 예제 프로그램(SimpleDatabase) 2.3.1 리팩토링 전 2.3.2 리팩토링 실행 2.4 한 걸음 더 나아가기 2.4.1 break나 return을 쓰면 가독성이 좋아지는 이유 2.4.2 인스턴스 필드로 만든 제어 플래그의 위험성 2.4.3 플래그명 2.4.4 boolean 이외의 플래그 2.4.5 정규 표현식 패키지 사용 2.5 정리 2.6 연습 문제 2.7 연습 문제 해답 3장 어서션 도입 _‘이렇게 될 것이다’라는 주석이 있는 경우 3.1 리팩토링 3.1.1 어서션 도입 3.2 예제 프로그램 3.2.1 리팩토링 전 3.2.2 리팩토링 실행 3.2.3 리팩토링 후 3.2.4 컴파일과 실행 3.3 어서션 동작 확인 3.4 한 걸음 더 나아가기 3.4.1 자바 어서션 문법 3.4.2 어서션은 에러 처리를 대신할 수 없음 3.4.3 자바 어서션은 클래스 라이브러리가 아님 3.4.4 어서션 완전 삭제 3.4.5 다른 언어 환경의 어서션 3.5 정리 3.6 연습 문제 3.7 연습 문제 해답 4장 널 객체 도입 _null 확인이 너무 많은 경우 4.1 리팩토링 4.1.1 널 객체 도입 4.2 예제 프로그램 4.2.1 리팩토링 전 4.2.2 리팩토링 실행 4.2.3 리팩토링 후 4.3 한 걸음 더 나아가기 4.3.1 팩토리 메서드 패턴 4.3.2 싱글톤 패턴 4.3.3 널 객체로 중첩 클래스 사용 4.3.4 null 확인은 나쁜가 4.3.5 패턴 중독에 빠지지 않기 4.3.6 상수와 널 객체 4.3.7 isNull 메서드는 필요한가 4.3.8 기존 클래스를 수정할 수 없다면 4.4 정리 4.5 연습 문제 4.6 연습 문제 해답 5장 메서드 추출 _코드가 너무 길어서 읽기 어려운 경우 5.1 리팩토링 5.1.1 메서드 추출 5.2 예제 프로그램 5.2.1 리팩토링 전 5.2.2 리팩토링 실행 5.2.3 리팩토링 후 5.3 한 걸음 더 나아가기 5.3.1 역 리팩토링 5.3.2 메서드 추출은 당연한가? 5.3.3 메서드가 길어지는 경우 5.4 정리 5.5 연습 문제 5.6 연습 문제 해답 6장 클래스 추출 _클래스의 책임이 너무 많은 경우 6.1 리팩토링 6.1.1 클래스 추출 6.2 예제 프로그램 6.2.1 리팩토링 전 6.2.2 리팩토링 실행 6.2.3 리팩토링 후 6.3 한 걸음 더 나아가기 6.3.1 양방향 링크는 피한다 6.3.2 기능 추가와 리팩토링 6.3.3 불변 인터페이스 6.3.4 역 리팩토링: 클래스 인라인화 6.4 정리 6.5 연습 문제 6.6 연습 문제 해답 7장 분류 코드를 클래스로 치환 _int로 객체를 구분하는 경우 7.1 리팩토링 7.1.1 분류 코드를 클래스로 치환 7.2 예제 프로그램 7.2.1 리팩토링 전 7.2.2 기본 타입을 사용한 분류 코드의 문제점 7.2.3 리팩토링 실행 7.2.4 리팩토링 후 7.3 한 걸음 더 나아가기 7.3.1 기본 타입을 사용한 분류 코드의 문제점 7.3.2 enum 7.4 정리 7.5 연습 문제 7.6 연습 문제 해답 8장 분류 코드를 하위 클래스로 치환 _분류 코드마다 동작이 다른 경우(1) 8.1 리팩토링 8.1.1 분류 코드를 하위 클래스로 치환 8.1.2 구조와 동작 8.2 예제 프로그램 8.2.1 리팩토링 전 8.2.2 리팩토링 실행 8.2.3 리팩토링 후 8.3 한 걸음 더 나아가기 8.3.1 switch 문과 instanceof 연산자가 풍기는 악취 8.3.2 객체 생성 switch 문 삭제 8.3.3 팩토리 메서드 여러 개 준비하기 8.3.4 어디까지 리팩토링해야 하나 8.4 정리 8.5 연습 문제 8.6 연습 문제 해답 9장 분류 코드를 상태/전략 패턴으로 치환 _ 분류 코드마다 동작이 다른 경우(2) 9.1 리팩토링 9.1.1 분류 코드를 상태/전략 패턴으로 치환 9.2 예제 프로그램 9.2.1 리팩토링 전 9.2.2 리팩토링 실행 9.2.3 리팩토링 후 9.3 코드 추가 수정 9.3.1 enum 사용 9.3.2 상태 의존 코드를 상태 객체로 이동 9.3.3 코드 추가 수정 9.4 한 걸음 더 나아가기 9.4.1 분류 코드를 치환하는 세 가지 방법 비교 9.4.2 상태 패턴과 전략 패턴의 차이 9.4.3 다형적 해결로 default 제거 9.5 정리 9.6 연습 문제 9.7 연습 문제 해답 10장 에러 코드를 예외로 치환 _에러 처리가 흩어져 있는 경우 10.1 리팩토링 10.1.1 에러 코드를 예외로 치환 10.2 예제 프로그램 10.2.1 리팩토링 전 10.2.2 리팩토링 실행 10.2.3 리팩토링 후 10.3 코드 추가 수정 10.3.1 분류 코드를 상태/전략 패턴으로 치환 10.4 한 걸음 더 나아가기 10.4.1 검사 예외와 비검사 예외 10.4.2 예외 계층 10.4.3 java.io.EOFException에 대해 10.4.4 비검사 예외와 사전 확인용 메서드 10.4.5 실패 원자성 10.5 정리 10.6 연습 문제 10.7 연습 문제 해답 11장 생성자를 팩토리 메서드로 치환 _클래스 이름이 new로 하드 코딩된 경우 11.1 리팩토링 11.1.1 생성자를 팩토리 메서드로 치환 11.2 예제 프로그램 11.2.1 리팩토링 전 11.2.2 리팩토링 실행 11.2.3 리팩토링 후 11.2.4 분류 코드를 하위 클래스로 치환 리팩토링 실행 11.2.5 리팩토링 후 11.3 한 걸음 더 나아가기 11.3.1 프로바이더 11.3.2 매개변수 문제 11.3.3 팩토리 메서드와 생성 메서드 11.4 정리 11.5 연습 문제 11.6 연습 문제 해답 12장 관측 데이터 복제 _모델과 뷰가 뒤섞여 있는 경우 12.1 리팩토링 12.1.1 관측 데이터 복제 12.2 예제 프로그램 12.2.1 리팩토링 전 12.2.2 리팩토링 실행 12.2.3 리팩토링 후 12.3 한 걸음 더 나아가기 12.3.1 이벤트에 포함된 정보 12.3.2 무엇을 이벤트 리스너로 할 것인가 12.3.3 무한 반복에 주의 12.3.4 다른 이벤트 리스너 추가하기 12.4 정리 12.5 연습 문제 12.6 연습 문제 해답 13장 상속을 위임으로 치환 _IS-A 관계가 아닌데 상속하고 있는 경우 13.1 상속과 위임 13.1.1 상속 13.1.2 위임 13.1.3 상속과 위임 비교 13.2 리팩토링 13.2.1 상속을 위임으로 치환 13.3 예제 프로그램 13.3.1 리팩토링 전 13.3.2 새로운 의문 13.3.3 리팩토링 실행 13.3.4 리팩토링 후 13.4 생성자 연쇄 13.5 한 걸음 더 나아가기 13.5.1 상속은 최후의 무기 13.5.2 리스코프 치환 원칙 13.5.3 IS-A 관계와 HAS-A 관계 13.6 정리 13.7 연습 문제 13.8 연습 문제 해답 14장 대리자 은폐 _위임 대상까지 노출되어 있는 경우 14.1 리팩토링 14.1.1 대리자 은폐 14.2 예제 프로그램 14.2.1 리팩토링 전 14.2.2 1회째 리팩토링 실행 14.2.3 1회째 리팩토링 후 14.2.4 2회째 리팩토링 실행 14.2.5 2회째 리팩토링 후 14.3 한 걸음 더 나아가기 14.3.1 ‘숨기기’의 중요성 14.3.2 다양한 은폐 14.3.3 중개자 제거 14.3.4 클래스 인라인화 14.4 정리 14.5 연습 문제 14.6 연습 문제 해답 15장 상속 구조 정리 _상속이 엉켜 있는 경우 15.1 리팩토링 15.1.1 상속 구조 정리 15.2 예제 프로그램 15.2.1 리팩토링 전 15.2.2 의문점 15.2.3 리팩토링 실행 15.2.4 리팩토링 후 15.3 한 걸음 더 나아가기 15.3.1 직교성 15.3.2 상속과 @Override 15.4 정리 15.5 연습 문제 15.6 연습 문제 해답 부록 부록 A 리팩토링 목록 부록 B JUnit 부록 C 참고 문헌과 웹 사이트 |
사용후기가 없습니다.
상품문의가 없습니다.