시스템을 이해하거나 유지보수하기 어렵게 만드는 모든 것
필수적인 복잡성/우연적인(accidental) 복잡성이 있음
우연적인 복잡성의 원인들
복잡성을 감지하는 방법
기술적인 연습들
소프트웨어 설계의 목표는 고객의 요구에 부응하고 개발자가 효율적인 비용으로 변경할 수 있는 제품을 구축하는 것
낮은 수준의 세부지식(클린코드 작성, 효과적은 프로그래밍 패러다임 사용, 설계원칙 준수) 없이는 고급 소프트웨어 설계자가 될 수 없음.
Clean Code
- 우연한(accidental) 복잡성이 거의 없는 코드
단순한 디자인의 4가지 요소
1. 모든 테스트 실행
HCD
- 사용자의 요구,행동,특성,고충,동기를 먼저 생각하는 디자인 철학
Discover -> Define -> Design -> Prototype & Test -> Plan & Implement
여기까지가 108쪽