亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

專家書單推薦:C++藏書閣

系統(tǒng) 2568 0

本文轉(zhuǎn)載自:http://news.csdn.net/n/20060829/94184.html

選擇現(xiàn)在來推薦C++圖書,看似蹊蹺,實則是有原因的。我們的專欄去年初從Java圖書開始,一年多的時間里始終對C++觸及甚少。C++程序員出身的我,已經(jīng)受到了不少好友和讀者的質(zhì)疑。去年是C++誕生20周年(從1985年第一個商業(yè)實現(xiàn)的發(fā)布算起),世界各地包括國內(nèi)都舉行了不少活動,當時本來已經(jīng)動筆寫了一個初稿,也想來

個獻禮,但是稿成之后,看看又不滿意,加之俗務纏身,就放了下來。這一拖,又是小半年。

  終于促使我“重續(xù)前緣”的是今年以來發(fā)生的兩件事。一是國內(nèi)又一輪C++好書扎堆兒出版,增加了本文的必要性,否則,榮耀先生在2004年所寫的《C++程序設計之四書五經(jīng)》( 上篇 下篇 )幾乎不可能超越。

  第二件則是《C/C++User’sJournal》的停刊。最開始在comp.lang.c++新聞組上讀到這條消息時,我還以為是哪位反C++的老兄開了個不懷好意的玩笑呢:“C和C++正在走向消亡。”可是CUJ的主編P.J.Plauger很快就出來予以證實——這一切是真的!已經(jīng)出版20多年、匯集了眾多C++頂尖專家的CUJ永遠停刊了。

  C++的現(xiàn)狀到底如何?它是否像那位老兄所說的“isdying”了呢?當然不是。TIBOE的編程社區(qū)指數(shù)的趨勢顯示,這純粹是一種不負責任的以訛傳訛。從圖一可以看到,C++雖然絕對比例有所下滑,但是幾乎始終占據(jù)三甲之列,尤其是近一年來,非常穩(wěn)定。按表一的數(shù)據(jù),C++的上漲幅度甚至高于因為Web2.0火爆而迅速躥紅的PHP、Java Script、Ruby,也高于C#、Python這樣的時髦語言,只遜于Java和VB。Source forge.net上項目使用的語言統(tǒng)計數(shù)據(jù)也同樣證明了這一點,表二可以說明這一點。C++的表現(xiàn)雖然不如Java,但是非常穩(wěn)定,而且穩(wěn)中有升。

  當然,正如Plauger解釋停刊原因時所說的,技術(shù)和技術(shù)雜志/圖書的生命周期存在很大差異。以內(nèi)容為主的雜志,生命周期最短,而圖書次之,而技術(shù)本身的生命力往往要強得多。因為人們買書和雜志,更多的是為了了解新東西。當技術(shù)進入人們的視野,開始成為關注的焦點時,相關雜志和圖書也就進入了黃金期。如果一項技術(shù)不能很快成為主流,圖書和雜志將很快消失;而一旦成為主流,進入平穩(wěn)發(fā)展期,圖書和雜志的衰落也就不遠了。北美Java相關圖書的大局完全符合這樣的規(guī)律。1990年代后期的火爆,之后迅速崩潰,而后再次興起,再就是目前的漸歸平淡(國內(nèi)正好慢半拍,但趨勢是相同的)。而C++標準化完成于1998年,雜志又堅持了8年,平心而論,已經(jīng)相當不錯了。CUJ的作者陣容是罕見地強大,在我看來,任何一本Java雜志至今都未曾達到這樣的高度,這從另一方面也說明了C++專家陣容的實力和良好風氣。也許我們可以自我安慰的是,撰寫文章的機會更少之后,這些專家也許能夠奉獻出更多好書。

  這些年來,C++方面的圖書出版也經(jīng)歷了類似的過山車式的大起大落。本文的作者之一就是2002年前后高峰時期曾經(jīng)參與推波助瀾的親歷者。在2000年之前,C++雖然久已成為主流語言,但是國內(nèi)幾乎沒有一本像樣的標準C++圖書,許多人腦中的C++要么是C的一種升級,要么與MFC或者VisualC++混為一談。而這種情況在2002年前后被出版界一擁而上,戲劇性地改變了。到2004年,幾乎所有重要的C++名著都已經(jīng)奇跡般地引入國內(nèi)。時至今日,雖然C++圖書出版品種萎縮,但是圖書的銷售非常穩(wěn)定。按本文作者之一為《程序員》雜志撰寫的2005年綜述《圖書:技術(shù)趨勢晴雨表》的分析,在編程語言類圖書中,C++仍然表現(xiàn)最佳,其次是VB,然后才是Java,與TIOBE的數(shù)據(jù)基本一致。

  接下來,我們還是按照推薦Ja鄄va圖書的老套路,將C++圖書分為綜合/巨著、入門、中級和專題四部分介紹。本月是前兩部分。因為已有的相關推薦已經(jīng)比較成熟,我們把重點放在近來出版的新書上。

