⭐ ETC principle: Easier to Change.

DRY - Don’t Repeat Yourself

  • ⭐ “지식” 이나 “의도”의 중복을 막으라는 것
  • 여러 팀간에 공유가 가능한 중앙 repository에 API들을 저장하라
  • ⭐ 커뮤니케이션을 많이 하라

비슷한 함수 금지

Don’t rely on the properties of things you can’t control.

  • 주민번호, 우편번호, 이메일 들은 모두 외부 환경에 의존하는 id값들이다
  • 우리가 관리할 수 있는 유니크한 ID 값이어야 함.
  • e.g. ‘LDAP은 유니크 하다’ 정책은 바뀔 수 있다… ‘사번은 입사 시마다 유니크하게 생성된다’ 정책도 그럼 바뀔 수도 있을 거라고 생각해야함. 내가 사번 따는 사람은 아니니

Tracer Bullets 예광탄 VS Prototype 프로토타입

프로토타입 = 간단하게 실험해보고 싹 삭제하는 것이라고 생각하기, 살릴 생각하지 말기

⭐ 백지상태에서 시작하기 어려울 때 해야할 것

  1. 산책
  2. 수다
  3. 그래도 안 떠오르면 ‘프로토타입’하기 (나는 프로토타이핑 중이라 알리기)

⭐ 일정 예측 Estimating

  • 예측의 큰 단위로 보자:
    • Days
    • Weeks
    • Months
    • 20+ Weeks *다시 생각해볼 것
  • 130 days → 4 Months
    • precision이 높을 수록, 서로 생각하는 range가 다름. 잘 빗나간다.

DBC (Design By Contract)

호출자와 함수 간의 ‘계약’

언어레벨로 구현될 수 도 안 될 수도 있음 (e.g. assertion)

  • preconditions → @pre
  • postconditions → @post
  • class invariant → @invariant

⭐ 책임지고 구역 내에서 리소스를 할당 → 해제하도록

  • 리소스는 무엇이든 될 수 있음 (e.g. file, transaction ….)
  • 해제는 할당 역순으로