⭐ 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 프로토타입
프로토타입 = 간단하게 실험해보고 싹 삭제하는 것이라고 생각하기, 살릴 생각하지 말기
⭐ 백지상태에서 시작하기 어려울 때 해야할 것
- 산책
- 수다
- 잠
- 그래도 안 떠오르면 ‘프로토타입’하기 (나는 프로토타이핑 중이라 알리기)
⭐ 일정 예측 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 ….)
- 해제는 할당 역순으로