重構可以、也應該融入到你寫代碼或維護代碼的過程中——作為日常開發/質量管理的組成部分,就像寫測試和代碼審查一樣。重構應該被安靜的,持續的和低調的完成。它需要我們把工作精力分出一部分給它,它需要在我們的工期評估和風險評估中考慮到它的存在。如果做的正確,你不需要去解釋或向外人驗證這部分工作。
花幾分鐘、一兩個小時做重構,就像是你開發過程中的一種修改,是工作的一部分。如果它讓你花了數天時間,或者更長,那不是重構;那是重寫,或重新設計。如果你需要明確的留出一部分時間(或整個sprint周期)來重構代碼,如果需要為清理代碼而申請批準,或把清理代碼作為一個開發需求,那你不是在重構——即使你用了重構的技術和工具,你仍然做的是另外一種工作。
有些程序員認為對代碼進行根本的、重大的修改是他們的權利和義務,在重構的名義下進行重新設計、重寫,為了將來,也不辜負自己的技藝。重新設計和重寫有時候是你正確的該做的事情。但出于坦誠和表述清楚,請不要把這些活動賦以重構的名義。