綜合/巨著

《C++程序設計語言(特別版)》
Bjarne Stroustrup
中文版:裘宗燕 譯
機械工業(yè)出版社
影印版:高等教育出版社

專家書單推薦:C++藏書閣   程序設計語言的書,有一個很有趣的現(xiàn)象,就是語言發(fā)明者幾乎都要寫書,而語言開發(fā)年代越新的,書的質(zhì)量似乎越差。C和C++以及Perl的夫子自道均成為不可動搖的經(jīng)典,相比之下C的口碑最好,20年后仍然首屈一指;Java(人民郵電出版社即將出版)處于中點,雖然也堪稱經(jīng)典,但是因為競爭激烈,不如前面幾部著作那樣不可替代;PHP(O’Reilly出版)又次之;C#更次之,幾乎等同于文檔;到了Ruby作者的那本Nutshell(O’Reilly出版),甚至罵聲都不少了。

  本書不適合初學者,內(nèi)容較深,而且許多地方在你有了一定經(jīng)驗之后再去體會,才會發(fā)現(xiàn)其高妙之處。但是對于中高級讀者,本書完全當?shù)米肿种榄^的評價。從某種意義上說,許多其他中級C++圖書中的條款、經(jīng)驗之談,讀起來似乎新鮮,但是仔細翻看本書,其實Bjarne早已經(jīng)談到。無怪乎有傳說Bjarne對Scott Meyer并不感冒,曾表示后者無非是收集了一些自己四處流露的思想成書,卻鑄就大名(小道消息,切勿外傳)。稍微遺憾的是,裘教授的翻譯雖然已屬難得,但是不夠平易,有些地方增加了閱讀的門檻,書中的索引錯誤較多,而且按中文排序,反而不方便查找。

  Stroustrup的另一本著作《C++語言的設計和演化》,也值得推薦,要想成為真正的C++高手,就需要了解各種特性的來龍去脈,此書絕對不應錯過。當然,對于語言本身學習并非必需。

專家書單推薦:C++藏書閣 《C++Primer中文版》(第四版)(新書!)
Stanley B.Lippman, Josee Lajoie, Barbara E.Moo
中文版:蔣愛軍等譯
人民郵電出版社
第三版影印版:人民郵電出版社

  本書經(jīng)常被人與Stroustrup的著作相提并論,甚至有“倚天屠龍”之稱。當然,Stroustrup書中那種深不可測的感覺,不是本書作者追求的目標,C++最佳教本是本書最好的定義。不過,本書又不僅僅是教本而已,其中也處處體現(xiàn)著大師級作者的豐富經(jīng)驗和真知灼見。

  與一般修訂不同,第四版中作者幾乎完全重寫,我們甚至找不到什么完全相同的話,其決心之大,可見一斑。在標準并無更新的情況下,這樣大的改動,原因何在呢?在我看來,這體現(xiàn)了C++界在面對Java、C#等更加“簡單的”語言的挑戰(zhàn)下達成的一種共識。其核心,就是擺脫歷史負擔,將C++當作一門新語言教學,通過標準庫、最佳實踐的強調(diào),降低C++學習和使用的難度。

  從我自己的閱讀體驗來說,本書第三版抱負太大,過于求全,按照面向過程、基于對象、面向?qū)ο蠛头盒退姆N編程風格組織內(nèi)容,對于初學者來說是存在負作用的。第四版一開始就使用標準庫,而且素材的組織更加流暢,可讀性大大提高,學習曲線大大縮短。而現(xiàn)代編程風格的融入,又使本書仍然顯得卓然不群。如果說第三版推薦給初學者閱讀我還心存疑慮的話,第四版就沒有任何障礙了。值得一提的是,本書的翻譯非常優(yōu)秀,不輸于任何已知的名家。

  附:《C++編程思想》(第二版)卷1:標準C++導引,卷2:實用編程技術(shù)
