리팩토링은 방을 들어 올리는 것과 같습니다.
깔끔하게 정리하면 알고리즘 전문가 측면에서 코드에 대해 수행하는 생산적인 작업량에 비례하는 선형 오버 헤드가 발생합니다. 10 %의 시간을 리팩토링 (또는 방을 깔끔하게 유지)하는 데 10 %가 주어진다고 가정하면 시간이 지남에 따라 일정하게 유지됩니다.
그러나 더러운 옷을 모퉁이에 버리고 계속 계속하면 방을 줍는 데 소요되는 시간이 더 복잡해집니다. 각각의 더러운 세탁물 조각이 필요한 청소 시간에 기하 급수적으로 기여한다고 가정하면, 이제 O (e n ) 상황입니다.
알고리즘 복잡성의 개념을 파고 들어 본 사람이라면 어딘가에 손익분기 점이 있다는 것을 알 수있을 것입니다. 즉, 최적의 더러운 세탁물이 쌓일 것입니다. 그 정도는 big-O 표기법에서 버려지는 상수 요소에 따라 다릅니다. 또 다른 요인은 시간이 지남에 따른 일의 가치입니다. 지금 일할 가치가 있지만 다음 주에 값이 싸면 (즉, 이번 프로젝트 마감일이 3 일 이상이지만 그 이후에는 대부분 유휴 상태입니다 ), 방정식은 리팩토링을하지 않는 것으로 판명 될 수 있습니다.
그리고 복잡한 임계 질량이 있습니다. 어느 시점에서, 엉망 (당신이 원한다면 '중요 엉망')이 너무 나빠서 방 전체를 태우고 새 옷을 사는 것이 더 쉬워 보입니다. 실제로는 그렇지 않지만 실제로는 그렇게 나타나고 심리적 효과로 인해 문제를 해결하기가 10 배 더 어려워집니다.
분명히, 이미 여러 개의 중복 중복 엉망인 프로젝트를 시작하면 선택의 여지가 없습니다.
TL; DR : 의심스러운 경우 리팩터링하십시오. 하지 않기로 결정하기 전에 실제로 좋은 증거가 있어야합니다.