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

O(1) 的小樂

Job Hunting

公告

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

統計

  • 隨筆 - 182
  • 文章 - 1
  • 評論 - 41
  • 引用 - 0

留言簿(10)

隨筆分類(70)

隨筆檔案(182)

文章檔案(1)

如影隨形

搜索

  •  

最新隨筆

最新評論

閱讀排行榜

評論排行榜

Modern C++ Design (轉)

說實話,我個人覺得HJ老師的確翻譯了很多優秀的作品,質量也不錯。。但是看他的札記文章,還是有一種王婆賣瓜的味道。。。看到了侯捷的一篇評論。。轉了吧。。有些術語與大陸的叫法不同。。

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

Andrei Alexandrescu
andrewalex@hotmail.com

譯者 孟巖

侯捷注:本文承譯者孟巖先生應允,
轉載於此以饗臺灣讀者,非常感謝。
未得孟巖先生之同意,任何人請勿將此文再做轉載。
以下紅色為譯注,紫色為侯捷個人認為宜再斟酌之處。
淺藍色是侯捷個人閱讀時的神秘標記。
本繁體文系直接轉碼,并未將大陸慣用術語轉換為臺灣慣用術語。


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

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

評論

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

這本書的確挺難的,是需要去啃的書
就像文中所說,如果你只是在用c++開發,不看這本書,完全可以的
但是你想榨取c++最后的那點性能提升,看它吧
  回復  更多評論    

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

@Vincent
恩,的確是這樣子。。呵呵!
  回復  更多評論    
