的確,重構也是需要額外時間的,但這應該是我們專業的一部份。一個好的重構時間點就是無時無刻,也就是說一邊寫程式碼的時候也要一邊重構它。基於這個理由,所以重構不應該是一個特定的 Item, 它應該是我們寫程式的一部份。
無時無刻也許不容易做到,這邊介紹另一個重構的原則叫做事不過三原則。
它的意思是說當我們一開始寫程式的時候,我們就按照我們的想法把它寫出來,也不需要去重構它。當第二次寫到類似的東西時,我們就用最簡單的方式把它完成。也許是複製貼上,或是簡單的加個 if else。 但當第三次我們又碰到他的時候,這個時間點我們就要開始思考如何重構它了,這就叫做事不過三。
第一次我不確定是否以後會用到它,所以我就先不重構它,第二次我睜一隻眼閉一隻眼就讓它這樣吧。但第三次我就無法不理它了,因為已經第三次了,後面還會有第四次第五次,所以現在是重構的好時機,不會太早也不會太晚。
重構的時候我們還要記得一個原則叫做 Baby Steps,它的原理就是我們在重構的時候要盡量像嬰兒學走路一樣,一小步一小步的前進。不要一次跨太大步。確保在每一個小改動都能夠通過測試。
這裡我們又提到了測試,但不代表你沒有測試或不會寫測試就不能重構,你原本程式寫完後怎麼做就怎麼做,也就是如果你都手動測試那你重構完也就手動測試來確保程式是正確的。當然有自動化測試會省下你更多的時間,也讓你更敢去重構,因為你會知道你沒有改壞任何東西。