Bruce Eckel
中文版、影印版:機械工業(yè)出版社

  本書的名氣之大,幾乎不在以上兩種巨著之下,尤其是卷2出版之后。其優(yōu)點在于融入了最新的業(yè)界實踐,比如防御性編程、測試驅(qū)動開發(fā)、設計模式等等。當然,對面向?qū)ο笏枷氲年U釋也是Bruce Eckel的成名招牌。之所以只能獲得一個列席的資格,原因出在翻譯上。

入門

專家書單推薦:C++藏書閣 《Accelerated C++中文版》
Andrew Koenig, Barbara E.Moo
中文版:中國電力出版社
影印版:機械工業(yè)出版社

  C++入門圖書極多,《C++ Primer》其實也可以算作入門書,尤其是第四版。但是,更多地被人(包括Bjarne Stroustrup)推薦的入門書卻非本書莫屬。當然,與競爭對手相比,本書定價和篇幅上的優(yōu)勢非常明顯。作者夫婦都是最早在貝爾實驗室與Stroustrup并肩作戰(zhàn)的先驅(qū),Moo女士甚至擔任過cfront編譯器的項目經(jīng)理,是Stroustrup等人的領導。他們在斯坦福大學采用標準庫優(yōu)先的方法,使學生一上來就能編寫有用的“大”程序,取得了很好的效果。如今這種方法已經(jīng)成為一種共識。需要注意的是,中文版的翻譯問題較多。

專家書單推薦:C++藏書閣   與此類似的是Lippman根據(jù)Primer縮編的《Essential C++》,因為結(jié)構(gòu)是第三版的,對初學者來說難度比較大,所以不再推薦。

《C++ PRIMERPLUS》(第5版)中文版
Prata 孫建春 韋強譯
人民郵電出版社
《C++入門經(jīng)典》(第3版)(新書!)
Ivor Horton 李予敏譯
清華大學出版社

  這兩本書以及Deitel父子的C++屬于同一檔次的圖書,作者經(jīng)驗均非常豐富,圖書涵蓋較全,選材中規(guī)中矩,歷經(jīng)多版修訂,各方面都比較成熟,作為入門都是不錯的。相比之下,Prata的篇幅更加合適,而且我感覺他的敘事風格更符合大部分初學者的學習習慣。說明一點,以上的評價是根據(jù)原版做出,中譯本我們并未見到,歡迎購買了這三本書的讀者評價比較翻譯質(zhì)量。

中級

  中級圖書基本上是經(jīng)驗之談,講述如何實際編程、哪些地方容易出錯以及各種場合下的do和don’t的問題。有篇Amazon書評用一個妙喻很好地說明了中級和教程圖書的區(qū)別,教程是駕駛員手冊,而中級圖書是陪練。在真正開始駕駛時,誰都希望有一位專家在副駕駛座位上隨時提醒糾正。

  C++專家的實力在中級圖書層次得到了充分體現(xiàn)。Java和C#等等在此層次就遜色得多。Java只有Effective Java、PracticalJava以及人民郵電出版社新近出版的《Java解惑》三種,C#更只有Effective C#和Framework Design Guidelines(均將由人民郵電出版社出版)兩本,也許是語言本身使然?

