01 _ 객체, 설계
소프트웨어 모듈의 목적
- 실행 중에 제대로 동작한다.
- 변경을 위해 존재한다.
- 코드를 읽는 사람과 의사소통 할 수 있어야 한다. - 클린 소프트웨어: 애자일 원칙과 패턴, 그리고 실천방법 로버트 마틴
03 설계 개선하기
-
CQRS? 명령/질의 분리
sellTo()
-
코드 변경 용이
결합도와 자율성의 트레이드오프: 이건 결정하기 나름
시그니쳐가 변경된다면/.... 그것은 지옥
- 무생물도 살아있는 것처럼 대한다.
Bag
, TicketOffice
의 사례
미녀와 야수의 '주전자' 처럼
Encapsulation의 의미가 모호한 이유 감추면 다른 시그니쳐가 필요한데 사실 그렇게 코딩하는걸 못봄 모든게 getter & setter