書評:C++網路程式設計,卷2 by Matthew Wilson (轉)
書評: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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [微博活動]《UNIX網路程式設計》 卷1 轉發贈書程式設計
- 計算機程式設計藝術 第2卷 (轉)計算機程式設計
- UNIX網路程式設計 卷2:程式間通訊程式設計
- UNIX網路程式設計 卷2 原始碼使用程式設計原始碼
- 設計卷積神經網路CNN為什麼不是程式設計?卷積神經網路CNN程式設計
- 《程式設計師健康指南》書評程式設計師
- C++程式設計批評系列 繼承的本質(轉)C++程式設計繼承
- C++程式設計模板2C++程式設計
- Matlab程式設計之——卷積神經網路CNN程式碼解析Matlab程式設計卷積神經網路CNN
- 卷積神經網路-2卷積神經網路
- 《高質量C++程式設計指南》讀書筆記(一) (轉)C++程式設計筆記
- (轉)Linux下 C++呼叫C 實現socket網路通訊程式設計LinuxC++程式設計
- 《實用Common Lisp程式設計》書評Lisp程式設計
- 開啟IT程式設計師創業之門,《網際網路創業啟示錄》書評有獎徵集程式設計師創業
- Linux學習路線及網路程式設計經典書籍(轉載)Linux程式設計
- Java 2 圖形設計卷II——第2章 applet和應用程式 (轉)JavaAPP
- Java的網路功能與程式設計 一 (轉)Java程式設計
- 《程式設計師》試刊二卷首語 (轉)程式設計師
- 程式設計書寫規則 (轉)程式設計
- 輕量級卷積神經網路的設計卷積神經網路
- 程式設計師跳槽月,網際網路公司求職推薦書單程式設計師求職
- JAVA網路程式設計(2)TCP程式設計Java程式設計TCP
- C++程式設計最佳實踐(轉)C++程式設計
- C++的程式設計典範 (轉)C++程式設計
- C++模板超程式設計[metaprogram] (轉)C++程式設計
- 高質量C++/C程式設計指南(第2章 程式的版式) (轉)C++C程式程式設計
- 卷積神經網路 part2卷積神經網路
- 《程式設計人生》書評--一本值得讀兩遍的書程式設計
- 關於程式設計師寫文件(網路轉載)程式設計師
- 好書妙評之《程式設計師的數學》程式設計師
- 好書妙評之《卓越程式設計師密碼》程式設計師密碼
- C++模組2:物件導向程式設計C++物件程式設計
- C++程式設計基礎(2)變數C++程式設計變數
- 輕量級卷積神經網路的設計技巧卷積神經網路
- 讓程式設計的熱情感染你--《實用Common Lisp程式設計》書評程式設計Lisp
- 《計算機程式設計藝術 卷2》出版進度備忘計算機程式設計
- 網路通訊程式設計程式設計
- 網路協程程式設計程式設計