나는 당면한 문제에 대한 디자인을 믿고 있으며 "언젠가 필요할지도 모르기 때문에"충족시켜야 할 모든 사례를 추측하여 디자인을 날려 버리지 않습니다.
기본적으로 특정 요구 사항 목록이 주어지면 디자인을 요구하지만 다음과 같이해서는 안됩니다.
- 솔루션에서 이러한 측면을 하드 코딩하는 대신 디자인 측면을 구성 할 수 있습니다. 런타임시 또는 전달시 (또는 HUP 후) 외부 구성 읽기를 통해 전달 된 매개 변수를 통해.
- 마법의 숫자로 코드를 묶고
- 기존 솔루션과 새로운 요구 사항에 적합한 접근 방식을 제공하기 위해 기존 솔루션을 수정 한 후에 재사용 할 수있는 이미 작성된 것이 있는지 확인하지 마십시오.
"가능한 미래"를 설계 할 때의 주요 문제는 항상 추측 만한다는 것입니다. 교육받은 추측을 할 수도 있지만 "밀어 넣을 때"는 여전히 일련의 추측 일뿐입니다.
이렇게하면 알려진 요구 사항에 의해 정의 된 특정 문제를 해결하기보다는 일반적인 경우에 맞게 솔루션을 압축 할 수있는 가능성이 매우 높아집니다.
그게 무슨 소리 야? "당신이 가진 모든 것이 망치 일 때, 모든 것이 못처럼 보이기 시작합니다."
누군가가 다음과 같이 말하는 것을들을 때마다 파운드가 있었으면 좋겠다. "하지만 나중에 볼 수있는 일반적인 경우에 더 적합한 솔루션입니다."