專家書單推薦:C++藏書閣 《C++必知必會》(新書!)
Stephen Dewhurst 榮耀譯
人民郵電出版社

  本書的原名是C++ Common Knowledge,也就是常識之義。出版社的宣傳語是“最好的第二本C++圖書”。的確,掌握語言并有一定實踐經(jīng)驗后,這本書可以作為一個知識點的復查單,看看自己的C++知識和技能與一名合格的專業(yè)程序員還有哪些差距。Dewhurst的文字非常平易,很容易讀進去。這本書對于C++高手也是有用的:可以在周圍的同事詢問一些常識問題時,代為解答。本書得到榮耀這樣優(yōu)秀的譯者,更加增色不少。

Scott Meyers系列
《Effective C++中文版》
第二版:侯捷譯
華中科技大學出版社
第三版影印: 電子工業(yè)出版社
《More Effective C++中文版》
侯捷譯 中國電力出版社
《Effective STL》(新書!)
潘愛民譯  清華大學出版社

  長期以來,因為這個系列Scott Meyers在C++界的地位幾乎是一人之下,其影響之大,可想而知。Meyers的確是難得的優(yōu)秀技術(shù)作家,不僅在于他開創(chuàng)的Effective的寫作方式,更在于他精湛技術(shù)和透徹敘述的完美結(jié)合。這一方面Stroustrup其實是需要向他學習的。三本書各有偏重:EC是語言基礎和技術(shù),MEC是高級特性和設計,STL專講標準庫。值得注意的是,Effective C++一書已經(jīng)有了新版本,加入了模板、資源管理、多線程等內(nèi)容,而且素材非常新,涵蓋了Boost和TR1。對各種語言的比較相信很多讀者也會興趣盎然。Herb Sutter系列《Exceptional C++中文版》卓小濤譯中國電力出版社《More Exceptional C++中文版》於春景譯華中科技大學出版社《Exceptional C++ Style》(新書!)劉未鵬譯人民郵電出版社《C++編程規(guī)范》(新書!)劉基誠譯人民郵電出版社

專家書單推薦:C++藏書閣   近年來,Meyers在業(yè)界的二號地位已經(jīng)漸漸被Herb Sutter所取代。Sutter身兼C++標準委員會和微軟C++/CLI架構(gòu)師兩個角色,而且長期在CUJ上撰稿,包括生動有趣的“對話”專欄,還堅持主持新聞組中Guru of the Week,對社區(qū)的貢獻確實很大。當然,Exceptional三部曲,加上與Andrei Alexandrescu合著的Bible級的《C++編程規(guī)范》一書,無疑也是他得以確立今日地位的重要砝碼。

  Exceptional系列也是由條款組成,但是采用提問、解答的形式。準確地說,這個系列完全可以劃歸高級,因為連Scott Meyers都說自己經(jīng)常掉入其中題目的陷阱中。書中涉及的語言細節(jié)之深,其他地方很難看到。當然,最直接的作用,是進行自測或者測試別人。

  我們認為,《C++編程規(guī)范》一書是近年來最重要的一本C++新書。之所以這樣說,并非因為書中有什么別處沒有的新內(nèi)容,而是因為它的全面性(這本書其實是Sutter和Alexandrescu對博大精深的C++知識以及浩如煙海的C++文獻的一次總結(jié)和梳理,因此比其他中級圖書都要全面)和必要性——本書可以作為游歷C++世界的地圖,無論你處于什么層次,都可以通過它找到自己的位置,確定前進的方向。書中的文字極為凝練,許多文字都需要閱讀各條之后的文獻才能透徹了解。這是與其他類似圖書另一個不同之處。正因為此,我在翻譯過程中,曾經(jīng)發(fā)愿要像清儒注經(jīng)那樣做一個注釋極豐富的譯本,而且已經(jīng)為此收集了大部分相關的文獻。但是時間顯然成了無法逾越的障礙。盼望著還有實現(xiàn)的機會,也希望讀者能夠助我一臂之力。

