• <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>

            O(1) 的小樂

            Job Hunting

            公告

            記錄我的生活和工作。。。
            <2010年11月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            統計

            • 隨筆 - 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 閱讀(858) 評論(2)  編輯 收藏 引用

            評論

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

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

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

            @Vincent
            恩,的確是這樣子。。呵呵!
              回復  更多評論    
            統計系統
            久久这里只精品国产99热| 久久99精品久久久大学生| 天天爽天天爽天天片a久久网| 国内精品久久久久影院优| 狠狠色伊人久久精品综合网 | 99久久成人18免费网站| 久久国产热这里只有精品| 久久精品久久久久观看99水蜜桃| 国产精品天天影视久久综合网| 久久精品成人免费观看97| 俺来也俺去啦久久综合网| 久久久WWW成人| 97久久精品无码一区二区| 国产一区二区久久久| 99久久精品免费观看国产| 亚洲欧美成人综合久久久| 久久亚洲AV无码西西人体| 国产一区二区精品久久| 亚洲精品蜜桃久久久久久| 欧美精品丝袜久久久中文字幕 | 夜夜亚洲天天久久| 伊人久久大香线蕉综合Av| 国产女人aaa级久久久级| 久久人人妻人人爽人人爽| 亚洲午夜精品久久久久久浪潮| 久久精品国产91久久麻豆自制 | 国产成人综合久久精品尤物| 7777久久久国产精品消防器材| 久久e热在这里只有国产中文精品99| 亚洲国产精品无码久久久秋霞2| 久久久久人妻一区精品| 国产激情久久久久影院老熟女| 久久91精品国产91久久户| 国产人久久人人人人爽| 午夜精品久久久久久毛片| 一本色道久久88—综合亚洲精品| 无码任你躁久久久久久久| 亚洲国产精品无码久久青草| 色8激情欧美成人久久综合电| 久久WWW免费人成—看片| 久久93精品国产91久久综合|