당신의 직감이 아마도 당신이 아마도 리팩토링을해야한다고 말하고있을 때, 당신이 너무 늦게 당신이 너무 중요한 것을 버리고 있다고 말하는 것은 당신의 본능 일 것입니다.
나는 "코드 냄새", 적 록색 리 팩터 및 기타 생각을 이해하지만, 리팩터링하기 가장 좋은 시간은 처음 코드를 작성할 때가 아니라 코드를 사용하고 두 번째 또는 세 번째로 생각하는 것입니다. 실제로 문제이며 실제로 사용되고 있습니다.
리팩토링에는 두 가지 수준이 있습니다. 첫 번째는 처음 코딩 할 때 나타나는 명백한 문제입니다. 이것들은 선행 비용이 거의 들지 않는 작은 최적화입니다. 메소드와 클래스를 작게 유지하고 DRY 및 SRP를 준수하는 것과 같은 것들. 그런 다음 디자인의 주요 결함을 처리하는 추가 단계가 있으며, 코드가 2 마일이 될 때까지는 분명하지 않을 수 있습니다. 이 두 번째 단계는 당신이 말하고 있지만, 나중에 리팩토링이 너무 비싸지 않도록하기 위해 나중에 구상하려는 노력이 쉽고 비용이 적게 드는 방식으로 코드를 작성해야합니다. 이는 초기 리팩토링을 의미합니다.
Jeff가 자신의 답변에서 언급했듯이 , 특히 작업량이 많고 위험이 더 높은 회사에서 "시간은 돈입니다" . 코드가 가능한 최상의 상태에 있는지 확인하는 데 소요되는 시간은 나중에 쉽게 리팩토링해야했던 내용을 알아볼 때 시간이 절약되는 것입니다.
소프트웨어를 작성할 때 코드를 개선하는 데 소요되는 모든 시간은 나중에 필요할 때 절약 할 수 있습니다. 리팩토링이 빠를수록 나중에 변경되는 것이 더 명확 해집니다. 미래의 기술 부채에 대해 오늘 달러로 계약금을내는 것과 같습니다.
어쨌든 리팩토링은 소프트웨어가 이미 완벽하고 안정적 일 때 신비한 미래가 될 때까지 연기해야 할 일이 아닙니다. 나중에 말뚝이 훨씬 높고 제품을 변경하기가 훨씬 어려울 때 위험이 증가하기 때문입니다. 리팩토링은 일상 활동의 일부 여야하며 이것이 언급 한 Red-Green-Refactor 철학의 본질입니다.