《C++高級編程》(新書!)
Nicholas A.Solter,Scott J.Kleper
劉鑫 楊健康 等譯
機械工業(yè)出版社

  與前面介紹的Effective式圖書不同,本書是一本非常優(yōu)秀的中級教程,有些部分很像《C++編程思想》,比如對軟件工程的強調(diào)。但是本書不側(cè)重語言特性的介紹,而是涵蓋更加全面,而且更加貼近實戰(zhàn)。書的組織形式比較特別,主體是實例和知識點的總結(jié)梳理,但是總的架構(gòu)又與一般教程相同。如果說其他中級圖書都是通過上課來傳授駕駛知識的教練的話,本書就是一位陪你上路的真正的陪練。

  好了,本月要推薦的圖書就是這些,最后我們給出一個推薦的閱讀路線:對于初學者,應該從《C++ Primer中文版》第四版、Prata、《C++編程思想》或者《Accelerated C++》開始,當然Horton或者Deitel也可以考慮,在書店里翻看,根據(jù)自己的閱讀和學習習慣進行選擇好了。唯一的忠告是:不要選擇國內(nèi)自編的入門教程。在學習的同時,可以將《C++編程規(guī)范》和一本巨著放在一旁,閱讀對應的相關段落和章節(jié),如果有時間,做對應的習題。掌握基本特性后,可以對照《C++必知必會》和《C++編程規(guī)范》,并試著做一做Exceptional系列中難度較小的題目,檢查自己的學習效果。編程實踐時可以閱讀《C++高級編程》或者《C++編程思想》中的一些段落,當然,其他比較實用的軟件工程書也可以。這期間應該閱讀Effective系列,并挑選難度合適的Exceptional題自測。經(jīng)過這樣的錘煉,你應該已經(jīng)基礎非常扎實,可以步入C++的殿堂了。

表一TIOBE的編程社區(qū)指數(shù)

名次
2006.5

名次
2005.5

編程
語言

份額
2006.5

變化
2005.5

1 2 Java 21.31% +3.92%
2 1 C 17.69% -0.83%
3 4 C++ 10.93% +1.03%
4 5 PHP 10.22% +1.02%
5 6 VB 9.56% +1.93%
6 3 Perl 6.05% -4.53%
7 7 C# 3.27% +0.50%
8 8 Python 3.04% +0.56%
9 11 Java Script 2.19% +0.75%
20 30 Ruby 0.45% +0.14%

表二Sourceforge.net項目語言統(tǒng)計

語言

2006.5

2005.11

1.Java 16738 19049
2.C++ 16731 17914
3.C 15934 16586
4.PHP 12175 13791
5.Perl 6209 6342
6.Python 4542 5138
7.C# 2892 3830
8.Java Script 2779 3488
專家書單推薦:C++藏書閣 專家書單推薦:C++藏書閣 專家書單推薦:C++藏書閣

  首先我們需要更正 上次專欄 中的兩處錯誤。一是表二Sourceforge.net項目語言統(tǒng)計中兩列的時間弄反了,當然不會項目越來越少。二是除了原來所規(guī)劃的四部分中的“綜合/巨著”、“入門”兩部分之外,我們還講到了一些中級圖書,這與文中開始所說的“本月是前兩部分”不符。感謝于征和馬鴻飛兩位讀者來信指出。

  本月將繼續(xù)C++圖書的推薦,除了繼續(xù)中級圖書之外,再推薦一些專題類的圖書,根據(jù)讀者建議,我們將一些高級圖書并入專題部分。

  另外要告訴大家,上次推薦的Scott Meyers《Effective C++》第三版已經(jīng)開始在網(wǎng)上預訂,即將出版了。

中級(續(xù))

C++沉思 錄

Ruminations on C++

Andrew Koenig,Barbara E.Moo 著

黃曉春 譯

人民郵電出版社

  本書是兩位大師級作者從各種雜志上發(fā)表的文章中去蕪存菁,重新整理更新,匯集而成的一部經(jīng)典著作。雖然原版出版于1996年,但是作者根據(jù)當時的標準草案進行了修改,基本上是符合C++98標準的,沒有過時的問題。與前面我們推薦的其他中級圖書都不同,本書并不旨在討論語言本身的具體細節(jié),而是把重點放在如何用C++解決問題上。由于出自雜志文章,Koenig和Moo夫婦娓娓道來的平易風格顯露無遺,可讀性很強。在有了一些基礎知識之后,閱讀本書,可以在輕松的氛圍中對許多C++特性和功能有更加深刻的領悟。

  本書得到了BjarneStroustrup本人的推薦,而且?guī)缀跛蠧++推薦列表中都不可或缺,可見其重要性。中文譯本質(zhì)量不錯,有些令人奇怪的是,此書現(xiàn)在已經(jīng)很難買到了。

