青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

O(1) 的小樂

Job Hunting

公告

記錄我的生活和工作。。。
<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

統(tǒng)計(jì)

  • 隨筆 - 182
  • 文章 - 1
  • 評(píng)論 - 41
  • 引用 - 0

留言簿(10)

隨筆分類(70)

隨筆檔案(182)

文章檔案(1)

如影隨形

搜索

  •  

最新隨筆

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

Modern C++ Design (轉(zhuǎn))

說實(shí)話,我個(gè)人覺得HJ老師的確翻譯了很多優(yōu)秀的作品,質(zhì)量也不錯(cuò)。。但是看他的札記文章,還是有一種王婆賣瓜的味道。。。看到了侯捷的一篇評(píng)論。。轉(zhuǎn)了吧。。有些術(shù)語(yǔ)與大陸的叫法不同。。

Modern C++ Design: Generic Programming and Design Patterns Applied

Andrei Alexandrescu
andrewalex@hotmail.com

譯者 孟巖

侯捷注:本文承譯者孟巖先生應(yīng)允,
轉(zhuǎn)載於此以饗臺(tái)灣讀者,非常感謝。
未得孟巖先生之同意,任何人請(qǐng)勿將此文再做轉(zhuǎn)載。
以下紅色為譯注,紫色為侯捷個(gè)人認(rèn)為宜再斟酌之處。
淺藍(lán)色是侯捷個(gè)人閱讀時(shí)的神秘標(biāo)記。
本繁體文系直接轉(zhuǎn)碼,并未將大陸慣用術(shù)語(yǔ)轉(zhuǎn)換為臺(tái)灣慣用術(shù)語(yǔ)。


