defensive programming을 지양
- 코드를 null 에러체크로 더럽히지 말자
- 잘못되었다는 단서, 팀원이나 단위 테스트를 못 믿는다는 말
- 단위 테스트를 지향하자, 내가 손으로 눈으로 한번 확인한게 있다면 코드수정이 있었을때 확인 안해도 된다.
모든 public은 위에, 모든 private는 아래에
- 중요도로 따지자면 public method가 중요하다.
- 중요한 부분은 위로, 상세한 부분은 앞으로
- 독자들은 제일 위에서부터 읽기 시작해서 지루해지면 그만 읽으면 된다.
객체지향의 가장 큰 이점은 의존성 관리 능력이다.
- 런타임 의존성은 그대로 놔둔재 소스코드의 의존성을 역전시킴, 본래의 의존성을 제거
- 본래의 의존성을 제거 → 다형성 인터페이스를 삽입 → 모듈 A는 인터페이스에 의존하고, 모듈 B 인터페이스로부터 파생된다.
소스코드의 의존성 레이어
- Application Patition: 대게의 어플리케이션 코드가 존재하는 곳
- Main Patition: 하위레벨(factory, config, main programming)
- 항상 모든 다이어그램에서 App 파티션과 Main 파티션 사이에 선을 그을수 있어야 한다.