C++沉思錄(Ruminations on C++ : A Decade of Programming Insight and Experience)~推薦!
作者:Andrew Koenig,Barbara E. Moo/合著,孟岩,陳錦輝/審校 ISBN:9789862019061 |
【Author】作者/繪者/著者/譯者 |
作者簡介
Andrew Koenig
如果說C++的發明人Bjarne Stroustrup是C++領域的第一把交椅,那麼Andrew Koenig可以說是C++的第二號人物。他不但是Bjarne Stroustrup的好友,也是C++標準委員會的資深專案編輯,換句話說,您現在看到的C++標準,有許多都是經過他的手實作或審定出來的。難能可貴的是,他與Bjarne Stroustrup在C++方面的想法高度一致,這也是C++之所以能夠蓬勃發展的主因之一。
Koenig寫的書不多,但論文與專欄卻很多,比較有名的著作物包含《Accelerated C++: Practical Programming by Example》、(本書)《Ruminations on C++: A Decade of Programming Insight and Experience》、《C++ In-Depth Box Set》(與Bjarne Stroustrup合著)、《C Traps and Pitfalls》,大多數的書籍都屬於進階書。
Barbara E. Moo
Barbara E. Moo是Andrew Koenig的老婆,除了與丈夫合寫了上述前三本經典著作外,還與Stanley B. Lippman合寫了著名的《C++ Primer》。在Stanley B. Lippman的《Inside the C++ Object Model》書中提到的Foundation專案,正是由Barbara E. Moo負責管理(除了其夫與Bjarne),算是C++當中的巾幗英雄。
【Introduction】簡介/書評/特色/摘要 |
這本書是一本C++的經典之作,為了讓台灣的讀者不會有遺珠之憾,博碩文化特地引進本書,並將之編為《名家名著》系列第05號書籍。兩位作者的來頭都不小(請見作者簡介),而本書更是作者十年磨一劍的經典之作。
作者Koenig在C++的整個發展過程中具有舉足輕重的地位,是C++社群中最受尊敬的大師之一。他的文章以樸實而又精深的思想,準確而又權威的論述,,成為業界公認的『正統C++之聲』。本書命名為《Ruminations on C++》充分顯現出作者的自信和對這本書的珍愛。
本書命名為《C++沉思錄》,顧名思義,這是一本需要多加思考的書籍。作者在書中不斷強調『想一想』這件事,從思考的過程中,逐漸發展出具有實用性的C++程式。就內容來看,這本書其實也可以命名為《C++設計模式》、《Thinking in C++》、《C++及STL的設計和演化》。
這是一本進階書,對於初學C++的人來說並不適合。但對於已經學會C++語法,有過一小段撰寫C++程式經歷的人來說,本書有助於理解要怎樣才算是用對了C++來設計程式、為何C++要如此設計、STL當中的奧秘(例如iterator為何要如此設計)。
在本書的範例程式碼中,作者從簡單的問題開始設計起,逐步擴充解決更多的問題,考慮周詳,並且充分應用了C++特有的功能(相對於Java而言),特別是指標、運算子overload、friend等等的技術,這也是C++之所以複雜龐大的主因,然而既然選擇了C++作為開發工具,並因此付出了更多的學習時間,若不將之應用出來,就太可惜了。讓我們來看看大師是如何充分應用各種C++的技巧來解決問題。
這本書在C++的教學方式上有獨到之妙。作者循循善誘,娓娓道來,所舉的例子雖然小,但是非常典型,切中要害,讓你花費不大的精力就可以掌握相當多的東西。
這本書與坊間大部分的C++書籍都不一樣,那些書所關注的是語言本身,而不是如何運用這種語言。
作者對C++有著居高臨下的見識,對於C++的設計理念和實際應用有非常清晰的觀點。眾多紛繁複雜的C++特性如何組合運用,如何有效運作,什麼是主流,什麼是旁支,哪些是通用技術,哪些是特殊的技巧,在書中都有清晰明白的介紹。
識字最多的人,一定是最好的作家嗎?能演奏最多音符的人,一定是最好的音樂家嗎?那些瞭解最多語言特性的人就是最好的程式設計師(這真是荒謬)。程式設計工作中最困難的部分並不是去學習語言細節,而是理解問題的解決之道。
作者希望讀者能運用這些idea 去理解一堆拼湊的程式碼與一個抽象之間的差別──這種差別,就好像一堆辭藻與一篇文章、一堆音符與一支歌曲的差別一樣。C++支援好幾種不同的抽象形式,其中最著名的有抽象資料型態(ADT)、物件導向程式設計和泛型程式設計。
全書多次強調,C++最基本的設計理念是用類別來表示概念,C++解決複雜性的基本原則是抽象,物件導向思想是C++的手段之一,而不是全部等等。這些言論可以說是擲地有聲,可引導許多C++程式設計師走向正確的道路。
如果你是C++的高手,請試著讀讀本書,看看你能理解多少?多快理解?或許你會發現,原來要掌握博大精深的C++,並非麼簡單。
如果您只是個剛學會C++的程式設計師,相信看完本書後,一定會發出『原來C++可以這樣做啊!』、『原來程式庫是這樣寫的啊!』、『原來遇到問題要這樣解決啊!』等等數不完的讚嘆之聲!
大師的推薦
Koenig和Moo的《C++沉思錄》將會為許多人提供有用的幫助,對於C++究竟是什麼,以及能夠做些什麼,他們的先見之明,在這本書中隨處可見。——C++發明人 Bjarne Stroustrup
對我來說,這是我所有C++藏書中最好的一本。——《C & C++ Code Capsules》作者 Chuck Allison
【Table of Contents】目錄/大綱/內容概要 |
Chapter 0 序幕
Part I 動機
Chapter 1 為什麼我用C++
Chapter 2 為什麼我用C++工作
Chapter 3 生活在現實世界中
Part II 類別和繼承
Chapter 4 類別設計者的查核表
Chapter 5 代理類別
Chapter 6 handle類別:首部曲
Chapter 7 handle類別:二部曲
Chapter 8 一個物件導向的程式範例
Chapter 9 一個課堂練習的分析(上)
Chapter 10 一個課堂練習的分析(下)
Chapter 11 何時不該使用虛擬函數
Part III 樣板(Templates)
Chapter 12 設計容器類別
Chapter 13 存取容器內的元素
Chapter 14 存取容器內的元素
Chapter 15 序列
Chapter 16 作為介面的樣板
Chapter 17 樣板和泛型演算法
Chapter 18 泛型Iterators
Chapter 19 使用泛型Iterators
Chapter 20 Iterator配接器
Chapter 21 函數物件
Chapter 22 函數配接器
Part IV 程式庫(Libraries)
Chapter 23 日常使用的程式庫
Chapter 24 一個程式庫介面的設計實例
Chapter 25 程式庫的設計就是語言的設計
Chapter 26 語言的設計就是程式庫的設計
Part V 技術
Chapter 27 自己追蹤自己的類別
Chapter 28 在叢集中配置物件
Chapter 29 應用器、操縱器和函數物件
Chapter 30 將應用程式庫從輸入輸出中分離出來
Part VI 總結
Chapter 31 透過複雜性獲取簡單性
Chapter 32 說了Hello world之後要再做些什麼
【Preface】序/前言/推薦/心得 |
序
大師的沉思 讀C++經典著作Ruminations on C++有感
又是一本C++程式設計領域的經典著作即將面世──Ruminations on C++中文版──《C++沉思錄》。作為一個普通的C++程式設計師,我很榮幸能有機會成為本書中文版的第一個讀者,先飽眼福。原書英文版我也有,雖然也不時拿出來翻看,但是隨意的摘讀與通篇的瀏覽不同,通篇的瀏覽與技術審校又不同,此番對照中英文,從頭到尾把此書讀過一遍,想過一遍,確實是收穫豐厚,感慨良多。
本書作者,不需要我過多的介紹。雖然我們不贊成論資排輩,但是所謂公道自在人心,Andrew Koenig 在C++發展歷史中不可置疑的權威地位,是勿庸置疑的。作為Bjarne Stroustrup 的親密朋友,ANSI C++標準委員會的專案編輯,Koenig 在C++的整個發展過程中都發揮了極其重要的作用,是C++社群中最受尊敬的大師之一。特別值得一提的是,在C++大師中,Koenig 的教學實踐和文字能力歷來備受好評,在前後十幾年的時間裡,他在各大技術刊物上發表了近百篇C++技術文章。這些文章長時間以來,以樸實而又精深的思想,準確而又權威的論述,高屋建瓴而又平易近人的表達方式,成為業界公認的『正統C++之聲』。本書的第二作者Barbara Moo 是Koenig 的夫人,也是他在貝爾實驗室的同事,曾經領導AT&T 的Fortran77 和CFront 編譯器專案,可謂電腦科學
領域中的巾幗英雄。這本書正是在Barbara Moo 的建議下,由兩人共同從Koenig 所發表的文章中精選、編修、昇華而成的一本結集之作。由於源自雜誌的專欄文章,因此書中的內容具有高度的可讀性,知識密度高,表現力強。更重要的是,這些文章是在發表之後若干年,由原作者挑選出來,經過了多年的沉澱和反思,重新編輯整理,加上自己多年的心得與思考,自然有一種千錘百煉的韌性和純度。也正因為如此,作者當仁不讓地把這本書命名為《Ruminations on C++》,採用rumination 一詞,充分顯現出作者的自信和對這本書的珍愛。
這兩位C++發展史上的重要人物夫唱婦隨,一同出版著作,本身就足以引起整個C++社群的高度重視,而這本書不平凡的來歷和出版之後5 年間所獲得的極高讚譽,更加確立了它在C++技術書籍中的經典地位。Bjarne Stroustrup 在他的主頁上特別推薦人們去閱讀這本書,ACCU 的主席Francis Glassborow 在書評中慷慨地向讀者最熱誠地推薦此書,說:『我對這本書沒什麼更多可說的,因為每個C++程式設計師都應該去讀這本書。
如果你在閱讀的過程中既沒有感到快樂,又沒學到什麼東西,那你可真是罕見的人物』。而著名C++專家Chuck Allison 在他自己的書《C & C++ Code Capsules》中,更是直截了當地說:『對我來說,這是我所有C++藏書中最好的一本』。
對我來說,給這本書一個合適的評價超出了我現在的能力。究竟它能夠為我的學習和工作帶來怎樣的啟發,還需要更長時間的實踐來驗證。不過就目前而言,這本書的一些特色已經給我留下很深刻的印象。
首先,作者對C++有著居高臨下的見識,對於C++的設計理念和實際應用有非常清晰的觀點。眾多紛繁複雜的C++特性如何組合運用,如何有效運作,什麼是主流,什麼是旁支,哪些是通用技術,哪些是特殊的技巧,在書中都有清晰明白的介紹。我們都知道,C++有自己的一套思想體系,它雖然有龐大的體積,繁多的特性,無窮無盡的技術組合能力,但是其核心理念也是很樸實、很簡單的。掌握了C++的核心理念,在實踐中就會『有主心骨』,有自己的技術判斷力。但是在很多C++書籍,甚至某些經典名著中,C++的核心理念被紛繁的技術細節所遮掩,變得模糊不清,讀者很容易偏重於技術細節,最後陷入其中,不能自拔。而在這本書中,作者毫不含糊地把C++的核心觀念展現在讀者面前,為讀者引導方向。全書中多次強調,C++最基本的設計理念就是『用類別來表示概念』,C++解決複雜性的基本原則是抽象,物件導向思想是C++的手段之一,而不是全部,等等。這些言論可以說是擲地有聲,對我們許多程式設計師來說,都是一帖糾偏良藥。
其次,這本書在C++的教學方式上有獨到之妙。作者循循善誘,娓娓道來,所舉的例子雖然小,但是非常典型,切中要害,讓你花費不大的精力就可以掌握相當多的東西。例如本書講述物件導向程式設計時,先後只講了幾項技術,舉了兩個例子,但是細細讀來,你會對C++物件導向程式設計有一個基本的正確觀念,知道應該用具體型態來隱藏一個衍生階層,知道應該如何處理動態記憶體管理的問題。從這一點點內容中能夠得到的收穫,比看一大堆厚書都來得清晰深刻。對於STL 的介紹,更是獨具匠心。作者不是一上來就講STL,而是把STL 之前的那些類似技術一一道來,把優點缺點講清楚,然後從道理上給你講清楚STL 的設計和運用,讓你不僅知其然而且知其所以然,胸有成竹。
書畢竟不厚,我想更重要的東西並不是這本書教給了你什麼技術。所謂授人以魚,不如授人以漁。這本書最大的特點就在於,它不僅僅告訴你什麼是答案,更重要的是告訴你思考的方法,解決問題的步驟和方向。書中遍佈了大量寶貴的建議,正是這些建議,為這本書增添了永不磨滅的價值。Francis Glassborow 甚至說,僅僅這本書的第32 章給出的建議,就足以體現全書的價值。
當前(2002 年),C++面臨其發展歷史中,一個非常重要的時期。一方面,它受到了不公正的質疑和詆毀,個別新興語言的狂熱擁護者甚至迫不及待地想宣佈C++的死訊。而另一方面,C++在學術界和工業界都在穩定地發展,符合ISO 標準的C++編譯器呼之欲出,人們對於C++特性合理運用的認識也越來越豐富,越來越成熟和全面。事實上,根據我個人從業界瞭解到的情形,以及從近期C++出版物的內容和品質上來看,C++經過這麼多年的積澱,已經開始進入真正的成熟發展時期,它的腳步越來越穩健,思路越來越清晰,越來越演化成為一種強大而又實用的程式語言。作為工業界的基礎技術,C++還將在很長的一段時間裡,扮演不可替代的重要角色。因此,這本書也會在很長的時間裡,伴隨我們的學習與實踐,並且引導我們以正確的觀點看待技術的發展,幫助我們這些程式設計師形成屬於我們自己的、成熟的、獨立的技術判斷力。
ISBN:9789862019061
規格:平裝/416頁/18.5x23cm/普通級/單色印刷/初版
出版地:台灣
本書分類:電腦資訊>程式設計>C/C++
【Preview】內容預覽/連載/試閱PDF下載 |
ISBN:9789862019061
規格:平裝/416頁/18.5x23cm/普通級/單色印刷/初版
出版地:台灣
本書分類:電腦資訊>程式設計>C/C++
資料來源:[博客來BOOKS網路書店] http://www.books.com.tw/exep/assp.php/ap/products/0010634363?utm_source=ap&utm_medium=ap-books&utm_content=recommend
圖文屬原創所有。相關資訊僅供參考,歡迎前往選購。發現不妥處請告知!
【Customers Who Bought This Item Also Bought】買的人,也買了... |