책소개
이 도서는 “좋은 소프트웨어 설계는 단순하고, 이해하기 쉬워야 한다”는 관점에서 소프트웨어 설계와 프로그래밍에 관한 방법과 규칙을 설명한다. 이를 통해서, 소프트웨어 프로젝트 계획 수립과 소프트웨어 관련 의사를 결정하는 방법을 배울 수 있다.
사실 이 도서는 소프트웨어 개발을 다루지만 프로그램 코드는 거의 없다. 책에서 제안하는 원리들이 프로그래밍 언어와 상관없이 모든 프로젝트에 적용되어야 하기 때문이다. 특정 언어를 알아야만 프로그래밍 언어에 적용되는 내용을 이해할 수 있는 것은 아니다. 하지만 각 원리를 쉽게 이해할 수 있도록 이 책 전반에 걸쳐 실제사례와 유사한 내용을 사용했다. 무엇보다도 이 책은 여러분과 여러분의 소프트웨어에 도움이 될 것이며, 소프트웨어 개발 분야에 이성, 질서, 단순함을 실현시켜 줄 것이다.
목차
1장. 들어가며
__1.1 왜 단순화인가?
__1.2 소프트웨어 설계
2장 소프트웨어의 목적
__2.1 실제 애플리케이션
3장 소프트웨어의 미래
__3.1 소프트웨어 설계 방정식
__3.2 설계의 질
__3.3 예측할 수 없는 결과
4장 변경
__4.1 실제 프로그램에서의 변경
__4.2 결점 세 가지
__4.3 점진적 개발과 설계
5장 결함과 설계
__5.1 이 규칙이 깨진다면
__5.2 반복하지 마라
6장 단순함
__6.1 단순화의 법칙과 소프트웨어 설계 방정식
__6.2 단순함은 상대적이다
__6.3 얼마나 단순해야 하는가?
__6.4 일관성
__6.5 가독성
__6.6 단순화는 설계가 필요하다
7장 복잡성
__7.1 복잡성과 목적
__7.2 나쁜 기술
__7.3 복잡성과 잘못된 솔루션
__7.4 복잡한 문제들
__7.5 복잡성 다루기
__7.6 재작성
8장 테스트
부록 A 소프트웨어 설계 법칙
부록 B 사실, 법칙, 규칙, 정의