前言
你現(xiàn)在大概正站在書店里捧著這本書,問你自己為什麼要買下它。或者也可能你現(xiàn)在正在你公司的圖書館里,猶豫著是否應(yīng)該把時(shí)間花在這本書上。我知道你的時(shí)間很寶貴,所以我會(huì)簡(jiǎn)短截說。你是否有過這樣的情形,比如問自己,如何能用C++寫出更高層的程序?又比如即使你的設(shè)計(jì)已經(jīng)非常乾凈了,但是那些不相關(guān)的細(xì)節(jié)還是像雪崩一樣發(fā)生,這個(gè)時(shí)候應(yīng)當(dāng)如何應(yīng)付?再或者你怎麼樣才能作出一些真正可重用的組件,而不必每次要用的時(shí)候就不得不重新鉆到底層 hack一番?假使你有過這樣的疑問,這本書正是為你而寫的。
想象一下下面的情形:你剛剛從設(shè)計(jì)方案討論會(huì)上回來,手里拿著兩張打印圖表,上面還有你自己的一些潦草記號(hào)。OK,現(xiàn)在這些對(duì)象之間轉(zhuǎn)遞的事件類型不再用char表示了,改成 int 型了,於是你改了一行代碼。哦,指向 Widget 的 smart pointers 太慢了,得取消一些檢查措施,讓它們快點(diǎn),於是你又改了一行代碼。剛才另外一個(gè)部門提出了一個(gè)小的新類,你的 object factory 得對(duì)它提供支持,好,再改一行代碼。行了,你的設(shè)計(jì)改完了,編譯,連接,搞定
且慢,這情形好像有點(diǎn)不對(duì)頭,不是嗎?現(xiàn)實(shí)的情形是這樣的才對(duì):你喪魂落魄地從會(huì)上趕回來,因?yàn)橛幸淮蠖咽虑橐觯喝乃阉鳎o代碼動(dòng)大手術(shù),增加新代碼,當(dāng)然也就飛進(jìn)來新臭蟲,然後再忙不迭地捉臭蟲... 這才是程序員這種人的生活方式,是不是?
雖然這本書不可能承諾使你進(jìn)化到第一種情形,但是卻是向那個(gè)方向邁出的堅(jiān)實(shí)一步。這本書試圖把C++作為一種新的語(yǔ)言展現(xiàn)在軟件設(shè)計(jì)師面前。傳統(tǒng)上,代碼是軟件系統(tǒng)里最細(xì)節(jié)最錯(cuò)綜復(fù)雜的一面。雖然歷史上出現(xiàn)了各種不同層次的程序設(shè)計(jì)語(yǔ)言,支持不同的設(shè)計(jì)方法學(xué)(例如面向?qū)ο蠓椒ǎ谝粋€(gè)程序設(shè)計(jì)藍(lán)圖與最後的實(shí)現(xiàn)代碼之間始終橫亙著一條巨大的鴻溝,因?yàn)榇a必須仔細(xì)關(guān)照到具體實(shí)現(xiàn)和某些輔助性任務(wù)中極其細(xì)節(jié)的問題。設(shè)計(jì)的目標(biāo)很少能夠不被茫茫的細(xì)節(jié)所埋沒。
這本書介紹了一組可復(fù)用的設(shè)計(jì)“珍寶”,稱為“泛型組件”(Generic Components), 同時(shí)還介紹了構(gòu)造這些組件所使用的技術(shù)。這些范型組件能夠在各種軟件系統(tǒng)體系中向用戶提供類似庫(kù)的功能。編碼和實(shí)現(xiàn)的技術(shù)將重點(diǎn)置于那些傳統(tǒng)上是屬於設(shè)計(jì)階段的任
務(wù)和問題之上,而設(shè)計(jì)階段的工作通常是在編碼之前就完成了。由於是高層次的組件,范型組件使得我們有可能將復(fù)雜的軟件體系以非常富有表現(xiàn)力 簡(jiǎn)潔和易于維護(hù)的代碼表達(dá)出來。泛型程序設(shè)計(jì) 設(shè)計(jì)模式與C++這三個(gè)要素在這里被組合起來,達(dá)成在縱向和橫向上的高度可復(fù)用性。在橫向上,使用一個(gè)很小的代碼庫(kù)就實(shí)現(xiàn)了一個(gè)可組合的 數(shù)量不限的結(jié)構(gòu)和行為集合。在縱向上,這些組件的通用性使得它們能夠被應(yīng)用于廣泛的應(yīng)用程序中。
設(shè)計(jì)模式是對(duì)於在面向?qū)ο箝_發(fā)過程中反復(fù)出現(xiàn)的問題所給出的高效解決方案,本書從其中獲益匪淺。對(duì)那些出現(xiàn)在各種背景下的問題有一些有效的 可復(fù)用的解決方案,而設(shè)計(jì)模式正是從這些優(yōu)秀的設(shè)計(jì)方案中萃取出來的精華片段。設(shè)計(jì)模式的重點(diǎn)在
于提出一個(gè)匯集建議性設(shè)計(jì)方案的詞典,它們描述問題,給出經(jīng)過時(shí)間驗(yàn)證的解決方案及其變體,描述應(yīng)用各種變體會(huì)產(chǎn)生的效果。設(shè)計(jì)模式超越了程序設(shè)計(jì)語(yǔ)言所能表達(dá)的范疇,不管一種語(yǔ)言多麼先進(jìn),它本身也很難表達(dá)設(shè)計(jì)模式。在這本書中展現(xiàn)的組件通過使用和組合使用某些設(shè)計(jì)模式,能夠應(yīng)用于一大批具體問題。
泛型程序設(shè)計(jì)是一種范型(paradigm),它致力于將各種類型按照一小組功能性的需求加以抽象,然後以這些需求為條件實(shí)現(xiàn)算法。由於算法在其操作的數(shù)據(jù)類型上定義了一個(gè)嚴(yán)格的窄接口,同一個(gè)算法便可以應(yīng)用于各種類型之上。本書中的實(shí)現(xiàn)方案使用了泛型程序設(shè)計(jì)技術(shù),從而具有了普遍性,非常簡(jiǎn)潔,而且效率上可與手寫代碼相匹敵。
在這本書里C++是唯一的實(shí)現(xiàn)工具。你不會(huì)在這本書里找到出色的窗口系統(tǒng)實(shí)現(xiàn)方案,也不會(huì)有復(fù)雜的網(wǎng)絡(luò)組件庫(kù)和精致的日志機(jī)制。相反的,您能發(fā)現(xiàn)的是一些基礎(chǔ)的組件,這些組件能夠幫助你更容易地實(shí)現(xiàn)上面的那些目標(biāo),以及更多其他的目標(biāo)。C++具有使這一切成為可能的能力。它底層的C內(nèi)存模型保證了不打折扣的運(yùn)行性能,對(duì)於多態(tài)性的支持確保了面向?qū)ο蠹夹g(shù)的發(fā)揮,而其模板機(jī)制實(shí)現(xiàn)了一個(gè)難以置信的代碼產(chǎn)生機(jī)。模板遍布在本書的代碼中,因?yàn)檫@一機(jī)制使得用戶和庫(kù)之間形成密切的合作關(guān)系。庫(kù)的使用者按照庫(kù)的字面意義來控制代碼的生成方式,也就受到庫(kù)的限制。泛型組件庫(kù)的角色則是允許用戶將自定義
的類型和行為與泛型組件組合起來以形成合理的設(shè)計(jì)。由於這些技術(shù)是在靜態(tài)的背景下使用的,在將各種相應(yīng)的片段組合匹配的過程中所產(chǎn)生的錯(cuò)誤通常都能夠在編譯時(shí)被發(fā)現(xiàn)。
很明顯的,這本書的意圖是建立泛型組件 預(yù)先實(shí)現(xiàn)的設(shè)計(jì)片段,其主要特性是靈活 多能和易用。泛型組件并沒有構(gòu)成一個(gè)framework。事實(shí)上,它們的作用是補(bǔ)充性的 一個(gè) framework針對(duì)一個(gè)特定對(duì)象模型定義了一些相互依賴的類,而泛型組件是一些輕量級(jí)的(lightweight)設(shè)計(jì)作品,彼此之間相互獨(dú)立,同時(shí)又能夠自由地組合與匹配,在實(shí)現(xiàn)framework 過程中會(huì)很有助益。
本書的主要讀者對(duì)象是兩類人。第一類是有經(jīng)驗(yàn)的C++程序員,他們希望掌握最新的庫(kù)編寫技術(shù)。本書展示了新的 強(qiáng)有力的C++慣用法(idiom),其能力令人驚訝,有些甚至是人們從來就不敢想的。這些慣用法在寫高級(jí)庫(kù)的時(shí)候非常有用。想更上一層樓的中級(jí)程序員當(dāng)然也會(huì)發(fā)現(xiàn)本書很有用,特別是如果他們能夠投入一定毅力的話。盡管某些地方的代碼確實(shí)很艱澀,不過我也做了很詳盡的解釋。第二類是那些忙碌的程序員,他們得完成工作,又不可能在學(xué)習(xí)上付出太大的代價(jià)。他們可以略過那些最復(fù)雜的實(shí)現(xiàn)細(xì)節(jié),將精力集中到對(duì)這個(gè)庫(kù)用法的掌握上。每一章都有介紹性的解釋,以“Quick Facts”結(jié)束。程序員們會(huì)發(fā)現(xiàn)在理解和使用組件方面,這些部份是非常有用的叁考資料。組件可以單獨(dú)的去理解,同樣可以很有力 安全和出色地使用。你得有扎實(shí)的C++使用經(jīng)驗(yàn),最重要的是有強(qiáng)烈學(xué)習(xí)欲望。希望讀者對(duì)於模板機(jī)制和STL能夠比較熟悉,也建議大家了解一些設(shè)計(jì)模式方面的知識(shí)(Gamma et al.1995),不過不必強(qiáng)求。本書所運(yùn)用到的模式和慣用法都會(huì)被詳細(xì)的解釋。但是,這本書不是一本模式技術(shù)書籍 沒有打算全面論述模式技術(shù)。因?yàn)樵谶@本書里,模式是從一個(gè)庫(kù)編寫者的實(shí)用主義觀點(diǎn)來展現(xiàn)的,所以即使是對(duì)模式技術(shù)更感興趣的讀者也會(huì)發(fā)現(xiàn)這個(gè)觀點(diǎn)很有新意。

