목차 일부
추천사
역자 서문
저자 서문
Chapter 1 <B><FONT color ... #0000
<B><FONT color ... #0000
세 가지 극단적인 기법 ... 25
추상화 ... 25
관심 사항의 분리 ... 25
가독성 ... 26
지침들에 대한 소개 ... 26
상황이 가장 중요하다 .....
더보기
목차 전체
추천사
역자 서문
저자 서문
Chapter 1 <B><FONT color ... #0000
<B><FONT color ... #0000
세 가지 극단적인 기법 ... 25
추상화 ... 25
관심 사항의 분리 ... 25
가독성 ... 26
지침들에 대한 소개 ... 26
상황이 가장 중요하다 ... 27
자신의 방식에 익숙해져라 ... 28
경험을 회고하라 ... 28
이 책의 상황 ... 30
Chapter 2 요구 사항 작성 ... 33
샘을 만나다 ... 34
개발자 팀 ... 34
샘의 요구 사항 ... 35
샘의 유스 케이스 ... 35
능력 ... 38
불필요한 개발 피하기 ... 38
이름의 의미가 무엇인가? ... 39
분할 대 결합 ... 42
클럼핑 ... 44
추상화 ... 45
단순한 문자열이 아니다 ... 47
상수 피하기 ... 50
프로토타입은 천 마디 말과 같다 ... 51
Chapter 3 일반적인 개발 이슈 ... 53
큰 그림 먼저 ... 54
인터페이스 계약 ... 55
검증 ... 57
코드로 말하라 ... 59
암시적인 방법과 명시적인 방법 ... 60
생략하지 말고 늘여 써라 ... 61
이해할 수 있는 이름을 사용하라 ... 62
코드의 철자를 검사하라 ... 63
주어진 환경에 맞도록 방식을 변경하라 ... 63
일관성이 곧 단순함이다 ... 64
<B><FONT color ... #0000
반복하지 마라 ... 67
가정과 결정에 대한 문서화 ... 67
이탈(Deviation)과 에러(Error) 처리하기 ... 68
고장 거리 ... 70
사용자 메시지 ... 72
어설션 ... 73
속도 ... 73
스프레드시트 수수께끼 ... 76
그래픽 예제 ... 77
담당자는 누구? ... 78
툴은 툴이다. 현명하게 사용하라 ... 80
IDE 다루기 ... 80
여러 가지 툴들 ... 80
Chapter 4 큰 그림 그리기 ... 83
나머지 이야기 ... 84
프로세스 ... 85
분석 정체 ... 86
설계 정체 ... 87
초기 설계 ... 88
크게 계획하고 지엽적으로 설계하라 ... 91
기능 테스팅 ... 93
프랙탈은 어디에든 있다 ... 95
테스트 피드백 ... 97
테스팅 품질 ... 98
보안 ... 98
Chapter 5 클래스 작성 ... 101
카테고리와 클래스 ... 102
서로 다른 클래스들 ... 102
서로 다른 객체들 ... 104
선언과 실행 ... 106
적절한 상속 ... 107
텍스트로 의사소통하라 ... 110
하나 이상의 객체 ... 111
Chapter 6 클래스 살펴보기 ... 115
클래스 격언을 따르라 ... 116
응집도 ... 116
결합 ... 117
객체의 세 가지 법칙 ... 118
용도에 따라서 클래스가 결정된다 ... 120
다형성 ... 123
상속을 사용하는 방법 ... 123
인터페이스를 사용하는 방법 ... 124
한 가지 간단한 일 ... 127
정책과 구현 ... 129
극단적인 이름 작성 ... 130
함수 오버로드 ... 130
Chapter 7 완성 단계 ... 133
프로젝트 진행 상황 ... 134
관심 사항의 분리 ... 137
대여 계약의 계산 ... 139
대여 계약의 생성 ... 142
보고서 출력하기 ... 143
변경 및 영향 ... 143
새로운 시스템으로 마이그레이션 ... 144
지금 사용되는 데이터 읽어 들이기 ... 144
잠재적인 문제점에 대한 예측 ... 146
고유함 결정하기 ... 147
Chapter 8 첫 번째 릴리즈 ... 149
백문이 불여일견 ... 150
회고시간 ... 150
시스템의 현재 상태 ... 152
연산 인터페이스 ... 152
추상 데이터 타입 ... 153
환경 구성 ... 154
테스팅 ... 154
테스트와 제품 ... 155
테스팅 유연성 ... 156
이탈과 에러 처리 ... 157
에러와 이탈 알리기 ... 157
이탈 규약들 ... 157
파일을 임포트할 때 발생하는 에러들 ... 159
간단한 <B><FONT color ... #0000
분할과 결합 ... 159
<B><FONT color ... #0000
첫 번째 릴리즈 반복 ... 160
때때로 이론과 실제는 일치하지 않는다 ... 161
의도하지 않은 결합 ... 161
완전한 것은 아무 것도 없다 ... 161
언제나 예외는 있다 ... 162
약간의 오해 ... 163
그 밖의 클래스들 ... 164
Chapter 9 연관과 상태 ... 167
샘의 새로운 요구 사항 ... 168
담당자 결정 ... 169
담당 클래스 ... 169
연관 클래스 ... 170
객체의 상태 ... 171
상태 다이어그램 ... 172
이진 상태의 표현 ... 173
두 가지 이상의 상태 ... 173
가능한 모든 경우를 확인하라 ... 175
Chapter 10 인터페이스와 적응 ... 177
카탈로그 검색 유스 케이스 ... 178
인터페이스 설계 ... 180
CD란 무엇인가? ... 181
약간 성급한 걱정 ... 182
인터페이스 개발 ... 184
인터페이스 테스팅 ... 185
인터페이스 분할 ... 186
작동하는 기능 ... 187
한계 설정 ... 188
공통적인 코드 ... 189
Chapter 11 우편번호와 인터페이스 ... 191
적응 ... 192
책임 전가 ... 196
작성하지 않은 코드 ... 198
애스펙트 지향 프로그래밍 ... 199
많든 적든, 그게 그거 ... 200
간접 지정 ... 201
로깅 ... 204
패러다임 불일치 ... 206
Chapter 12 보고서 추가 ... 207
멋진 보고서 ... 208
과유불급(過猶不及) ... 208
다시 보는 스프레드시트 수수께끼 ... 209
변경이 발생하다 ... 211
내보내기 ... 214
Chapter 13 송장, 신용카드, 할인 ... 217
다음 단계 ... 218
장애 처리 ... 220
테스트 계획 수립 ... 222
고객의 언어 ... 223
보안과 개인정보 보호 ... 227
보안 ... 227
개인정보 보호 ... 227
Chapter 14 샘이 매장을 확장하다 ... 229
두 번째 가게 ... 230
새로운 개발 ... 233
인터페이스 계약 ... 233
찬 공기가 들어오지 못하도록 하라 ... 234
세 번째 가게 ... 235
통화 융통성 ... 235
언어 융통성 ... 238
샘과 작별 ... 239
일반화 ... 240
Chapter 15 프린트 서버 예제 ... 241
소개 ... 242
시스템 ... 242
Message 클래스 ... 244
구체적인 메시지 ... 245
메시지 처리 ... 246
환경 ... 249
예제 메시지 ... 249
테스트 ... 251
로깅 ... 252
추가적인 분할 ... 253
에필로그 ... 256
Chapter 16 스팸 방지 예제 ... 257
상황 ... 258
환경 ... 258
SMTP ... 259
상태 다이어그램 ... 261
스팸 검사 ... 263
ReceivingMailServer 클래스 ... 264
Response 클래스 ... 267
프로세스 메서드 ... 268
MailDTO 클래스 ... 269
명령 처리 ... 271
다른 방법 ... 272
ReceivedMailExaminer ... 273
또 다른 인터페이스 ... 274
다른 방식의 책임 부여 ... 274
MailReport ... 275
MailExaminers 인터페이스 ... 275
효율을 위한 고려 사항 ... 277
관심 사항의 분리 ... 278
전체 흐름 ... 279
에필로그 ... 282
부록 A 지침과 원칙들 ... 283
부록 B 소스 코드 ... 294
더보기 닫기