書評:C++網路程式設計,卷2 by Matthew Wilson (轉)

amyz發表於2007-08-14
書評:C++網路程式設計,卷2 by Matthew Wilson (轉)[@more@]

書評:C++,卷2 by Matthew Wilson :namespace prefix = o ns = "urn:schemas--com::office" />

Title:    C++work Programming, Volume 2: Systematic Reuse with ACE and s
Authors: Douglas C. Schmidt and Stephen D. Huston
Publisher: Addison Wesley Professional, 2002
Pages: 384
Price: $39.99

中文版
書名:《C++網路程式設計:基於ACE和的化複用》
譯者:馬維達
出版社:華中科技大學出版社
出版時間:待定(已完稿)
價格:待定

  由Douglas Schmidt和Stephen Huston撰寫的C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks,是他們的C++ Network Programming, Volume 1: Mastering Complexity with ACE and Patterns的續篇。卷1聚焦於將低階的、特定OS的網路原語封裝和抽象進ACE OS適配層和C++ wrapper facade(包裝外觀)中。卷2建構於這一基礎之上,所處理的是框架的各種要點,以及怎樣將ACE用於系統實現——這是透過增強並擴充套件卷1介紹的日誌服務示例來完成的。

  第1章充當了全書、以及ACE所採用的/框架方法的引論。本章的進展艱難而緩慢,直到兩位作者開始討論一些細節問題;我的精神上的迷霧因此而升起來,我已經等不及要讀第3章。

  第2章透過全面地涵蓋服務、,以及的某些細節問題,繼續引介一些基礎性的概念。服務被表徵為持續時間短的 vs. 持續時間長的、內部的 vs. 外部的、有狀態的 vs. 無狀態的、分層的 vs. 整體式的。作者給予了伺服器與配置以類似的深入論述。本章的進展也有一點艱難,然而卻也有趣而有用。

  從第3章往後是本書的實際內容部分,涵蓋了ACE中的各種框架。從這時起,我開始感覺到真正的興趣。每一個框架——包括Reactor(反應器)、Service Configurator(服務配置器)、Task(任務)、Acceptor-Connector(接受器-聯結器),以及Proactor(前攝器)——都得到了全面的論述,並且結合了真實世界中需要解決的問題、框架的設計,以及對可移植性和所帶來的必要或短處的確認。

  最好的一章是最後一章:關於ACE Streams框架的第9章。透過演示怎樣利用ACE_Task、ACE_Module和ACE_Stream類、將重要的功能整合進系統中,本章展示了ACE的效用和力量。這是強大、幾乎plug-and-play的,有助於回答我們所可能有的任何疑問,比如:是否要投入並非微不足道的精力來學習ACE。

  在討論各種OS時,兩位作者並無偏袒,這讓我覺得愉悅和新鮮(在這個問題上,對Timer類、(),以及ACE_WFMO_Reactor類的描述特別有趣)。再聯絡到他們在實現ACE及對其進行描述時所採取的注重實效的方法,這樣的公正具有極大的吸引力,並且表明了作者的信心:他們的確創造了一種高質量、且不依賴於平臺的解決方案。

  總的來講(儘管並非全部),本書的風格很好。作者大量使用了UML,這促進了本書的連貫性(儘管這也使得我多次衝向我的書架)。而在缺點方面,字型似乎太大了,特別是在圖中,以及所摘錄的程式碼中;這是我第一次讀到這樣一本書,它好像是從許多裂縫中“爆發”出來的。儘管作者(或是他們的編輯)勉力使程式碼不跨頁,我還是希望能得到更多的東西(當然,書籍不可能像1600 * 1200的螢幕一樣,但如果使用較小的字型,就可以排印出更多的程式碼。)

  在書中有相當多(61)的副欄(Sbar),它們提供了讓人愉悅的、小小的資訊片段。但是,這也有一點讓人分心。因為它們有那麼多,並且比正文更容易閱讀,它們太容易讓人把思路給丟掉了。哦,你最好喜歡和reify(使……具體化)這個詞呆在一起,因為我從未見過哪本書裡面有這麼多reify。

  書中各章還有一個毛病,它們總是在反覆地強調本書的一個基本觀點,即複用是好的,ACE推動了複用。這沒有必要,因為前兩章已經清楚地表達了這一觀點。

  很好,參考文獻讓人印象深刻;我的書籍“Wish List”的大小因此而翻了一番。而術語表非常的好。所有的書籍都應該有這樣的術語表!

  很奇怪,儘管本書是由Addison-Wesley出版的,書中有一些圖表的繪製很差。比如說,方框和方框間的線段剛剛能讓人辨認出來。而且,還有一些製作上的錯誤:比如以“ACE_Service_ureHandler”開頭的副欄標題,應該是“ACE_Service_Handler”。但願我所擁有的只是贈閱版,而你的書不會有類似的問題。

  總的來說,要想不對本書留下深刻印象是不可能的(如果這不是過譽的話)。我發現自己馬上有了一種強烈的願望,想要更多地(重新)閱讀關於模式的書籍資料(更不用說在參考文獻中的那些寶貴財富),並且想要衝出去使用ACE開始開發一個分散式專案。我期望著能夠在真實的環境中檢驗ACE所聲稱的:在生產率上獲得極大的收益,而又不犧牲靈活性和(特別是)效率。引用第1章的總結中的話:“持續的重新發現和發明……使得代價……太長久以來一直居高不下”。

  我想要說,對於任何想要掌握分散式網路程式設計的人來說,本書以及卷1都是有用的——無論他們最終是否使用ACE都是如此。(而如果ACE的聲稱有一半是真的,我認為ACE就應該是首選的開發庫,特別是在面向多種平臺的情況下)。它不是一本初學者書籍,也並非特別容易閱讀(與Meyers/Sutter/Dewhurst的易於消化的風格非常不同),但它資訊豐富、有趣,並且沒有給人以遺漏了任何重要內容的印象。但是,它好像的確依賴於大量預備知識,特別是關於模式方法的知識,所以,首先閱讀Design Pattern[1]和Pattern-Oriented Software Architecture[2]將會是聰明之舉。

附註

[1] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns (Addison-Wesley, 1995).

[2] Douglas C. Schmidt. Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked s (John Wiley & Sons, 2000).

關於作者

Matthew Wilson holds a degree in Information Technology and a PhD in Electrical Engineering and is a software development consultant for Synesis Software. Matthew's work interests are in writting bullet-proof real-time, GUI, and software-analysis software in C, C++, and . He has been working with C++ for over 10 years and is currently bringing STLSoft.org and its offshoots into the public ain. Matthew can be contacted via matthew@synesis.com.au.

 


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

相關文章