PC的blog

          Finding... Thinking... Solving...

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            9 Posts :: 0 Stories :: 54 Comments :: 0 Trackbacks
          陸陸續續又看了一些技術書,加上最近工作任務繁重,實在沒時間寫技術類的博文,計劃斷斷續續寫一些書的閱讀評論。今天先寫一本,

          最近閱讀的書并不都是最新的,因為些書的確是需要花時間反復研讀,仔細思考的,例如關于設計模式的書。

          Refactoring to Patterns就是這樣一本書,一本相對來說不算太新的書,一本關于設計模式的書,一本讓人從新開始思考模式的書。我本人強烈推舉大家閱讀。

          這本書剛出來的時候,我就一直想好好靜下心來讀一讀,無奈工作忙碌,一直沒有找到機會。而且說實話,自己對設計模式也已經浸淫數載,大部分模式都已經在實 際項目中歷練過,不說爐火純青,也算得上是熟能生巧。雖然知道這是一本好書,但是心里依然會泛起陣陣漣漪:just another design pattern book,給我一天時間,我就能把它拿下。沒想到從開始讀到現在已經2個多月了,現在依然會抽時間出來翻看某個章節,然后結合實際問題仔細思考一番。說實 話,設計模式真的是個好東西,是前輩經驗的積累,但是當我們熟練掌握了各種模式之后,就會遇到兩個瓶頸性質的問題:

          1. 如何將各類模式融匯貫通。感覺就像是武俠里面的如何將任督二脈打通,功夫再好,任督二脈不通也非高手,不同的模式相互作用會產生不同的結果,不同的模式組合會產生不同的結構,或相互補充相互促進,或互相影響互相抵制。如何選擇,是個難題。

          2. 如何避免過度設計。模式用熟的朋友可能會有這種感覺,編程的時候會不知不覺中使用模式進行開發,模式再好,泛濫使用,過猶不及。好像武功一般,招式繁多,固然耍起來好看,但是高手最后的境界往往是無招勝有招,只要能目的達到就行了。

          第一個問題由于模式之間的組合千變萬化,而且很多需要結合實際問題進行考慮,大家只能是在實際項目開發中慢慢體會,慢慢積累經驗。或許再過幾年會有某個人或者某些人把這些經驗收集整理,編排出書。

          今天主要想說說第二個問題:過度設計。 Refactoring to Patterns這本書就是幫助我們盡量避免過度設計的,這也是我推薦大家看這本書的初衷。

          事實上,這本書完全可以看成是極限編程系列里面的一部巨頭著作,其他的重要著作包括TDD,Refactoring,和continuous integration,合起來應該稱為XP四大金剛。

          使用XP開發強調keep it simple,在編碼的時候首先用最簡單的辦法實現功能(當然最好是測試驅動,我會在評論下面一本書是繼續談測試驅動),然后在測試代碼的保護下對初級代 碼進行大刀闊斧地重構,這時候這些代碼自然最好能夠重構成設計模式,因為針對某些特定的問題,模式基本上是最佳解決方案。這個時候就大家就需要了解如何將 現有的代碼重構成為標準的設計模式代碼,說的嚴重點,這一步關系到整個代碼的質量,直至引申到真個項目的質量。這本書就針對這個關鍵步驟進行了講解,是所 有采用XP方法的開發團隊的必修課之一。


          至于書的內容我就盡量簡單概括一下:本書基本上覆蓋了重構項目中會遇到的大部分問題,并且針對這些問題提供了實例講解和具體的解決方案。這些方案不單單適 用于使用TDD開發的項目,它們更適用于那些希望通過重構改善現有代碼質量的項目。當然,重構前,千萬別嘗試避開編寫測試代碼,要牢記,沒有測試代碼保 護,最好不要對代碼做大手術。書中的很多例子都值得大家讀完以后結合自己的實際項目仔細思考一番。我個人很喜歡第7章,已經在項目中采用了書中提到的很多 解決方案,并且對于某些實際例子,開始嘗試優化書中的方案,希望以后能夠抽出時間來寫一篇詳細的博文。



          聲明:本文版權歸作者所有,如需轉載請注明出處。

          posted on 2008-07-29 19:17 polygoncell 閱讀(1404) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 公主岭市| 湘潭市| 乌拉特后旗| 双辽市| 台州市| 布尔津县| 扶沟县| 凤阳县| 阿克苏市| 莲花县| 桃江县| 丹棱县| 苍溪县| 桃园市| 沿河| 额敏县| 高州市| 沭阳县| 璧山县| 内乡县| 涡阳县| 合作市| 辰溪县| 航空| 正蓝旗| 镇原县| 忻城县| 徐汇区| 泸定县| 弋阳县| 顺平县| 绥芬河市| 儋州市| 杂多县| 古田县| 龙岩市| 洪雅县| 宁明县| 开平市| 磐石市| 赫章县|