답변:
가장 일반적인 정의의 왜곡은 정렬되지 않은 것을 의미합니다 (병렬이 아님). 분명히 코드를 복사하여 붙여 넣을 때 두 사본은 동일하고 병렬입니다. 이것은 변하지 않습니다. 한 사본을 변경했다고해서 다른 사본 (부주의 또는 무지로 인해)이 변경된 것은 아닙니다. 이제 두 곳의 서로 다른 곳에 존재하는 두 가지 버전의 코드가 있습니다 (더 이상 동일하지 않음). 동작이 다른 곳이 아닌 다른 곳에서 작동하는 것처럼 보일 때 이상한 버그가 발생할 수 있습니다. 코드를 건조하게 유지하십시오 (반복하지 마십시오).
편집 / 추가 : 복사하여 붙여 넣으려는 충동이 있다면 공유 수퍼 클래스 (객체 지향) 또는 일종의 포함 된 유틸리티 함수 (기능)에 복사하는 코드를 추상화해야합니다.
어린 시절 전화 게임을 한 적이 있습니까? 알다시피, 각 사람이 다음 사람에게 문구를 줄이면서 마지막으로 말하면 마지막 사람이 문구를 크게 말하고 모든 사람이 원본과 어떻게 다른지에 대해 웃습니다. 비뚤어집니다. 코드를 복사하여 붙여 넣을 때 필연적으로 하나 이상의 복사본을 약간 변경합니다. 또한 동일한 코드를 자주 복사하여 붙여 넣을수록 변경 사항이 많아지고 코드가 왜곡됩니다. 수백 개의 복사 및 붙여 넣은 블록이있는 코드를 보았습니다. 각 블록은 몇 문자 만 다르므로 유지 관리가 거의 불가능합니다. 코드 섹션을 잘라내어 붙여 넣기를 원한다면 적어도 자체 기능에 삽입하는 것이 좋습니다.