모든 정답은 극단적 일 것입니다. 마감 기한이 너무 빡빡해서 못생긴 코드를 사용해야하는 경우가 있으며, 코드가 너무 나빠서 개선하기 위해 마감 기한을 놓칠 가치가있는 경우가 있습니다. 필요한 것은 자신이 속한 것을 판단하는 방법과 더 나은 코드를 작성할 수있는 현실적인 마감일을 설정하는 방법입니다.
나중에 정리를 저장하지 마십시오. 습관적으로 리팩토링 만 할 것이없는 기간이 없다면, 코드를 정리하는 것이 현재보다 더 우선 순위가 높은 "나중"이 없습니다. 루틴은 "빨간색, 초록색, 리팩터링"이 아니라 "빨간색, 초록색, 리팩터링 2 주 동안 완전히 다른 작업을 수행합니다"입니다. 현실적으로 다음에 다른 이유로 코드를 다시 방문 할 때까지 코드를 변경하지 않을 것이며 아마도 마감일이 될 것입니다. 실제 옵션은 지금 해결하거나 떠나는 것입니다.
물론 스타일을 잘 잡은 코드는 스타일이 나쁜 코드보다 낫습니다. 다시 읽을 계획이라면. 다시 읽지 않으려면 정리하지 마십시오 . 테스트를 통과 한 첫 번째 물건을 배송하십시오. 그러나 대부분의 프로그래머에게는 거의 발생하지 않는 시나리오입니다. 이 경우를 무시하면 실제 사례에 대한 세부 정보만으로 수정 비용과 수정하지 않는 비용 (향후 유지 관리 비용 증가)을 판단 할 수 있습니다.
코드를 유지 관리해야하는 시점에서 수정해야하는 것이 지금 수정하는 것보다 해결하기 어려운 것이 있습니다. 이것들은 실제로 지금 고치는 데 큰 도움이되지 않습니다. 가장 분명한 것은 고치기가 쉽지 않다 (공백 오류 등).이 질문을 할 시간이 있지만 고칠 수는 없다고 상상하기 어렵다. ;-) 사소하지 않고 이런 종류의 경우 , 이상적이지 않지만 실용적이어야하는 코드가 있습니다. 작동하며 마감일입니다. 그걸 써.
(a) 모든 사람의 마음이 그렇게 신선하지는 않지만 나중에 수정하기가 훨씬 쉬운 특정 사항이 있습니다. (b) 그것들에 의존하거나 모방하는 다른 것들이 쓰여졌다. 이것들은 지금 고치는 것이 훨씬 더 가치가 있으므로 우선 순위를 정하십시오. 마감일에이 문제를 해결할 시간이 없다면 코드베이스에 부채를 쌓아 다음 번에 방문 할 때 지불해야하므로 마감일을 길게 할 수있는 한 열심히 노력해야합니다. 코드.
코드를 수정하는 기본 방법은 검토 프로세스를 통하는 것입니다. 당신이 가진 문제에 대해 의견을 말하고 후배에게 보내서 변경하십시오 . 당신이 의미하는 바의 예를 제시하고 주니어에게 그들이 적용되는 코드에서 모든 사례를 찾도록 맡길 수 있지만, 단지 코드를 완성하지는 마십시오. 그렇게하면 개선 할 수단이 없습니다.
일반적인 문제는 "이러한 작업을 수행하지 말고 대신 수행하십시오"라는 스타일 가이드에 작성해야하며 그 이유를 설명해야합니다. 궁극적 이유는 "미학적으로 일관된 우리의 코드를 만들기 위해"할 수있다, 그러나 당신이 어떤 명분으로 규칙을 작성할 준비를하지 않으면 당신은 아마 중 하나를 적용 할 수 없습니다. 각 프로그래머는 자유롭게 선택할 수 있습니다.
마지막으로 물건을 무기한으로 조정하는 경향에주의하십시오. 반품은 줄어들고, 여전히 좋은 경험을 통해 배워야합니다. 충분한 것이 무엇인지에 대한 현실적인 아이디어를 형성하는 것이 절대적으로 중요합니다. 그렇지 않으면 마감일이 "충분히 좋은"코드를 만들 수있는 시간을 갖도록하는 협상을 할 수 없습니다. 충분하지 않은 것에 시간을 보내십시오.