統計系統
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国内精品亚洲| 久久久五月天| 欧美在线观看一区二区| 在线亚洲一区二区| 亚洲一区视频在线| 欧美一级二级三级蜜桃| 久久国产日韩欧美| 模特精品裸拍一区| 亚洲国产精品va在线看黑人| 亚洲激情欧美| 亚洲一级免费视频| 久久久999成人| 欧美日本免费| 国产亚洲精品7777| 亚洲精品乱码久久久久久蜜桃91| 亚洲天堂黄色| 久久在线精品| 99国产精品久久久久久久久久| 亚洲免费小视频| 蜜桃久久av一区| 国产精品久久久久久久久久妞妞 | 久久香蕉国产线看观看av| 欧美韩日视频| 亚洲欧美日韩国产成人| 欧美激情第二页| 国产精品视频一二| 日韩特黄影片| 乱中年女人伦av一区二区| 夜夜爽www精品| 六月婷婷一区| 国产三区二区一区久久| 一本色道久久加勒比88综合| 久久综合福利| 亚洲午夜久久久| 欧美成在线观看| 午夜久久黄色| 午夜精品久久久久久99热软件| 久久综合九九| 亚洲一区高清| 欧美日韩一区二区三区高清| 欧美成人精品一区二区| 国内在线观看一区二区三区| 亚洲色无码播放| 国产亚洲精品福利| 在线天堂一区av电影| 最新中文字幕亚洲| 欧美在线三区| 亚洲综合大片69999| 欧美日韩国产美女| 亚洲高清av在线| 六月婷婷一区| 午夜视频在线观看一区二区| 欧美日韩精品综合| 亚洲精品美女91| 欧美v国产在线一区二区三区| 亚洲欧美久久久| 国产精品永久免费在线| 亚洲一区二区三区视频播放| 亚洲日本成人网| 欧美另类99xxxxx| 一本色道婷婷久久欧美| 亚洲美女av黄| 国产精品久久久久国产a级| 亚洲嫩草精品久久| 亚洲一区二区动漫| 国产欧美一二三区| 久久福利资源站| 久久久久久夜精品精品免费| 一区二区视频在线观看| 欧美 日韩 国产在线 | 欧美啪啪一区| 中文日韩欧美| 亚洲一区二区三区四区在线观看| 国产精品美女www爽爽爽| 亚洲欧美日韩精品久久| 亚洲一区图片| 国产视频自拍一区| 免费看精品久久片| 欧美久久精品午夜青青大伊人| 日韩亚洲不卡在线| 亚洲视频在线二区| 韩国在线一区| 亚洲高清精品中出| 欧美日韩亚洲精品内裤| 午夜在线a亚洲v天堂网2018| 久久国产一区| 日韩亚洲一区二区| 亚洲欧美在线高清| 在线观看成人一级片| 亚洲国产视频一区二区| 欧美色欧美亚洲另类二区| 亚洲欧美一区二区三区极速播放| 小黄鸭精品密入口导航| 亚洲国产精品久久久久久女王| 国产日韩精品一区| 亚洲国产欧美日韩精品| 亚洲麻豆av| 国产亚洲激情| 亚洲第一精品夜夜躁人人爽 | 亚洲女性喷水在线观看一区| 久久国产精品久久精品国产| 一本大道久久a久久综合婷婷| 欧美一级视频| 亚洲天堂av高清| 免费在线亚洲欧美| 久久精品水蜜桃av综合天堂| 欧美另类在线播放| 久久这里只有| 国产精品色在线| 亚洲精品久久久久久久久| 精品91免费| 午夜国产精品影院在线观看| 一区二区三区导航| 蜜桃av一区二区| 久久亚洲精品视频| 国产精品无码永久免费888| 亚洲国产一区二区三区青草影视| 国产一区二区三区黄| 亚洲一二三四区| 亚洲一区在线视频| 欧美精品九九| 亚洲国产高清一区| 亚洲电影天堂av| 欧美一区二区三区精品 | 亚洲一区美女视频在线观看免费| 美女久久一区| 国内自拍视频一区二区三区| 亚洲欧美精品伊人久久| 亚洲女性喷水在线观看一区| 欧美日韩国产成人在线| 91久久精品一区二区别| 亚洲欧洲在线视频| 欧美mv日韩mv国产网站app| 欧美成人精品一区二区| 亚洲成人在线| 欧美成人福利视频| 欧美激情在线免费观看| 亚洲国内精品在线| 你懂的视频欧美| 亚洲激情黄色| 亚洲女女女同性video| 国产精品视频大全| 欧美一区二区三区婷婷月色| 久久琪琪电影院| 亚洲国产中文字幕在线观看| 欧美国产一区二区| 在线视频一区观看| 久久av一区二区三区亚洲| 狠狠操狠狠色综合网| 另类综合日韩欧美亚洲| 亚洲激情精品| 香蕉亚洲视频| 揄拍成人国产精品视频| 欧美.www| 亚洲视频一区在线| 久久久免费av| 亚洲精品在线观看免费| 国产精品欧美精品| 久久人人97超碰精品888| 亚洲激情电影在线| 日韩午夜精品| 久久福利精品| 91久久精品国产91久久| 欧美激情久久久| 99日韩精品| 国产日韩在线播放| 欧美电影免费| 亚洲一区3d动漫同人无遮挡| 久久影院午夜片一区| 一本色道久久综合亚洲精品高清| 国产精品视频免费在线观看| 久久综合狠狠综合久久综青草| 亚洲乱码国产乱码精品精| 久久精品青青大伊人av| 日韩视频中文| 国产主播喷水一区二区| 欧美日韩国内| 久久蜜桃精品| 亚洲欧美日韩在线综合| 亚洲国产精品www| 久久久999成人| 亚洲资源在线观看| 亚洲精品欧美极品| 国内精品久久久久久久果冻传媒| 欧美连裤袜在线视频| 久久久久欧美精品| 亚洲欧美日韩第一区| 日韩午夜在线电影| 欧美激情第9页| 开元免费观看欧美电视剧网站| 亚洲摸下面视频| 亚洲另类一区二区| 亚洲国产日韩一区| 国内精品久久国产| 国产日韩精品一区二区三区在线| 欧美日韩福利在线观看| 欧美国产乱视频| 久久久人人人| 久久爱另类一区二区小说| 亚洲亚洲精品在线观看|