設計模式

Design Patterns

Erich Gamma 等著

李英軍 等譯

機械工業(yè)出版社

  顯然,任何一份C++推薦書目都不能缺少這部毋庸置疑的經(jīng)典,雖然除了例子采用C++編寫之外,本書的意義并不局限于C++領域。10多年之后,要想真正精通面向?qū)ο蠹夹g(shù),本書仍然是必由之路。稍微遺憾的是,隨著作者之一Vlis鄄sides的去世,本書曾經(jīng)有過的新版計劃已經(jīng)遙遙無期,很可能會不了了之。即使未來會有新版出現(xiàn),很可能也不會采用C++代碼作為示例了。

  初學者閱讀本書可能會感覺困難,因為其中精髓很多是出自Gamma的博士論文或者其他作者的學術(shù)論文。某種程度上而言,本書很有《論語》之類經(jīng)典微言大義的味道,不少看起來不大起眼的語句,實際上飽含深意,需要反復琢磨和研習。正因為此,后輩專家們又撰寫了許多闡發(fā)性的著作,去年底影印出版的《深入淺出設計模式》(東南大學出版社)采用圖文結(jié)合的方式,可讀性極佳。如果覺得這種讀圖方式有些“輕浮”,《設計模式精解》(第二版即將由人民郵電出版社出版)則是最佳選擇,書中透徹講述了設計模式背后的各個原則,有人稱之為《設計模式》的最佳闡釋版本。我們認為該書比較有利于初學讀者的,是作者用自己學習設計模式的經(jīng)驗來教學,很容易接受。此外,還應該向大家推薦的是James Coplien所著的《Advanced C++中文版》,出版于1991年。準確地說,這本書才是真正的C++模式圖書,因為其中講到的都是語言慣用法(idiom)級的模式。書中提出的CVA(共性與變性分析)為《設計模式精解》發(fā)揚光大,作為一種關鍵的面向?qū)ο蠓治龇椒ǎ蔀楹笳叩牧咙c之一。閱讀此書需要比較扎實的C++基礎,因為不少具體的建議已經(jīng)過時。讀者可以參考Amazon網(wǎng)站對此書的一個評論,論者很好地指出了比較重要的過時內(nèi)容。

C++經(jīng)典問答

C++ FAQs

周遠成 譯

中國電力出版社

  本書的問答形式對于某些讀者而言,可能是最佳的一種學習或者復習方式。本書的素材來自comp.lang.c++新聞組的常見問答,整理成書時,幾位管理員花了很大力氣擴展充實,最后的篇幅是網(wǎng)上版本的5倍,內(nèi)容非常全面細致,不僅比較深入地討論了C++語法和語意中比較容易誤解的引用、const正確性、虛函數(shù)、構(gòu)造函數(shù)與析構(gòu)函數(shù)、初始化列表、操作符重載等等,還覆蓋了異常、模板、RTTI等高級主題,尤為可喜的是,書中還超越C++本身,討論了面向?qū)ο笤O計問題。

  很遺憾,本書的中文版翻譯比較糟糕,而且似乎已經(jīng)絕版。讀者可以訪問網(wǎng)上版本,雖然沒有書全面深入,但是基本的問題都已經(jīng)包括,令人欣慰的是,網(wǎng)上版本還在不斷更新,比如在編程規(guī)范一節(jié)中就加入了《C++編程規(guī)范》的內(nèi)容和鏈接。網(wǎng)上版本有兩種中文譯本,都比較可靠。申旻的簡體翻譯版本雖然不是最新,但已經(jīng)比較完備,葉秉哲的繁體翻譯版本稍舊,但葉本人是Stroustrup C++著作繁體版的譯者,功力不凡,頗具參考價值。

專題/高級

C++標準程序庫:自修教程與參考手冊

The C++ Standard Library:A

Tutorial and Reference

侯捷等譯

Nicolai M.Josuttis

