2010年5月16日 星期日

重構(Refactoring)的範例程式碼

最近剛好有機會講Refactoring,用Martin Fowler原書第一章的範例。最早是聽以前的同事老王用這個例子上課,覺得效果很好,兩年前我也用這個例子講過一次。這兩年當中經過更多不同程式碼的洗禮(請參考極品程式碼三部曲1, 2, 3),對這個範例的看法又不一樣。這次講課,我儘可能少說明整個程式的邏輯,也不給聽眾讀懂程式碼的時間,在對全貌了解很有限的前提下,說明如何refactor。隨著翻修的進行,程式碼在做什麼也逐漸明朗。這過程也就順帶說明,refactoring不只是為了整理程式碼,也是讀程式碼(code inspection)的技巧。