posted on 2010-09-20 22:05 Sosi 閱讀(883) 評(píng)論(2)  編輯 收藏 引用

評(píng)論

# re: Modern C++ Design (轉(zhuǎn)) 2010-09-21 17:58 Vincent

這本書的確挺難的,是需要去啃的書
就像文中所說,如果你只是在用c++開發(fā),不看這本書,完全可以的
但是你想榨取c++最后的那點(diǎn)性能提升,看它吧

# re: Modern C++ Design (轉(zhuǎn)) 2010-09-21 21:55 Sosi

@Vincent
恩,的確是這樣子。。呵呵!

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


統(tǒng)計(jì)系統(tǒng)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美午夜片在线免费观看| 亚洲国产免费| 136国产福利精品导航网址| 国产精品欧美日韩一区二区| 欧美日本韩国一区二区三区| 欧美精品97| 欧美精品久久久久久久| 欧美高清视频| 欧美日韩中文字幕| 国产精品视频一| 狠狠爱综合网| 亚洲第一区中文99精品| 亚洲免费高清| 亚洲综合不卡| 久久久久高清| 欧美精品在线视频观看| 欧美一区二区免费| 久久久久久亚洲精品杨幂换脸| 欧美成人精品在线观看| 欧美午夜视频在线| 国产亚洲欧美色| 亚洲精品日产精品乱码不卡| 亚洲欧美国产精品桃花| 久久中文欧美| 亚洲理论在线| 欧美亚洲日本国产| 欧美国产专区| 国产区在线观看成人精品| 亚洲国产视频一区二区| 午夜视频在线观看一区二区三区| 浪潮色综合久久天堂| 亚洲精品国产精品久久清纯直播| 亚洲欧美中文另类| 欧美国产日韩一二三区| 国产专区精品视频| 亚洲一区二区高清| 欧美激情1区2区| 午夜老司机精品| 欧美精品久久99久久在免费线| 国产一区二区激情| 亚洲一区二区av电影| 欧美国内亚洲| 久久久久在线| 韩国一区二区三区在线观看| 亚洲欧美一区二区三区极速播放 | 亚洲欧美清纯在线制服| 久久综合九色99| 亚洲尤物视频网| 欧美日韩久久不卡| 亚洲精品你懂的| 久久青草久久| 亚洲欧美在线免费观看| 国产精品极品美女粉嫩高清在线| 亚洲福利av| 久久亚洲不卡| 久久狠狠婷婷| 黄色日韩在线| 美女视频网站黄色亚洲| 欧美专区中文字幕| 国产精品丝袜白浆摸在线| 中文国产成人精品久久一| 亚洲欧洲日本专区| 欧美国产亚洲视频| 99精品欧美一区二区三区| 亚洲国产精品久久久久婷婷老年 | 欧美体内she精视频| 亚洲乱码国产乱码精品精| 免费在线亚洲| 你懂的亚洲视频| 欧美精品一区二区三区一线天视频| 蜜乳av另类精品一区二区| 国产综合亚洲精品一区二| 久久天堂成人| 欧美激情1区| 亚洲午夜小视频| 亚洲无吗在线| 国产乱码精品一区二区三区五月婷| 亚洲免费网址| 久久er99精品| 亚洲人成高清| 亚洲午夜羞羞片| 韩国欧美国产1区| 亚洲二区在线观看| 欧美日韩国产一区| 午夜精品久久久99热福利| 亚洲男人第一网站| 伊人久久婷婷| 99re热这里只有精品免费视频| 国产精品vip| 免费看成人av| 国产精品扒开腿做爽爽爽视频| 亚洲欧洲99久久| 久久香蕉精品| 亚洲一区免费| 久久婷婷久久| 亚洲在线免费视频| 久久免费视频在线观看| 一区二区三区产品免费精品久久75| 亚洲免费视频在线观看| 亚洲电影免费观看高清完整版| 亚洲精品久久久久久久久久久久 | 亚洲素人在线| 久久国产婷婷国产香蕉| 一区二区三区 在线观看视| 亚洲嫩草精品久久| 91久久精品国产91久久性色tv | 亚洲视屏在线播放| 久久精品欧美日韩| 一区二区三区av| 久久久另类综合| 欧美亚洲三区| 欧美精品午夜视频| 欧美成人一区二区| 国产精品一区二区a| 亚洲毛片在线| 亚洲日韩视频| 久久婷婷亚洲| 久久综合久久综合久久| 国产精品福利网站| 亚洲国产视频一区| 国产自产高清不卡| 亚洲女女做受ⅹxx高潮| 99riav1国产精品视频| 免费亚洲一区二区| 老牛影视一区二区三区| 国产片一区二区| 亚洲午夜在线视频| 欧美在线播放高清精品| 久久成人精品无人区| 欧美好吊妞视频| 亚洲中字黄色| 欧美日韩国产成人在线免费| 美日韩精品免费| 国产亚洲福利社区一区| 亚洲视频在线观看免费| 一区二区三区精品国产| 欧美国产一区二区在线观看| 欧美激情视频在线免费观看 欧美视频免费一 | 伊人成人开心激情综合网| 亚洲一区二区成人| 亚洲欧美成aⅴ人在线观看| 欧美日韩在线三区| 中文在线一区| 欧美一区高清| 国产无一区二区| 久久―日本道色综合久久| 久久免费视频在线| 一区久久精品| 欧美va天堂在线| 亚洲精品一区二区三区在线观看| 亚洲国产精品精华液网站| 老司机aⅴ在线精品导航| 亚洲国产另类久久久精品极度| 在线精品视频免费观看| 欧美成年人在线观看| 最新国产精品拍自在线播放| 一区二区av在线| 国产欧美日韩不卡免费| 久久国产88| 91久久久一线二线三线品牌| 国产精品99久久99久久久二8| 国产精品扒开腿爽爽爽视频 | 欧美久久久久久| 亚洲无限乱码一二三四麻| 欧美主播一区二区三区| 亚洲国产激情| 国产精品大片wwwwww| 欧美中文字幕视频在线观看| 久久综合九色综合网站| 一区二区三区.www| 国产在线播放一区二区三区| 欧美激情第3页| 欧美一级理论性理论a| 亚洲激情视频在线观看| 欧美中文字幕在线| 一本到12不卡视频在线dvd| 国产欧美一区二区三区在线老狼 | 欧美一区二区黄色| 亚洲激情影视| 黄色成人在线网址| 欧美手机在线视频| 久久欧美中文字幕| 亚洲黄网站黄| 国产欧美日韩综合一区在线播放| 裸体歌舞表演一区二区| 亚洲一区二区三区免费视频| 美女任你摸久久| 午夜精品福利视频| 日韩亚洲国产欧美| 国产伊人精品| 欧美体内she精视频在线观看| 欧美伊人影院| 亚洲一级网站| 99精品热视频| 亚洲精品一区二区三区四区高清| 免费不卡中文字幕视频| 欧美在线观看一区二区| 亚洲视频一区在线观看| 亚洲人成啪啪网站| 激情视频一区|