華中科技大學出版社

  正如Stroustrup和Lippman等大師教導的,學習和掌握C++的核心之一,就是用好標準庫。目前許多C++使用者的問題,也正是由于背負C的歷史枷鎖,對標準庫的認識和掌握不好所致。本書是學習STL的首選讀物。此外,Pete Becker所著還未出版的《The C++ Standard Library Extensions:A Tutorial and Reference》是本書的C++0x延續(xù)。細心的讀者可以看到兩本書的副標題完全一樣。據(jù)說機械工業(yè)出版社將出版后一本書。

Imperfect C++中文版

Matthew Wilson 著

榮耀 劉未鵬 譯

人民郵電出版社

  在上次專欄中,我們舉賢不避親地將本文作者之一所翻譯的《C++編程規(guī)范》列為近年來最重要的C++新作。有位資歷頗深的朋友對此大不以為然。本書就是他心儀的對象。從某種意義上來說,朋友的理由非常充分,本書的深度和廣度確實遠非編程規(guī)范所能比。作者Matthew Wilson是近年來涌現(xiàn)的C++社區(qū)新星,除了因為開發(fā)STLSoft庫而知名之外,他還是《C/C++ User's Journal》停刊之前最活躍的專欄作家,幾乎每月都有一篇以上的文章,視野開闊,而且頗多創(chuàng)見,看得出技術(shù)上的積累不俗。

  Wilson撰寫本書應該說是抱有雄心的(公然宣稱Imperfect C++當然需要胸有成竹),而成書的質(zhì)量也的確不負眾望,得到了Stroustrup在內(nèi)的眾口稱贊。雖然總體而言,本書的目標讀者是中高級的C++程序員,但是從一些新手那里得到的反饋來看,許多內(nèi)容對初學者也有很大幫助(當然,很多內(nèi)容對于初學者過難)。與Meyers、Sutter和Dewhurst等人講求凝練不同,Wilson為了歷數(shù)C++的各種不完美之處,卻寫出了一本非常完備的書,書中許多概念解釋得比大部分教程都好,而且結(jié)合了C++最新的發(fā)展。比如,我做Mentor時的一個入門級學員曾提到,書中對POD等基本概念的完整講述,其他書中就很難找到。

  當然,書中的深入部分是罕見的深入。但是這種深入又不同于Loki的Alexandrescu和Boost的DavidAbrahams那么追求極限以至于有些陽春白雪,更多地是面向?qū)嶋H應用的,比如二進制兼容、多線程、優(yōu)化等等主題就是目前C++應用中非常重要但是又很少有書論及的。

  如果你自認為是一名專業(yè)C++程序員,本書千萬不能錯過。

大規(guī)模C++程序設計

John Lakos 著

李師賢 明仲 等譯

中國電力出版社

  是的,本書原版出版于1996年,C++98標準制定之前。所以讀者在閱讀時必須根據(jù)自己的C++語言知識,鑒別其中在新標準環(huán)境下不適用的建議。但是我們認為,它的價值時至今日仍然沒有其他書可以代替。此前,只有Stroustrup在《C++程序設計語言》中用了一個部分來講述類似的主題,雖然非常經(jīng)典,但并不解渴。

  據(jù)朋友告知,國內(nèi)許多大型軟件企業(yè)都將此書作為指定讀物,這與國外C++為主要開發(fā)語言的公司情況完全相同。10年前,本文作者之一初次參與工業(yè)級的C++項目時,從一位前輩手中借閱了這本書,它對我的職業(yè)生涯產(chǎn)生了不可估量的影響。現(xiàn)在回想起來,自己實在是非常幸運,能夠在那么早就獲得組件、接口、物理設計等等知識。書中反映了作者在著名的電子設計工具公司Mentor Graphics任職期間積累的大型軟件開發(fā)經(jīng)驗,材料曾經(jīng)用于作者在哥倫比亞大學的課堂(美國的大學生們也的確是很幸運的)。應該說,書中講述的方面是真正一線開發(fā)非常需要的,也不知道為何沒有更多著作跟進。有消息說Lakos本人正在寫一本《ScalableC++》,討論C++組件,真是非常值得期待。

