《參透delphi》書評(píng)
這是本幾乎與我擦肩而過的書。
眾所周知,國(guó)內(nèi)delphi的好書寥寥無幾,個(gè)中原因毋需我多言。當(dāng)你有了幾年delphi開發(fā)經(jīng)驗(yàn)后,國(guó)內(nèi)出版的delphi書籍,我想你差不多應(yīng)該都能耳詳目聞,就那么少數(shù)幾本,國(guó)外經(jīng)典倒是不少,可你除了牙根癢癢地去amazon轉(zhuǎn)轉(zhuǎn)外,就只有羨慕c++/
java程序員的好福氣了——名作經(jīng)典基本上都有中譯本和影印本,想比之下,delphi方面的曾經(jīng)有過影印本嗎?即使是拿譯本來說,能否快速說出十本?你只能把目光轉(zhuǎn)向國(guó)內(nèi)——這下好了,百花齊放,萬草共長(zhǎng)——delphi書籍可是計(jì)算機(jī)圖書市場(chǎng)的涌涌大流也??!所以,年中在china-pub上見到這本書,頗對(duì)此書名不以為然——深圳李戰(zhàn)已有文章《悟透delphi》(delphi的原子世界),此書與之只有一字之差。我看了看目錄,沒怎么仔細(xì)瀏覽,就看到第二部分的“用戶界面設(shè)計(jì)”,洋洋灑灑倒也百十頁,于是以為又是市面上那種常見的垃圾,便跳將過去,不再理會(huì)了。偶然的一次機(jī)會(huì),和朋友去八卦嶺買書(呵呵,進(jìn)門第二家,深圳的朋友有空還是多去跑跑,就是china-pub深圳分店,全場(chǎng)8折,環(huán)境也不錯(cuò),想節(jié)約5塊錢送書費(fèi)就直接跑去算了,不過咱們兄弟大都在南山,還是送書劃算:),看到了這本書,于是隨手翻翻,看到談虛方法時(shí),就仔細(xì)看了一下——既然講虛方法,那離了VMT恐怕不會(huì)有個(gè)透徹的理解,但很少有書談到VMT,即使是Marco Cantu的Mastering系列,也是猶抱琵琶地稍稍點(diǎn)點(diǎn),不注意還看不到(國(guó)慶去逛書店,發(fā)現(xiàn)d7的版本又
翻譯出來了,真是快——翻譯的快,換人了),而手冊(cè)系列的開發(fā)指南,基本上連OP都講的不多,我看到的第一篇講VMT的文章就是delphi的原子世界,另外就是delphi in a nutshell了,雖然較為深入,但篇幅太短, Ray Lischner惜墨如金,只留一個(gè)vmt.exe讓你自己去體會(huì),但已是寶庫(VCL)透出一縷光芒來!另外一篇?jiǎng)t是蟲蟲的《天方夜潭VCL》,同樣精彩——當(dāng)我看到作者推測(cè)動(dòng)態(tài)方法表與虛方法表基地址的區(qū)別時(shí),我知道,我對(duì)這本書的第一看法錯(cuò)了!事實(shí)上,我對(duì)動(dòng)態(tài)方法表理解不深,雖然Ray Lischner在書中列出了一個(gè)動(dòng)態(tài)方法表的布局,但我常常一翻而過,沒有去深入研究,而看到這本書,看作者饒有興趣地做出推測(cè)和驗(yàn)證,倒也讓我興趣盎然:)可以說,《參透delphi》的精粹所在,就在第一部分“Object Pascle語言精義“這一部分!
系統(tǒng)地學(xué)習(xí)OP,不需要太多的書籍,看看Marco Cantu的Pascle精要,再仔細(xì)地學(xué)習(xí)delphi附送的object pascle參考手冊(cè)(國(guó)內(nèi)有中文版),那么OP的基礎(chǔ)已經(jīng)打好(很多人都抱怨沒有OP方面的書,那么請(qǐng)你先仔細(xì)研究OP參考手冊(cè)吧?。┰偕钊?,就可以看Mastring系列的前幾章,另外,則是這本,我毫不掩飾對(duì)這本書的喜愛——尤其是第一部分的九章!舉個(gè)小例子,第7章,p201-204,reintroduce關(guān)鍵字,重引入與重定義,仔細(xì)地解釋這個(gè)關(guān)鍵字的書籍倒是不多,這本書的例子就很清晰,讓初學(xué)者能夠很快地有個(gè)了解(看看Aanders在c#里的加的”new“關(guān)鍵字——我說的不是用來create對(duì)象的那個(gè),呵呵:)再如第二章”子程序參數(shù)“一節(jié),關(guān)于參數(shù)的類型這種非?;A(chǔ)卻又非常重要的知識(shí),在開發(fā)人員指南里,僅僅只介紹了值、引用和常量參數(shù),對(duì)于out和untyped參數(shù)竟然提都未提!是否兩位作者覺得太基礎(chǔ)而沒有必要解釋?:)而國(guó)內(nèi)的很多書籍亦是如此,仿佛是什么”高深“的理論而不用給初學(xué)者解釋:(我不得不承認(rèn),國(guó)內(nèi)的delphi書我看的還是太少,除了OP手冊(cè),介紹的比較詳細(xì)的就算這本書了,雖然是簡(jiǎn)單的小細(xì)節(jié),卻也看的出著書人的態(tài)度——如果作者總是站在讀者的角度來寫書的話,那么至少不會(huì)讓讀者讀書讀的云里霧里,如入深山密林之中,茫然不知方向,這種不為讀者考慮的書太多,不是語句前后矛盾,就是明顯拼湊剪切,或者是代碼根本調(diào)不通——看看以前的的X望和現(xiàn)在的X思出的書吧?。峙埋R上又會(huì)有人對(duì)號(hào)入座來罵我吧:)而這本書,字里行間,我常??梢钥吹阶髡邔憰膰?yán)謹(jǐn)態(tài)度,更多的是一個(gè)真正的delphi愛好者對(duì)delphi的鐘愛和其寶貴的學(xué)習(xí)經(jīng)驗(yàn)和研究!與市面上僅為想從讀者身上撈桶金而”拉“書的人(我稱這種人為”拉“書而不是“寫”書),高下立判!我常常希望那些“拉”書的人根本不懂delphi,這樣至少會(huì)讓我得到一些安慰——delphier還都是女神的仰慕者而不會(huì)去褻瀆她——可惜,“拉”書的常常也是所謂的“delphier”!……抱歉說離題了:)
這本書的前9章,基本上對(duì)OP有了一個(gè)較深入的介紹和剖析,從這一點(diǎn)來說,這本書并不是那種從書名看是深入,從內(nèi)容看卻是入門的書籍,我個(gè)人認(rèn)為至少應(yīng)該有過通讀過一遍開發(fā)指南系列和Mastring系列的閱讀經(jīng)歷后看這本書才會(huì)更容易理解和體會(huì)其中的精粹(題外話,如果初學(xué)者覺得開發(fā)人員指南太厚而不敢下手乃至希翼找到一條終南捷徑的話,我勸你還是放棄delphi,因?yàn)檫@本書會(huì)給你打下delphi編程的堅(jiān)實(shí)基礎(chǔ),沒有學(xué)習(xí)過指南系列的delphi編程者簡(jiǎn)直讓我不敢想象——不是高的駭人就是低的駭人:)這部分可以說是OP參考手冊(cè)內(nèi)容的深化和細(xì)化,另外加上作者自己的探測(cè)和研究(這一部分更為深入和值得研究),所以,僅僅是這一部分,我覺得就值得個(gè)人購買(如果尚在讀書,那我勸你還是先咬咬牙把開發(fā)指南買下通讀——等看完后再考慮這本書)另外要提的是遍布全書的注釋——幾乎每頁都有——這也看到了作者的嚴(yán)謹(jǐn)態(tài)度,很多似是而非的概念,作者常常會(huì)以提示的方式詳細(xì)列出,容易混淆的地方常常會(huì)跟類似的概念對(duì)比加以區(qū)分,這點(diǎn)讓我覺得很值得贊賞。
除此之外,我覺得頗有價(jià)值的則是第四部分,”
操作系統(tǒng)核心編程“部分,24章消息的處理和攔截,子類化,26章鉤與dll,27章進(jìn)程與內(nèi)核對(duì)象,30章虛擬內(nèi)存,31章區(qū)域?qū)ο蠛瓦M(jìn)程間通訊,可以說是這部分的精彩之處。眾所周知,深入windows內(nèi)核編程方面,delphi的書籍少之又少,我個(gè)人覺得,能把Jeffey Richter的著作內(nèi)容以delphi實(shí)現(xiàn)一遍,抑或在腦海里設(shè)想delphi該如何實(shí)現(xiàn),那我想你的水平都會(huì)獲得提高,而對(duì)于沒有c++功底而又需要這方面知識(shí)的讀者,我想這部分的內(nèi)容會(huì)讓你滿意。
第四部分,
組件開發(fā)與IDE擴(kuò)展,這部分有我滿意的地方,也有我很不滿意的地方,比較讓我滿意的是第18章,RTTI這部分。雖然開發(fā)指南也有介紹,但我覺得在代碼量和深入探討上都不足以讓我滿意,所幸,這一章無論是從代碼的數(shù)量還是理論的探討,都讓我覺得非常滿意!而組件開發(fā)部分,我覺得比開發(fā)指南要遜色的多,更讓我覺得不滿的是第22章,接口與com這章,可能是看過Eric的delphi com編程一書的緣故,對(duì)比此章,我覺得這章即使是從概念上或?qū)嵶魃隙紵o法讓對(duì)接口不太了解的讀者有更進(jìn)一步的理解,更遑論com了,所以我覺得如果作者有心寫第二版的話,這部分應(yīng)該有所加強(qiáng)。第23章OTA部分,作者可能不是很擅長(zhǎng),所以了了帶過,個(gè)人覺得如果要學(xué)習(xí)這方面的知識(shí)的話,可以看看陳省的深度探索,研究一下GExperts的
源碼,去bdn搜索一下,有幾篇非常重要的文章。
最后,就是本書的雞肋部分——第二部分:用戶界面設(shè)計(jì)。我不太了解為什么作者把這部分放上去,因?yàn)楦鷇elphi的深入探討沒什么關(guān)系,而且即使是“組件高級(jí)用法”,我覺得價(jià)值也不大——這些內(nèi)容,有“葵花寶典”,有各種版本的技巧集,或者網(wǎng)上搜索一下,一般應(yīng)用已經(jīng)足夠,作者沒必要再添加這部分,如果有第二版的話,我希望能把這部分去掉,然后深入op部分,加強(qiáng)接口與com部分,擴(kuò)展系統(tǒng)編程部分,那么就更對(duì)的起“參透”二字了!
另外要說的是,雖然注釋能夠代表著書人的嚴(yán)謹(jǐn)態(tài)度,但是太多就有點(diǎn)過猶不及了,這本書的注釋讓我很贊賞,但是卻也有點(diǎn)太多——有些章節(jié)幾乎每頁都有了——與其這樣,有些內(nèi)容不如放到正文中來,而有些注釋我覺得就可有可無,注釋再稍少點(diǎn)會(huì)覺得整體的平衡感要好些——個(gè)人感覺:)
總體評(píng)分:5分滿分的話,我給4分。國(guó)內(nèi)相關(guān)書籍的話,我覺得這本目前應(yīng)該是最好的——如果能有更多比這本書更好的書出現(xiàn)那就是delphier最樂于看到的事情了:)。
就此打住,如果不是經(jīng)濟(jì)緊張的話,推薦購買。