defensive programming을 지양

  • 코드를 null 에러체크로 더럽히지 말자
  • 잘못되었다는 단서, 팀원이나 단위 테스트를 못 믿는다는 말
  • 단위 테스트를 지향하자, 내가 손으로 눈으로 한번 확인한게 있다면 코드수정이 있었을때 확인 안해도 된다.

모든 public은 위에, 모든 private는 아래에

  • 중요도로 따지자면 public method가 중요하다.
  • 중요한 부분은 위로, 상세한 부분은 앞으로
  • 독자들은 제일 위에서부터 읽기 시작해서 지루해지면 그만 읽으면 된다.

객체지향의 가장 큰 이점은 의존성 관리 능력이다.

  • 런타임 의존성은 그대로 놔둔재 소스코드의 의존성을 역전시킴, 본래의 의존성을 제거
  • 본래의 의존성을 제거 다형성 인터페이스를 삽입 모듈 A는 인터페이스에 의존하고, 모듈 B 인터페이스로부터 파생된다.

소스코드의 의존성 레이어

  • Application Patition: 대게의 어플리케이션 코드가 존재하는 곳
  • Main Patition: 하위레벨(factory, config, main programming)
  • 항상 모든 다이어그램에서 App 파티션과 Main 파티션 사이에 선을 그을수 있어야 한다.