글쎄, 내가 사용하거나 생각한다고 생각하는 척도는 다음과 같습니다.
각각의 독립적 인 단일 한 줄 테이크 아웃 기능 요구 사항에 대해 구현하기 전에 코드베이스를 스냅 샷하십시오. 그런 다음 프로세스에 도입 된 버그를 찾아서 수정하는 등이를 구현하십시오. 그런 다음 diff
코드베이스 전후에 코드를 실행하십시오 . 은 diff
당신에게 변화를 구현하는 모든 삽입, 삭제 및 수정의 목록이 표시됩니다. (10 줄의 연속 된 코드를 삽입하는 것처럼 하나의 변경 사항이 있습니다.) 몇 개의 변경 사항이 있습니까? 이 숫자가 작을수록 일반적으로 코드를 유지 관리하기가 더 쉽습니다.
소스 코드의 중복성은 오류 수정 코드의 중복과 유사하기 때문에이를 중복 이라고 부릅니다 . 정보는 1 청크에 포함되어 있지만 일관성을 유지하기 위해 모두 함께 수행해야하는 N 청크로 인코딩되었습니다.
나는 이것이 DRY의 아이디어라고 생각하지만 조금 더 일반적입니다. 그 수를 줄이는 것이 좋은 이유는 일반적인 요구 사항을 구현하기 위해 N 변경이 필요하고 오류가 많은 프로그래머로 N-1 또는 N-2 만 올바르게 수행하기 때문입니다. 1 개 또는 2 개의 버그. O (N) 프로그래밍 노력 외에도 이러한 버그를 찾아서 찾아서 수정해야합니다. 그것이 작은 N이 좋은 이유입니다.
유지 관리 가능은 코드 작동 방식을 배우지 않은 프로그래머에게 반드시 읽을 수있는 것은 아닙니다. N을 최적화하려면 프로그래머를위한 학습 곡선을 만드는 몇 가지 작업이 필요할 수 있습니다.
다음은 예입니다.
프로그래머가 향후 변경을 예상하고 프로그램 설명에 방법 지침을 남길 경우 도움이됩니다.
N이 충분히 줄어들면 (최적 1) 소스 코드는 DSL (Domain-Specific-Langage)과 같이 더 많이 읽습니다. 이상적으로는 각 요구 사항이 단일 코드로 복원되기 때문에 프로그램은 문제를 "상태"로 표시하기 때문에 문제를 "해결"하지 않습니다.
불행히도, 나는 사람들이 이것을하는 방법을 많이 배우는 것을 보지 못합니다. 오히려 그들은 정신적 명사가 수업이되어야하고 동사는 방법이되어야한다고 생각하는 것 같습니다. 내 경험에 따르면 N이 30 이상인 코드가 생성됩니다.