Delphi圖書之我見

Delphi圖書之我見
www.codesky.net  2003-7-17  自由網絡
關鍵字:



(作者按:這篇文章是應《程序員》編輯王行舟先生的稿約寫的。之後,經由王先生之手,與Hubdog兄(陳省)的相關文章合爲一篇,以“三味書齋”的形式發表在《程序員》雜誌上。明天我會把最後的發表稿放上來給大家參考。另外,在即將出版的今年第4期上會有一篇內容更豐富的圖書介紹,在雜誌出版一到兩個月後也會放到這裏。)

    雖然MS VC++佔有C++語言開發平臺市場的絕對優勢,但畢竟還有CB等產品爭奇鬥妍。這樣看來,Delphi在Pascal語言平臺上的一枝獨秀,不能不說是一夫當關。好男兒最要緊是有擔當,Delphi獨撐Pascal江山,不由人不擊節讚歎。Delphi能在微軟開發工具狂轟濫炸之下屹立不倒,其原因有二,一曰界面親切,二曰重在應用。二而一,一而二,總而言之就是所謂RAD(Rapid Application Development,快速應用開發)。相應地,Delphi相關書籍也處處凸顯出“注重實用”的特點。正如不可將C++與Microsoft Visual C++混爲一談,我們也不能簡單地認爲Delphi就是Pascal。前面的兩期書評,都是針對C++而言,故而可以舉出C++ Primer等大部頭爲例,如果將討論範圍僅限於VC++或CB,堪稱經典的作品似乎就不多了。但在Delphi開發界,有一些著作/作者卻是大家都耳熟能詳,甚至是其書必買、非其書必不買的。Delphi的“開發社區”概念,的確具有不可忽視的親和力。

    我常把文、理兩類表面上截然無關的著作相提並論。史有通史、有斷代史、有專史、有便於查考的編年史,有外傳野史;Delphi技術類書籍亦可與之比照:介紹Pascal基本技術、不因Delphi版本升級而顯老態的,類似於通史(能享此殊榮的,恐怕只有Niklaus Wirth本人的Pascal語言定義了);針對某一版本進行系統介紹的,類似於斷代史(如Marco Cantu的Mastering Delphi系列、Charlie Calvart的Delphi Unleashed系列等);深入一個專題進行研究的,類似於專史(如:Eric Harmon的Delphi COM Programming等);目的在於提供隨時查閱的參考資料的,類似於編年史或年表(如:Clay Shannon的Developer’s Guide to Delphi Trouble-shooting等);以心得經驗集錦形式麪人的,類似於小說外傳之屬(如陳寬達的《Delphi深度歷險》等)。無論是哪一類,都有其存在的價值;而在任何一類當中,不同程度的開發者也都可以找到適合自己閱讀的圖書。選書是一件令初學者頭疼的問題,耗費甚巨但所獲不多的情況比比皆是。如何選到一本好的Delphi讀物呢?這個問題的答案見仁見智。大致說來,我不怎麼買國內作者的作品,甚至於不大買國內翻譯的著作。如果一定要買,李維的多層分佈式系列、hubdog和陳寬達的兩本“深度”著作(《Delphi深度探索》和《Delphi深度歷險》)大約還值得一閱。但李維的書在“實戰”這個說法上有名不符實之嫌;“深度探索”體例太過零碎;“深度歷險”大概因爲是作者第一部書的緣故,筆下拘束,缺乏大家風範。回過頭來說,國外的Delphi類書籍也並非本本優秀,甚至於其中多數也是垃圾。建議讀者在選購書籍之前,先到這幾個地方看看:1、Dr. Bob的網站(http://www.drbob42.com),其中有一些書評,評價中肯,可以作爲一個參考。2、Delphi Informant Magazine雜誌在線版(http://www.DelphiZine.com)或紙質印刷版,該雜誌的書評均出自高手,比較可信。3、Amazon在線書店(http://www.Amazon.com),如果一本Delphi書籍在上面獲得比較高的評價(包括編輯評價和讀者評價),那麼,這本書絕對值得一閱。

    著史者須有史識、史見、史才,好的計算機技術書作者同樣需要具有相當的開發能力、對技術要素的洞見和(甚至是)字裏行間不自覺地洋溢出來的才情。一本堪稱“經典”的讀物,處處散發作者的獨特風格。在與另外兩位作者合作的Delphi Programming Explorer一書的最後部分中,Don Taylor甚至採用偵探小說的形式來描述Delphi數據庫應用開發技術,而且其情節之曲折、文筆之用心,絲毫不亞於大部分“真正的”偵探小說。Marco Cantu、Steve Teixeira(及其寫作小組)、Charlie Calvart等人的著作,可以一再修訂出版,而每一版本的推出,都受到Delphi開發者的踊躍追捧,這與作者彰顯的文字風格也不無關係。遺憾的是至今幾乎尚未見到過一部真正能夠完全展現原著風貌的中文譯本。一本區區幾百頁的書,譯者多達數人以至十數人,其譯作質量可想而知。連基本的術語、語法邏輯都要弄錯,更談不上什麼文字的風格了。

    川菜以博採諸家所長而終獨樹一幟,Delphi開發者的閱讀面同樣也不宜太過狹窄。我想,除Delphi書籍之外,以下三類書籍,也應該有所涉獵:一是Windows系統原理和API參考,一是軟件工程,一是建模和OO(面向對象)原理。更高明的讀者,還可以從哲學和其它一切書籍中體悟到程序的真諦。

    最後我想列一個書單,其中的書籍,我個人以爲是Delphi開發者應該擁有的:

    系統介紹類:Marco Cantu的Mastering Delphi x(讀者請將x換成1-7的數目字,中文譯名《Delphi x從入門到精通》)系列,現在已經是第七版了。作者對Object Pascal理解甚爲透徹,且能緊跟技術發展、針對Delphi的每一新版本增補相應的章節。Charlie Calvart的Delphi x Unleashed(中文譯名《Delphi x編程技術內幕》)系列,似乎到第四版就沒有繼續。該系列書勝在文筆輕鬆,但並不因輕鬆而失之流俗,常能“於無聲處聽驚雷”、在讀者最不以爲意之處着意題點,令人頓感程序設計的美妙與深奧。Steve Teixeira等人的Delphi x Developer’s Guide(中文譯名《Delphi x編程開發指南》)系列,注重技術的具體應用,針對讀者在開發中容易遇到的問題、作較深入的講解。另外還有Todd Miller等的Using Delphi x(中文譯名《Delphi x開發使用手冊》)系列,作者本人就是Delphi開發組成員,對Object Pascal和Delphi都有深刻的認識,講解起來也駕輕就熟,有助於對Delphi開發的全面認識。Don Taylor等的Delphi Programming Explorer,除了後半部分以偵探小說形式體現技術內容之外,在書的前半部分,一位作者先使用具體例子教讀者“怎麼做”,之後另一作者參加進來,從技術角度告知讀者“爲什麼”;別出心裁而又符合人的認知規律。

    主題研究類:李維的分佈式多層系統系列(包括《Delphi 5.x分佈式多層應用系統篇》、《Delphi 5.x分佈式多層應用電子商務篇》、《Delphi 5.x ADO/MTS/COM+高級程序設計篇》和《Delphi 6/Kylix2 SOAP/Web Servic程序設計篇》等),是Delphi多層應用程序設計不可多得的專門讀物,筆法引人入勝、在中文類Delphi讀物中堪稱佼佼者。但讀者應該認識到,該系列圖書介紹的多層分佈應用,大體上是基於Borland自己的平臺,且例子太過簡單,直接用於實戰後患無窮。不過,假使讀者抱着“瞭解多層分佈式應用”的心態去閱讀,則會得益匪淺,關鍵在於不可盡信書中所言。惜乎作者語文功夫當下未下,文字頗有不合語法者,甚至出現前後描述矛盾的地方。Eric Harmon的Delphi COM Programming(中文譯名《Delphi COM深入編程》),就Delphi中的COM編程技術作了大致的介紹,例子有趣,使人不致因COM技術的晦澀深奧而頓生退意。Keith Wood的Delphi Developer’s Guide to XML,是目前唯一一本全面介紹XML技術在Delphi中應用的書籍。該書組織結構(從XML規範、DOM規範到各廠商對DOM/SAX的API實現到真實世界中的具體應用)得當,具有相當強的通用性與指導性。作者長期爲Delphi Informant Magazine撰稿,文筆質樸直白,往往一語中的,廢話較少。此外,Alex Fedorov等人的Advanced Delphi Developer's Guide to ADO和Kudzu等人的Delphi Developer’s Guide to Communication Programming,也都是所屬專門領域中的典範之作。

    參考手冊類:Clay Shannon的Developer’s Guide to Delphi Trouble-shooting(中文譯名《Delphi開發人員排錯指南》),將程序編寫和編譯過程中可能遇到的種種警告、錯誤信息列出,加以詳細解釋。既有錯誤可能原因的描述,又給出解決問題的方法,是作者集多年開發經驗的一部心血之作。Ray Lischner的Delphi in a Nutshell(中文譯名《Delphi技術手冊》),對VCL體系、RTTI、多線程等內容的講解,簡潔明瞭、直指人心,下下都撓到癢處。作爲計算機圖書出版界老大O’Reilly進軍Delphi的第一部作品,可謂沒有給O’Reilly計算積技術系列圖書丟臉,是Delphi開發者手邊必備的讀物。


三味書齋――Delphi篇
www.codesky.net  2003-7-17  自由網絡
關鍵字:


(上傳者按:這是昨天發的那篇《Delphi圖書之我見》http://www.codelphi.com/channel/hjwz/read.asp?ano=943的後續版本。編輯王行舟融合我和Hubdog的文章,最後形成這一篇談話形式的書評,發表在《程序員》雜誌上。)


主持人:xingzhou(行舟),《程序員》雜誌社技術編輯
嘉 賓:grhunter(韓磊):中文開發在線(www.CoDelphi.com)創始人之一
        Hubdog(陳省):《Delphi深度探索》作者



Pascal和Object Pascal

xingzhou:李維的《Borland傳奇》系列文章(編者按:該系列文章即將結集出版),看似語言平靜,但是其蘊含的Borland情結讓許多程序員爲之擊節。Borland在C++開發工具市場的潰敗讓人爲之傷感,但是Borland的反擊策略讓人感到意外,因爲他們的武器居然是曾經被自己所拋棄的Pascal,早期的Turbo Pascal雖然紅極一時,但是Borland還是用自己的Turbo C把Turbo Pascal送到了博物館裏。

grhunter:不過,也有業界知名人士認爲,採用Pascal正是Delphi成功的一個原因。因爲雖然Pascal語言有ANSI標準,但放眼世界大概只剩Borland一家編譯器廠商還支持Pascal,既是唯一,Borland也就擁有絕對的領導優勢。正因爲對於這套語言的先進技術與主導地位,使Delphi幾乎等於一套全新的語言,可以縱情發揮,而它也的確用極其優雅簡潔的風格展現出不同於其它開發工具的格局。

Hubdog:Delphi的真正精髓正是Object Pascal。Borland在標準的面向過程的Pascal語言的基礎上融入了現代的面向對象的軟件開發思想,讓這門“最優雅”的編程語言煥發出新的生命。

xingzhou:使用Pascal作爲元語言的一個好處是沒有兼容包袱,因爲ANSI標準實際上等同於Borland自己的標準。這一點好處從C++ Builder的缺陷上可以反證,爲了兼容各種C++元素――包括Borland以前的OWL、MFC、ANSI標準等等,使得它的編譯速度奇慢無比,這個缺陷也成爲了C++ Builder最大的垢病。

grhunter:是啊,MS VC++佔有C++語言開發平臺市場的絕對優勢,C++ Builder等產品要兼容它也是無奈之舉。

Hubdog:雖然標準Pascal同Object Pascal在很多方面是相通的,但是面向對象和麪向過程是兩種差別很大的開發思想。如果最開始學的是標準Pascal,當面向過程的思想在你腦海中根深蒂固後,你會覺得面向對象的思想很難理解,至少我曾經經歷過這樣一個痛苦的過程。因此我覺得如果一個從來沒有學過標準Pascal的人,對於Object Pascal中OOP思想的理解,反而要更加自然。因此,我的建議是跳過標準Pascal,直接學習Object Pascal。

xingzhou:關於面向過程和麪向對象,我覺得不能簡單地區分誰好誰壞,或者誰先進誰落後。我的理解是面向對象是開發的一種方法論,而面向過程纔是軟件開發的目的,有了OOP的概念後,讓我們在軟件開發中多了一種新的、很好的選擇。如果非要作個高低、上下比較,反而讓人很糊塗。
不過談到學習Pascal語言,要在市面上找到合適的書恐怕很難了。現在Pascal的書籍難得一見,更別提找到一本專門講Object Pascal的書了。

Hubdog:其實,學習Object Pascal最權威和最全面的資料應該是隨Delphi軟件分發的在線幫助中的Object Pascal Reference。可惜,由於Borland公司沒有微軟那樣雄厚的財力和人力,迄今爲止Object Pascal的幫助還都是純英文的。但是如果買了正版Delphi軟件,將獲得Borland的Object Pascal的中文翻譯手冊。

xingzhou:正所謂遠在天邊、近在眼前啊!

grhunter:閱讀這類“語言指南”至少有兩個好處:一者雖然內容平鋪直敘,但一路看下來,對語言一定會有完整的認識;二來可以對語言本身及編譯器特性之間的差異有清楚的瞭解。新手經常分不清楚什麼是語言本身的問題,什麼是編譯器實現的問題,什麼是支撐平臺特有的問題。

Hubdog:這本手冊不是很厚,但是重要的主題一個都不少,從語言最基本的要素講起,數據類型、變量、常數、函數過程、類、標準IO、動態連接庫和包、內存管理、內嵌彙編語言、對象接口等全都提到了,甚至還包含了一張Object Pascal的語法圖,唯一的缺點是不像《C++ Primer》那樣配有大量詳細的例子講解。

xingzhou:善用軟件自帶的文檔的確是個好主意,簡單地按下“F1”,就可以在強大的聯機幫助系統中迅速得到答案。雖然Delphi的幫助系統與龐大的MSDN還難以相比,但也已經足夠應付實際情況了。

Hubdog:事實上,其他講解Object Pascal語法細節的書在國內外基本就沒有,即使有一些書稍微涉及,也都是蜻蜓點水而已。不過網上倒是有人翻譯了Macro Cantu寫的《Essential Pascal》,雖然內容不是很多,但是有不少精妙的講解,值得一看。

xingzhou:我在網上搜了一下,《Essential Pascal》中外版的下載地點還真不少,如:http://www.21url.net/delphi/Essential_Pascal.chm。

Hubdog:Ray Liscbner的《Delphi技術手冊》一書中也有一部分關於語言本身的內容,講得不錯,而且電力出版社翻譯得也不錯,不過奇怪的是這樣一本在2001年全球銷量第一的Delphi經典書在國內賣的並不好,讓我很是奇怪。我猜可能是這本書的例子太少了,因此很多人覺得可操作性不強吧?


系統介紹類:

xingzhou: 我本人很少使用Delphi,只是由於常用C++ Builder,而C++ Builder的書很少,所以基本上都是參考Delphi的圖書,畢竟它們有着非常類似的地方。我雖然買了一些Delphi書,但是仔細想想,卻感到,與C++等其他書相比,很難有幾本讓大家認爲是“經典”的Delphi書。

grhunter:正如不可將C++與Microsoft Visual C++混爲一談,我們也不能簡單地認爲Delphi就是Pascal。針對C++而言,可以舉出C++ Primer等大部頭爲例,但是如果將討論範圍僅限於VC++,堪稱經典的作品似乎就不多了。其實,在Delphi開發界,也有一些著作/作者是大家耳熟能詳,甚至是其書必買、非其書必不買的。

xingzhou: 但是對於初學者而言,選擇適當的書的確是一件令頭疼的問題,耗資甚巨但收穫不多的情況比比皆是,許多人都在問這個問題:“如何選到一本好的Delphi讀物呢?”

grhunter:這個問題的答案見仁見智。大致說來,我不怎麼買國內作者的作品,甚至於不大買國內翻譯的著作。

Hubdog:我也有同感,因爲國內有些出版社實在是不愛惜自己的名聲。如很多打着Delphi入門的招牌的書,上來就講如何開發數據庫程序、如何使用TButton等控件,這導致了很多Delphi初學者有一種誤解,認爲Delphi和VB、PB等開發工具差不多,無非就是一種可以用來快速開發數據庫應用程序的語言,認爲Delphi的程序開發就是拖放幾個控件,設置一些屬性,就OK了,而這是完全錯誤的認識。

xingzhou:我也注意到許多翻譯的書質量不高,一些評價很高的書的中文版廣受批評的情況屢見不鮮。

grhunter:不過,國外的Delphi類書籍也並非本本優秀,可以說其中多數也是垃圾。建議讀者在選購書籍之前,先到這幾個地方看看:1、Dr. Bob的網站(www.drbob42.com),其中有一些書評,評價中肯。2、Delphi Informant Magazine雜誌在線版(www.DelphiZine.com)或紙質印刷版,該雜誌的書評均出自高手,比較可信。3、Amazon在線書店(www.Amazon.com),如果一本Delphi書籍在上面獲得比較高的評價(包括編輯評價和讀者評價),那麼,這本書絕對值得購買。

xingzhou:根據權威調查結果,使用Delph的程序員在中國超過一半。。在CSDN網站,Delphi也是人氣最旺的論壇之一。但是,我注意到經常有人提很簡單的問題,而且提這些問題的人中,有些其實很有經驗了。我想這是他們的知識結構有漏洞的原因,或者說,學習不繫統所招致。

grhunter:系統學習Delphi,建議看Charlie Calvart的Delphi x Unleashed(中文譯名《Delphi x編程技術內幕》)系列,但是似乎到第四版就沒有繼續了。該系列書勝在文筆輕鬆,但並不因輕鬆而失之流俗,常能“於無聲處聽驚雷”、在讀者最不以爲意之處着意題點,令人頓感程序設計的美妙與深奧。

xingzhou:我手頭有一本Delphi的大塊頭:《Delphi 5編程開發指南》。我覺得很不錯,比較全面,我最愛看的是它的那些專題。現在,Amazon已經在賣6.0版了。

Hubdog:《Delphi5程序員開發指南》的作者都有豐富的開發經驗,其中像Chalies Calvert和Xavier等人還曾經在Borland公司任職,因此寫的這幾本書都非常有實戰性,很到位。而且因爲這幾本書所覆蓋的知識點很全面,非常適合放在案頭,以備平時查閱。

grhunter:這一系列書最大的特點就是注重技術的具體應用,針對讀者在開發中容易遇到的問題、作較深入的講解,所以實用性相當強。

Hubdog:Macro Cantu的《Delphi從入門到精通》(Mastering Delphi x)系列書也很不錯,國內引進了For Delphi4、5、6。最近我看了《Delphi6從入門到精通》英文版,感覺全書的水平比以前的版本拔高了不少,特別是對Delphi6的新技術跟蹤非常緊,改寫了大量的內容,增加了對XML和COM+,Action增強,CLX和數據庫方面的內容等,看起來非常過癮,

grhunter:這本書的大賣點是Mastering Delphi x的作者Marco Cantu對Object Pascal理解甚爲透徹,且能緊跟技術發展、針對Delphi的每一新版本增補相應的章節。

Hubdog:的確,這本書中關於Object Pascal的講解應該說是這幾本書中最好的,特別是它對接口和包的講解提供了一個非常精彩的例子,展現瞭如何利用接口和包實現類似於Borland的Open Tools Api的插件技術,而且從Delphi的未來技術發展趨勢來看,接口技術模仿多重繼承的方式將會在很大程度上替代以前的單根深度繼承的VCL框架,這部分的內容值得仔細琢磨。一個好消息是這本書中文版已經由電子工業出版社引進到了國內,不過還有一個壞消息是在China-pub上看到書評認爲翻譯的好像一般,不是讓人很滿意,所以我想英文好的人還是看英文版的比較好。

grhunter:這幾書的共同特點是分主題進行討論,附有豐富有趣的例子,而且都是大百科全書類的書,動輒上千頁。所以看這幾本書如果不配合實戰練習就失去意義了,所以拿到書後我覺得一定要仔細看原書所配的源程序,運行書中的例程,對照書中相應章節的說明,這樣可以很快的上手。

Hubdog:此外這三本書的程度又稍微有些區別,相對來說,Xavier等人寫的《Delphi程序員開發指南》比較基礎,基本上是基於VCL的開發,而且各個版本之間內容變化的比較少,最新的D6的版本同D5的版本相比,我大概看了一下,只是增加了Interbase Express和Decision Cube的內容。而Chalies的《Delphi4技術內幕》相對稍微深一些,很多例子都不是基於VCL的,而是直接調用Windows API來實現的,剛讀的時候可能會有些困難,但是這無疑會幫助讀者更好的理解VCL的精彩實現。此外,Chalies對於DirectX比較精通,因此他的書是唯一一本包含使用Delphi開發DirectX程序內容的書,另外《技術內幕》這本書的DCOM和CORBA部分也很精彩,是最早論述分佈式三層開發的書,即便現在來看,也不算過時。

grhunter:系統學習Delphi的書另外還有Todd Miller等的Using Delphi x(中文譯名《Delphi x開發使用手冊》)系列,作者本人就是Delphi開發組成員,對Object Pascal和Delphi都有深刻的認識,講解起來也駕輕就熟,有助於對Delphi開發的全面認識。


參考手冊類:

grhunter:推薦兩本,Clay Shannon的Developer’s Guide to Delphi Trouble-shooting(中文譯名《Delphi開發人員排錯指南》)和Ray Lischner的Delphi in a Nutshell(中文譯名《Delphi技術手冊》)。Developer’s Guide to Delphi Trouble-shooting將程序編寫和編譯過程中可能遇到的種種警告、錯誤信息列出,加以詳細解釋。既有錯誤可能原因的描述,又給出解決問題的方法,是作者集多年開發經驗的一部心血之作。Delphi in a Nutshell對VCL體系、RTTI、多線程等內容的講解,簡潔明瞭、直指人心,下下都撓到癢處。

Hubdog:對於VCL函數庫,我想沒有哪一本書要比《Delphi技術手冊》更詳細和全面了,作者Ray Liscbner用了整整將近400頁的篇幅詳細全面介紹了VCL的函數、過程、變量、關鍵字等,並且將很多晦澀難於理解的東西講的非常清晰透徹。唯一缺憾就是,書中並沒有附上函數過程的索引,查起來不是那麼方便。說到Ray Liscbner,此人可是我的偶像,寫過多本暢銷的Delphi書,包括《Secret of Delphi2》和《Hidden Path of Delphi》其中Hidden Path of Delphi是迄今爲止國外出版的唯一一本討論Open Tools Api的書,講解了很多Borland從來沒有公開的祕密,可惜這兩本書沒有被引進到中國。Ray Liscbner最近正在爲Oreilly寫堅果系列的另一本書《C++ in a nutshell》,他還經常在Borland的Open Tools Api和Kylix新聞組中出沒,非常熱心,還回答過我好幾個問題呢。

grhunter:這本書確是Delphi開發者手邊必備的讀物。


主題研究類

xingzhou:在Windows平臺上編程,合理使用它提供的API進行編程是一個永恆的話題,這一點對於Delphi來說也不例外,前面推薦的《Delphi程序員開發指南》就包含了不少如何利用API進行編程的內容。

Hubdog:國外的Wordware出版社出版了一系列Delphi使用Windows API編程的書――《The Tomes of Delphi》系列,其中最好的兩本是《Windows Core API開發》和《Windows Graphical API開發》。這一系列書的特點就是每個API都配合有一個詳細的例子來說明,並且對API的每個參數都有詳盡的說明,每本書平均將解了將近300個例子,在編程中遇到API不會調用,只要翻看這本書,一定能找到答案。其中圖像API那本書我尤其喜歡,因爲該書的例子展現了很多圖形特效。在讀完書中精彩例子後,再看看這些精美的特效,也是一種額外的享受。遺憾的是這些書也沒有引進到中國

grhunter:這種類型的書在國內倒是也出了一些,但大多都是將網上Delphi愛好者翻譯的技巧東拼西湊而成的大雜燴,非常零碎,而且並不能保證一定可以運行。我不推薦大家購買這類書。

Hubdog:不過陳寬達寫的《Delphi深度歷險》一書算是一個例外,內容比較豐富和深入,語言也繼承了臺灣作家一貫的風趣幽默的特點,讀起來輕鬆愉快。

xingzhou:這本書名副其實地做到了深度的歷險,但我覺得其內容過於偏向自娛一類,而對於系統級、功能應用級的API涉及較少。

Hubdog:我也覺得該書不夠系統,這可能是由於作者寫作此書還在上學,因此興趣比較分散的原因吧?

grhunter:“深度歷險”大概因爲是作者第一部書的緣故,筆下拘束,缺乏大家風範。

xingzhou:在Windows下,掌握COM編程也是重要的一環。

grhunter:Eric Harmon的Delphi COM Programming(中文譯名《Delphi COM深入編程》),就Delphi中的COM編程技術作了大致的介紹,例子有趣,使人不致因COM技術的晦澀深奧而頓生退意。

Hubdog:這本書的特點是堆砌了大量的源代碼,但是我感覺缺乏理論性和系統性的描述,讓人只是知其然而不知道所以然。所以很多Delphi開發COM時,還要去借鑑Don Box的《COM本質論》和經典的《Inside OLE2》這類C語言的書。

xingzhou:Hubdog的大作《Delphi深度探索》似乎是國內唯一專門討論用Delphi進行COM開發的書。

grhunter:呵呵,不客氣了,Hubdog的“深度探索”體例太過零碎。

Hubdog:是的,我對於COM的介紹比較側重於應用。這主要因爲我寫此書時,還在學校唸書,興趣廣泛,因此這本書的內容也就比較零碎,理論性不強,導致很多人看了之後,都覺得太深,看不懂什麼意思,我事後想起來也懊悔當初沒有多寫些總結概括性的內容,可惜木已成舟,於事無補了。

xingzhou:談到Delphi開發,數據庫程序開發無疑是Delphi最重要的一個應用領域,這也是Delphi成功的基礎之一,它不但徹底打敗了Power Builder,在與VB的較量中也佔據了上風。

Hubdog:數據庫開發方面進階的好書,我最早看到的是李維寫的《Delphi3實戰》一書,國內的版本名爲《Delphi3從入門到精通》,是宇航出版社出的。嚴格的說,這本書並不是一本純粹的講數據庫開發的書,全書中只有一半是同數據庫開發相關的,但是難得的是這本書對我們最常用的數據庫組件的使用效率和使用場合做了深入的分析,其中對TTable、TQuery和TStoredProc組件使用的比較,TDataBase的屬性設定,Lookup和Locate等查找方法的效率比較,同時結合作者豐富的實際案例的經驗,一針見血地指出了很多數據庫系統效率低下的根本原因,讀後讓人對如何編寫高效的數據庫程序有一種豁然開朗的感覺。值得一提是,這本書還是最早介紹三層開發的書,過去了這麼多年,在《Delphi4技術內幕》等書早已被我以5折賣掉的今天,它依然在我的書架上佔有一席之地。

xingzhou:我使用ADO編程也是從李維的書開始學習的,記得是《Delphi 5.x ADO/MTS/COM+高級程序設計篇》。

grhunter:李維的分佈式多層系統系列(包括《Delphi 5.x分佈式多層應用系統篇》、《Delphi 5.x分佈式多層應用電子商務篇》、《Delphi 5.x ADO/MTS/COM+高級程序設計篇》和《Delphi 6/Kylix2 SOAP/Web Servic程序設計篇》等),是Delphi多層應用程序設計不可多得的專門讀物,筆法引人入勝、在中文類Delphi讀物中堪稱佼佼者。

Hubdog:李維無疑是分佈式數據庫開發書籍中的精品,這些書涵蓋了用Delphi5開發分佈式多層應用程序涉及的必要技術,從討論如何使用Delphi建立分佈式多層應用系統開始,一直深入剖析到如何開發高效率的多層應用系統,讓你對於Delphi的MIDAS和分佈式對象技術瞭如指掌。凡是剛開始使用MIDAS進行開發人都會遇到系統效率極其低下和DCOM配置的惱人問題,李維在這幾本書中願意將他開發的寶貴經驗出版,與大家共享,是值得我們慶幸的。

grhunter:但讀者應該認識到,該系列圖書介紹的多層分佈應用,大體上是基於Borland自己的平臺,且例子太過簡單,直接用於實戰後患無窮。不過,假使讀者抱着“瞭解多層分佈式應用”的心態去閱讀,則會得益匪淺,關鍵在於不可盡信書中所言。

xingzhou:李維的書屬於嚐鮮一類,基本上都是介紹Borland的新產品、新技術,作品就好比Borland的科普讀物,用來入門再好不過,但是有了一定的工作經驗後,就需要自己摸索了。正所謂“師傅領進門,修行在自身”。 

Hubdog:另外,這些書介紹的是Delphi自帶的MIDAS三層開發架構,更在大型系統中,像BEA的Tuxedo和Weblogic和IBM的Cics,MQ和WebSphere等中間件一統江山,即便在中小規模的系統中,MIDAS也遠不是主流產品,實際成功的案例很少,而與之相比微軟自己的COM+和Asta等第三方的中間件產品在穩定性和簡便性上無疑是要佔據上風的。

Hubdog:至於說大陸相關的書籍,雖然出了很多,但是苛刻的說,沒有什麼好書,大部分都是簡單將Delphi在線幫助中關於數據庫開發部分的文檔翻譯過來而已。雖然有些實例開發方面的書,但是在深度上都無法同李維的書相比。

grhunter:再推薦幾本其他的書。Keith Wood的Delphi Developer’s Guide to XML,是目前唯一一本全面介紹XML技術在Delphi中應用的書籍,該書組織結構(從XML規範、DOM規範到各廠商對DOM/SAX的API實現到真實世界中的具體應用)得當,具有相當強的通用性與指導性。作者長期爲Delphi Informant Magazine撰稿,文筆質樸直白,往往一語中的,廢話較少。Alex Fedorov等人的Advanced Delphi Developer's Guide to ADO和Kudzu等人的Delphi Developer’s Guide to Communication Programming,是所屬專門領域中的典範之作。

Hubdog:李維寫的《Delphi6 Soap/Web Service設計篇》對於當前熱門的很多技術如Soap, Web Service和UDDI等做了詳盡的介紹,對它們的優缺點也做了中肯的評價,對未來的技術發展做了很好的前瞻。但是,目前Web Service還處於一個快速發展的階段,很多規範還不完善,應用程序也還沒有大規模的使用這類技術,因此我覺得這本書比較適合作爲技術儲備,實際的意義還不是很大。另外這本書對於Soap的基礎XML沒有太多涉及,也算是美中不足吧。


總結

grhunter:川菜以博採諸家所長而終獨樹一幟,Delphi開發者的閱讀面同樣也不宜太過狹窄。我想,除Delphi書籍之外,以下三類書籍,也應該有所涉獵:一是Windows系統原理和API參考,一是軟件工程,一是建模和OO(面向對象)原理。更高明的讀者,還可以從哲學和其它一切書籍中體悟到程序的真諦。

Hubdog:總的來說,Delphi的書籍到目前爲止都還是比較偏重於應用。

grhunter:Delphi能在微軟開發工具狂轟濫炸之下屹立不倒,其原因有二,一曰界面親切,二曰重在應用。合二爲一,就是所謂RAD(Rapid Application Development,快速應用開發)。自然 ,Delphi相關書籍也處處凸顯出“注重實用”的特點。

xingzhou:上面介紹的經典書全是海外版,與C++等語言的狀況如同一轍,其原因值得深究。

grhunter:這說明國內缺少大家,缺乏經驗豐富、學識深攫的高手。

Hubdog:許多經典的外版書引進後,讀者反映不好,說明國內的翻譯水平也亟待提高。

grhunter:是啊,如Don Taylor在與另外兩位作者合作的Delphi Programming Explorer一書的最後部分中,甚至採用偵探小說的形式來描述Delphi數據庫應用開發技術,而且其情節之曲折、文筆之用心,絲毫不亞於大部分“真正的”偵探小說。Marco Cantu、Steve Teixeira(及其寫作小組)、Charlie Calvart等人的著作,可以一再修訂出版,而每一版本的推出,都受到Delphi開發者的踊躍追捧,這與作者彰顯的文字風格也不無關係。遺憾的是至今幾乎尚未見到過一部真正能夠完全展現原著風貌的中文譯本。一本區區幾百頁的書,譯者多達數人以至十數人,其譯作質量可想而知。連基本的術語、語法邏輯都要弄錯,更談不上什麼文字的風格了。

xingzhou:情況相比前幾年已改善不少,希望出版社能真正重視這方面的問題,讓經典書籍真正成爲精品。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章