저 자신과 저는 레거시 코드의 프로듀서이자 관리자였습니다. 도구가 "수천 건의 위반"(또는 그 문제에 대해 수백 건)을 생성하는 경우 도구를 잊어 버리면 상황에 해당되지 않습니다.
원래 개발자가 오랫동안 사라져서 토론 할 수 없다고 생각합니다. 따라서 디자인과 코딩 스타일의 이유와 위치를 이해하는 사람은 아무도 없습니다. 수백 또는 수천 건의 위반을 수정한다고해서 몇 줄의 코드를 여기저기서 다시 작성해야하는 것은 아닙니다. 대신, 리팩토링 / 재 기능 분해가 의심의 여지가 없습니다. 현재 디자인을 완전히 이해하지 않고 기존의 모든 큰 코드베이스에이를 시도하고 완전히 새로운 버그 / 문제 등을 도입해야합니다. 새로운 웜 캔은 현재 가지고있는 것보다 더 나빠질 수 있습니다 (또는 툴 >> thinks << 지금 가지고있는 것보다 나쁩니다).
"수천 개의 위반"을 해결하기위한 유일한 합리적인 접근 방식은 처음부터 다시 작성하는 것입니다. 길고 비용이 많이 들며 경영진에게 판매하는 것은 거의 불가능합니다. 이 경우에는 아마도 맞을 것입니다 ...
레거시 코드는 일반적으로 조정이 필요합니다. y2k 또는 주식이 256에서 10으로 갔을 때와 같습니다. 나는 그 cr * p 모두를했다. 그리고 다른 많은 유사한 것들. 일반적으로 때로는 나쁜 스타일, 잘못된 기능적 분해, 나쁜 등을 "읽고"수정해야하는 장소 모음을 찾을 수 있다는 점에서 꽤 "정확한"것입니다. 그리고, "그 장소들 사이에서"일어나는, 즉 더 높은 수준의 흐름은 당신에게 미스터리로 남아있을 수 있습니다. 변경하려는 현지화 된 기능을 이해 한 다음 부작용을 테스트, 테스트, 테스트하기 만하면 현지화 된 지식으로는 예측할 수 없습니다.
그런 코드를 통해 길을 찾을 수 없다면 레거시 코드를 유지하는 가장 좋은 사람이 아닐 수도 있습니다. 어떤 사람들은 빈 화면으로 시작하여 아름다운 프로그램을 작성할 수 있지만 다른 사람들의 코드로 구성된 큰 코드베이스로 시작하여 유지할 수는 없습니다. 다른 사람들은 코드를 유지할 수 있지만 처음부터 시작할 수는 없습니다. 일부는 둘 다 할 수 있습니다. 적합한 사람들이 레거시 코드를 유지하고 있는지 확인하십시오.
레거시 코드베이스를 처음부터 다시 디자인하고 다시 작성해야 할 때가 종종 비즈니스 (또는 기타) 요구 사항이 바지 자리 "비틀기"로 인해 변경된 요구 사항을 더 이상 수용 할 수없는 정도로 변경되는 경우입니다. . 그 시점에서 새로운 기능 요구 사항 문서를 먼저 작성하여 모든 이해 당사자가 참여할 수 있도록하는 것부터 시작할 수 있습니다. 기본적으로 완전히 새로운 볼 게임입니다.
유일무이 한 >> wrong <<해야 할 일은 레거시 코드 유지 보수를 새로운 개발과 같은 방식으로 처리하는 것입니다. 그리고 그 한 가지 잘못된 것은 당신이 가고 싶은 길인 것 같습니다 :) 당신이하고 싶은 것이 아닌 내 말을 들어보십시오.