Coco學程式設計--《設計模式》,語言無關的好書 (轉)

gugu99發表於2007-08-17
Coco學程式設計--《設計模式》,語言無關的好書 (轉)[@more@]

我:早上好,Coco。

Coco:天啊!居然你還在人世啊……我打你不接,電郵不回,我還以為你前一陣子讓颱風給卷跑了!

我:呵呵,真是不好意思,上個月丟了手機,丟了工作,263轉帳不成功,被鎖在那裡不能用……所以像人間蒸發了一樣,真是對不起。

Coco:可憐啊……不過你把我晾在一邊不管,消失這麼長時間,我也就不想可憐你了!除了這些,你就沒有做什麼對人生更有意義的事?

我:有啊有啊,我失業後買了《設計》,然後沒日沒夜的讀了一遍,真的是大有收穫啊!就是那本由工程界的四位專家寫成的名著。我推薦你儘快去買一本來讀,會對你很有好處。

Coco:這本書有這麼好?不過聽說書中的程式碼都是用C++和Smalltalk寫成的,C++語言我不熟,Smalltalk可以說一點都不懂,這本書對於我是不是太難了些?

我:雖然很多書評都把這本書列為面向高水平讀者的高難讀物,但以我的切身體會,它在語言方面的難度並不是很高,也沒有任何艱澀難懂的程式碼。這本書的重點在於介紹了23個設計模式的由來,結構分析,設計方法和適用範圍。所以說它主要的作用在於培養讀者分析和解決問題的能力,而不在於語言的技巧。你的已經會使用C++進行一些簡單的類設計和編寫,瞭解它的基本語法,可以讀懂一些較深入的程式碼。我看這個水平完全可以讀這本書了。如果有學Smalltalk出身的朋友,我看達到同樣的程度就可以。

Coco:這麼一說,我就有信心了。不過,以我這個初學者,讀這本書會有很重要的意義嗎?畢竟我的時間也很緊張。

我:我認為,這本書應該儘早開始讀,因為它對培養員的思維方式有很大的幫助,知識可以學習,但思維方式和習慣,一旦養成,就很難再改變。雖然你還讀不懂書中的所有內容,但你試著與作者一起思考的時候,自然的就會為之影響,當你理解和怎樣像作者一樣把問題化繁為簡,分而治之,你就離真理更近了一步。這不盡會對你寫C++程式有幫助,還會對你編寫其它程式,甚至對你思考和處理問題,都會有很大幫助。老實講,如果我早幾年讀到這本書,就不會是現在這個水平。:)對我來說,這本書讀到的太晚了。

Coco:那如果我讀不懂這本書中的程式碼怎麼辦?

我:前面說了,這裡面沒有很艱澀的程式碼,以你的水平,如果有個別的程式碼不能理解,可以對照著讀一下手邊的C++教材,重要的是要學著理解書中程式碼的設計方式,也是說是,不止要理解它們是“做什麼用”,還要理解它們“為什麼是這樣”。這方面的困惑可能更難解決,一個是和有開發的朋友多交流;一個是不要操之過急,要明白作為一個初學者,你有這樣的困難是正常的,可以先把它放在一邊,在日後寫程式的時候慢慢體會。

Coco:如果我以後不用C++寫程式了,這本書的內容會不會對我沒有用了?

我:絕對不會,關於設計模式的知識和開發語言是沒有關係的,更重要的是寫程式的人。就像Bjarne Stroustrup 所說過的,一個人如果真正理解了面向的思想,他用純C也能寫出物件導向的程式。一個人如果理解了設計模式,那麼他在使用任何開發語言和工具時,那可以自如的應用甚至創造新的設計模式。事實上,現在應用設計模式最廣泛徹底的,也許不是C++,而是。如果你理解了設計模式,肯定會對你理解Java的架構,開發Java程式大有幫助。據我所知,有很多研究設計模式的人,都把Java做為工作平臺,相關的資料也有很多。

Coco:但是這類的讀物我也讀過一些,比如在很多地方都介紹過“工廠模式”,但我一直就讀不懂為什麼要有工廠模式,工廠模式到底做了什麼。

我:出現類似的問題主要有幾個方面,一個是你沒有足夠的開發經驗,設計模式是為了解決一些特定的問題出現的,如果你沒有遇到過這一類的問題,可能不會明白它們的意義;還有一方面就是單獨的文章不足以說明設計模式的設計方法以及對各個模式進行詳細的分析。所以我建議你讀一讀這本整體介紹設計模式的《設計模式》。事實上,它的門檻不高,正文內容只有二百多頁,文字也沒有什麼架子,都很容易懂。輕便好帶,你上晚自習的時候可以裝在書包裡,背英語背累了拿出來讀讀,挺不錯的。

Coco:說得我心動了,明天我就去書店買一本吧。有影印版,我直接買一本影印版。

我:好啊,為了不會買錯,我在這裡說一下,書名叫《設計模式》,英文名“Design Patterns”,作者是:Erich Gamma, Richard Helm, Ralph Johnso, John Vlisss。機械工業出版社出版。不要笑我多嘴,我就在一家書店裡親眼見過著名的書藉《Delphi 5 開發人員指南》旁邊放了本國人編的《Delphi 5 開發指南》,厚度價錢什麼的都差不多,可質量卻天差地遠……

Coco:那我乾脆買英文版好了。

我:說到英文版,這麼久不來,我給大家帶了份薄禮:《文件》的中譯本。現在剛剛開始譯《Python指南》,本來是想至少譯完這一部分後,再把它貼上來,再找個地方把它完整的儲存好。但我明天就要出發去外地,可能很久都沒機會再忙它,只好把現有的這個開頭先傳上來。實話實說,這個譯本並不算理想。很多地方都不是很細緻,也不是精準的對照翻譯(這與的我觀點有關,我認為翻譯重要的是準確表達意思而不是文字)。希望所有發現有錯誤或爭議的朋友及時指出,謝謝大家。

Coco:你又要人間蒸發啊……好吧,那麼大家再見。希望我們可以儘快再見!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-962818/,如需轉載,請註明出處,否則將追究法律責任。

相關文章