2009年2月25日 星期三

極品程式碼--refactoring踢到鐵板(Part 3 後記)

第一篇第二篇中,分享了一次Refactoring的經驗。當時覺得最大的考驗是意志力與信念。所以描述(抱怨)問題的困難度,以及心路歷程佔的篇幅最多。現在回頭想來,其實這篇兩篇文章真正分享的實務技巧,似乎可以化約成簡單幾句話:

當程式碼很冗長,變數糾結得很複雜時,可以用extract method來將程式分割成小塊。由於變數的scope過大以及使用不當,extract出來的method將會出現ref以及out的參數。留待後續的refactor動作逐步消除或簡化這些參數。這個方法似乎只適用於C#(或是其他支援ref參數的程式語言)。

有另一點可以分享的經驗,當時也漏寫了。文字比對工具(如Merger, WinMerge)通常用於版本的比對,但是對於Refactoring也是很有幫助的。假想前人用copy-paste複製幾百行的程式碼,