aka DRY
책 ThePragmaticProgrammer에 소개된 ComputerProgramming에 관한 교훈 중 하나
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
OAOO(OnceAndOnlyOnce) 법칙과도 같은 이야기이다. 프로그래밍에 있어서 중복(duplication)은 관리를 어렵게 하며, knowledge를 분산시킨다.
How does duplication arise?
- imposed duplication : 알고있지만 선택의 여지가 없다. 주로 개발환경때문이다. 문서화도 일종의 중복.
- inadvertent duplication : 개발자도 미처 깨닫지 못하는 중복.
impatient duplication : 시간에 쫓기다 보니, 순간순간 땜빵형식으로 중복을 만든다. --> 결과적으로 더 많은 시간소모를 요구한다.
interdeveloper duplication : 개발자들 사이에 생기는 중복. --> 해결방안은 오로지 잦은 커뮤니케이션이다. See also ExtremeProgramming
DRY 하려면
CodeGenerator를 만든다.
SeeAlso TheDryPrinciple, DryAndOrthogonality