C++設計新思維:泛型編程與設計模式之應用

Modern C++ Design

Andrei Alexandrescu 著

侯捷 等譯

  本書出版時曾經(jīng)引起不小的轟動,作者也因此奠定了炫技派先鋒的地位。可以說,書中以及作者開發(fā)的Loki庫將泛型編程和模板技術(shù)發(fā)揮到了極致,對于讀者了解這種C++機制的強大很有好處。但是,正如Stroustrup所批評的,過于精巧的設計并不能很好地用于實際。所以我們建議讀者將本書作為開眼界之用,無需死鉆牛角尖。有類似性質(zhì)的書還有Boost代表David Abrahams所著的《C++ Template Metaprogramming: Concepts, Tools,and Techniques from Boost and Beyond》,但個人以為,Boost代表的方向更為正確,值得關注。模板元編程與目前很多人視為編程語言發(fā)展方向的DSL(領域?qū)S谜Z言)關系非常密切,很可能成為C++迎接新浪潮的關鍵技術(shù)。事實上學院派的C++大作《產(chǎn)生式編程》的作者Krzysztof Czarnecki目前就是在研究如何用C++實現(xiàn)DSL。

C++網(wǎng)絡編程,卷1,卷2

Douglas C.Schmidt 等著

本書兩卷分別由華中科技大學出版社和電子工業(yè)出版社出版。

  網(wǎng)絡編程顯然是C++非常重要的應用領域,由于此前缺乏庫的支持,相關圖書一直非常缺乏,本書的出版一定程度上彌補了這一空白。但是本書一部分內(nèi)容更接近于ACE文檔,而其他部分總體上又比較學院化。所以第二作者又編寫了《ACE程序員指南》(中國電力出版社)作為補充。此外,與ACE展開競爭的ICE也是一個非常不錯的網(wǎng)絡程序庫,沒有相關圖書出版。

  能夠歸入高級的,還有一本好書:Stan Lippman的《深度探索C++對象模型》(華中科技大學出版社)。要想對C++的內(nèi)部機制了解通透,此書是不可缺少的。

  C++其他非常重要的應用領域還包括嵌入式、圖形圖像、框架設計等等,但是目前都沒有值得推薦的圖書。在網(wǎng)上一番搜索之后,我們發(fā)現(xiàn)未來一段時間,國外即將出版的C++類圖書非常有限,看來希望要寄托在國內(nèi)的作者身上了。

  附記:在撰寫本文過程中,ACCU上的書評和Comeau Computing的書單( http://www.comeaucomputing.com/booklist/ ),以及榮耀先生和孟巖先生以前發(fā)表過的推薦書目對我們幫助很大,在此表示感謝。

專家書單推薦:C++藏書閣


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日日操网站 | 久草视频官网 | 在线精品日韩一区二区三区 | 91久久综合九色综合欧美亚洲 | 香蕉视频亚洲 | 美女视频很黄很暴黄是免费的 | 福利午夜最新 | 欧洲成人在线 | 在线观看91精品国产不卡免费 | 狠狠色狠狠色综合日日32 | 高清影院|精品秒播3 | 狠狠狠色丁香婷婷综合久久五月 | 婷婷网五月天天综合天天爱 | 久久精品a一国产成人免费网站 | 天天操免费视频 | 深夜精品影院18以下勿进 | 1000部羞羞禁止免费观看视频 | 亚洲综合网在线 | 午夜影院在线视频 | 国产视频久久久久 | 俺去久久 | japanese成人 | 国产第113页| 女人18一级毛片免费观看 | 精品国产网站 | 免费 黄 色 人成 视频 | 亚洲乱码在线视频 | 青青青视频自偷自拍视频1 青青青手机版视频在线观看 | 四虎精品影院2022 | 四虎 影院ww9584h | 亚洲一区二区三区高清网 | 综合亚洲欧美 | 99热久久这里只有精品6 | 一区二区三区欧美视频 | 亚洲成人精品久久 | 青青久久精品 | 999视频网 | 看看一级毛片 | 国产精品中文字幕在线观看 | 伊人久久综合影院首页 | 最新国产午夜精品视频不卡 |