2009年5月8日 星期五

重構-向範式前進一書讀後心得

前一陣子把這本看完後,原本打算寫這篇心得文(好像是變相推薦文)

但是因為事情比較忙,拖到今天才打出這篇



我在看完『重構-改善既有程式設計』之後,覺得意猶未盡,去找了很多相關的書籍

之後找到了他的延伸閱讀『重構-向範式前進』



裡面講解如何使用Refactoring去將現有的程式不止改善,更讓他成為Design Petterns

這裡真的很佩服作者 JOSHUA KERIEVSKY,他提出了那麼多重構的手法

有些雖然是平常我們就有再用,但是JOSHUA KERIEVSKY更給這些重構方法一個明確的定義步驟

有人說Design Petterns過於好高騖遠,因此對他抱持疑問,但是閱讀完這本書之後給了我一記強心針,設計是可以持續進行的

這點在我閱讀完極限軟體製程(Extreme Programming)後更是確信不疑(這系列出了很多書)
利用持續重構跟測試,一個程式碼終究可以被整骨成設計模式

『重構-改善既有程式設計』在基峯的閱讀指引是入門-專家,而『重構-向範式前進』則是進階-專家,代表著沒有相當backgroung最好不要從這本開始看

『重構-向範式前進』是『重構-改善既有程式設計』的延伸閱讀,所以最好看過這本書跟四人幫的Design Patterns 才有辦法對裡面的內容理解貫通

這本書提到了很多概念包括過度設計還是設計不足,提倡用持續重構的方式改善程式碼設計(這不就是XP的精神嗎)

因為人們很容易入Patterns Happy而無法自拔,而多做了過多的設計

我真的覺得這本書算是變相的XP宣傳,因為沒有持續重構跟測試,就沒辦法refactoring to patterns

裡面只提出了『重構-改善既有程式設計』的其中的12個程式碼的壞味道,以及27個重構手法,而很多重構技術如果是『重構-改善既有程式設計』裡面有的他就只會提是該書的哪一頁(所以看這本書的時候『重構-改善既有程式設計』要隨身攜帶比較好)

裡面重構的部分分成幾個章節

  1. 創建(Creation)

  2. 簡化(Simplification)

  3. 一般化(Generalization)

  4. 保護(Protection)

  5. 積累(Accumulation)


每節各有幾個不同的重構手法,主要分成三大手段:成為(To)、接近(Towards)、遠離(Away)

當程式碼設計不足的時候就讓他成為或者接近一個Patterns,當程式碼過度設計的時候就讓他遠離Patterns

除了這些之外,前面還講解了一些實例跟如何說服你的老闆接受你去重構等等

總合而言這本書是上選,個人還蠻推薦的,不過最好是已經看過重構跟設計模式相關書籍在來閱讀此書會比較好


有機會我來把這本重構法整理成文章PO上來跟大家分享,畢竟好的技術就應該廣為流傳

謎之音:你前面還有一本設計模式的文章要PO

沒有留言: