• <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>
            國慶回家把這本書重新翻了一遍,強(qiáng)烈建議每個(gè)C++程序員都去看看這本書.

            組織和策略問題
            - 0. 不拘小節(jié)(或:了解什么不需要被規(guī)范化)。
            - 1. 在高警告級(jí)別下干凈地編譯。
            - 2. 使用自動(dòng)化的構(gòu)建(build)系統(tǒng)
            - 3. 使用版本控制系統(tǒng)(version control system)。
            - 4. 在代碼復(fù)查上投資。
             
            設(shè)計(jì)風(fēng)格(Design Style)
            - 5. 給每一個(gè)實(shí)體分配一份內(nèi)聚的職責(zé)。
            - 6. 以正確,簡單,清晰為上。
            - 7. 了解何時(shí)及如何為可伸縮性編寫代碼。
            - 8. 不要過早地優(yōu)化。
            - 9. 不要過早地退而求次。
            - 10. 將全局和共享的數(shù)據(jù)減至最少。
            - 11. 隱藏信息。
            - 12. 了解何時(shí)及如何為并發(fā)性編寫代碼。
            - 13. 確保資源為對(duì)象所占有。使用顯式的RAII和智能指針。
             
            編程風(fēng)格(Coding Style)
            - 14. 寧可在編譯和鏈接時(shí)出錯(cuò)也不要在運(yùn)行時(shí)出錯(cuò)。
            - 15. 主動(dòng)使用const。
            - 16. 避免使用宏。
            - 17. 避免使用魔數(shù)(magic numbers)。
            - 18. 盡可能局部地聲明變量。
            - 19. 始終初始化變量。
            - 20. 避免太長的函數(shù)。避免太深的嵌套。
            - 21. 避免不同的編譯單元在初始化過程中的依賴關(guān)系。
            - 22. 將定義時(shí)的依賴性降至最低。避免循環(huán)依賴性。
            - 23. 保證頭文件的自足性(Make header files self-sufficient)。
            - 24. 始終用內(nèi)部#include防護(hù)哨。絕對(duì)不要用外部#include防護(hù)哨。
             
            函數(shù)與操作符(Functions and Operators)
            - 25. 通過值,(智能)指針,或引用適當(dāng)?shù)厝〉脜?shù)。
            - 26. 在重載操作符時(shí),要保留被重載操作符的自然語義。
            - 27. 最好是保持算術(shù)和賦值運(yùn)算符的標(biāo)準(zhǔn)形式。
            - 28. 最好是保持標(biāo)準(zhǔn)形式的++和--。最好是調(diào)用前綴的形式。
            - 29. 考慮通過重載來避免隱式的類型轉(zhuǎn)換。
            - 30. 避免重載&&, ||, 或, (逗號(hào))。
            - 31. 不要編寫對(duì)函數(shù)參數(shù)的求值順序有依賴性的代碼。
             
            類設(shè)計(jì)及繼承(Class Design and Inheritance)
            - 32. 清楚自己要編寫什么類型的類。
            - 33. 最好是設(shè)計(jì)最小型的類而不要設(shè)計(jì)巨型類。
            - 34. 優(yōu)先采用聚合,其次才是繼承。
            - 35. 避免繼承自未設(shè)計(jì)為基類的類。
            - 36. 最好是提供抽象接口。
            - 37. 公有繼承代表可替換性。繼承,不是為了重用,而是為了被重用。
            - 38. 安全地覆蓋虛函數(shù)。
            - 39. 考慮使虛函數(shù)成為非公有函數(shù),使公有函數(shù)成為非虛函數(shù)。
            - 40. 避免提供隱式轉(zhuǎn)換。
            - 41. 使類的數(shù)據(jù)成員為私有,除非是無行為的聚合類(C風(fēng)格的結(jié)構(gòu))。
            - 42. 不要泄露你的內(nèi)部實(shí)現(xiàn)。
            - 43. 明智地使用Pimpl慣用法。
            - 44. 最好是編寫非成員非友元函數(shù)。
            - 45. 始終同時(shí)提供new和delete。
            - 46. 如果你提供類特有的new,那么要提供所有的標(biāo)準(zhǔn)形式(plain,in-place,及nothrow)。
             
            構(gòu)造,析構(gòu),及復(fù)制操作(Construction, Destruction, and Copying)
            - 47. 以相同的順序定義及初始化成員變量。
            - 48. 在構(gòu)造函數(shù)中最好是用初始化列表而避免用賦值操作符。
            - 49. 避免在構(gòu)造函數(shù)和析構(gòu)函數(shù)中調(diào)用虛函數(shù)。
            - 50. 使基類的析構(gòu)函數(shù)成為公有的虛函數(shù),或受保護(hù)的非虛函數(shù)。
            - 51. 析構(gòu)函數(shù),資源釋放函數(shù),以及swap絕不會(huì)失敗。
            - 52. 以一致的方式進(jìn)行復(fù)制和銷毀。
            - 53. 顯式地允許或禁止復(fù)制。
            - 54. 避免分割對(duì)象。考慮用Clone來取代在基類中進(jìn)行復(fù)制。
            - 55. 最好是保持賦值操作符的標(biāo)準(zhǔn)形式。
            - 56. 只要合理,就(正確地)提供不會(huì)失敗的swap。
             
            名字空間與模塊(Namespaces and Modules)
            - 57. 把類型和它的非成員函數(shù)接口放在同一個(gè)名字空間中。
            - 58. 除非有意讓類型和函數(shù)協(xié)作,否則把它們放在單獨(dú)的名字空間中。
            - 59. 不要在頭文件中或#include語句之前寫名字空間層級(jí)的using。
            - 60. 避免在不同的模塊中分配和釋放內(nèi)存。
            - 61. 不要在頭文件中定義具有鏈接屬性的實(shí)體(entities with linkage)。
            - 62. 不要讓異常在傳遞時(shí)跨越模塊的邊界。
            - 63. 在模塊的接口中使用可移植的類型。
             
            模板與泛型(Templates and Genericity)
            - 64. 明智地結(jié)合靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性。
            - 65. 有意地并顯式地定制。
            - 66. 不要特化函數(shù)模板。
            - 67. 不要在無意中編寫不通用的代碼。
             
            錯(cuò)誤處理與異常(Error Handling and Exceptions)
            - 68. 大量使用斷言來說明內(nèi)部的假設(shè)和不變性。
            - 69. 設(shè)立一套合理的錯(cuò)誤處理策略,并嚴(yán)格遵循。
            - 70. 區(qū)分錯(cuò)誤與非錯(cuò)誤。
            - 71. 設(shè)計(jì)并編寫能夠安全地處理錯(cuò)誤的代碼。
            - 72. 盡量用異常來報(bào)告錯(cuò)誤。
            - 73. 拋出值,捕獲引用。
            - 74. 適當(dāng)?shù)貓?bào)告,處理并轉(zhuǎn)換錯(cuò)誤。
            - 75. 避免異常規(guī)格(exception specifications)。
             
            STL容器(STL: Containers)
            - 76. 默認(rèn)情況下使用vector。否則選擇其它合適的容器。
            - 77. 用vector和string取代數(shù)組。
            - 78. 使用vector(以及string::c_str)來和非C++ API交換數(shù)據(jù)。
            - 79. 僅在容器中存儲(chǔ)值和智能指針。
            - 80. 與其它方法相比,要盡量使用push_back來擴(kuò)大容器。
            - 81. 與單元素操作相比,要盡量使用區(qū)間操作。
            - 82. 使用公認(rèn)的慣用法來真正地縮小容量以及真正地刪除元素。
             
            STL算法(STL: Algorithms)
            - 83. 使用一個(gè)帶檢查的(checked)STL實(shí)現(xiàn)。
            - 84. 與手工編寫的循環(huán)相比,要盡量調(diào)用STL算法。
            - 85. 使用正確的STL查找算法。
            - 86. 使用正確的STL排序算法。
            - 87. 使predicate成為純函數(shù)(pure function)。
            - 88. 在用作算法和比較器(comparer)時(shí),要優(yōu)先用函數(shù)對(duì)象來代替函數(shù)。
            - 89. 正確地編寫函數(shù)對(duì)象(Function Object)。
             
            類型安全性(Type Safety)
            - 90. 避免類型選擇(type switching);盡量使用多態(tài)。
            - 91. 依賴于對(duì)象類型,而不要依賴于對(duì)象的表示方法。
            - 92. 避免使用reinterpret_cast。
            - 93. 避免用static_cast來強(qiáng)制轉(zhuǎn)換指針類型。
            - 94. 避免強(qiáng)制去除const。
            - 95. 不要用C風(fēng)格的強(qiáng)制類型轉(zhuǎn)換。
            - 96. 不要對(duì)非POD類型使用memcpy或memcmp。
            - 97. 不要用union來重新解釋數(shù)據(jù)。
            - 98. 不要使用varargs(省略號(hào))。
            - 99. 不要使用無效的對(duì)象。不要使用不安全的函數(shù)。
            - 100. 不要以多態(tài)方式處理數(shù)組。
            posted on 2012-10-06 20:05 Richard Wei 閱讀(890) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++
            婷婷久久综合九色综合九七| 亚洲七七久久精品中文国产| 99精品国产99久久久久久97| 精品久久久中文字幕人妻| 欧美亚洲色综久久精品国产| 国产999精品久久久久久| 一级做a爰片久久毛片人呢| 国产高潮久久免费观看| 亚洲欧美成人久久综合中文网| 久久久久久亚洲AV无码专区| 久久高潮一级毛片免费| 久久亚洲中文字幕精品有坂深雪 | 久久夜色精品国产亚洲av| 久久久久久精品免费看SSS| 久久99精品国产麻豆宅宅| 亚洲欧美一区二区三区久久| 国产精品久久久久国产A级| 天天综合久久一二三区| 国产日韩久久久精品影院首页| 老色鬼久久亚洲AV综合| 午夜精品久久久久久影视777| 久久精品国内一区二区三区| 日韩AV无码久久一区二区| 久久综合精品国产一区二区三区| 久久亚洲高清观看| 久久久久久久97| 久久久亚洲欧洲日产国码二区| 伊人久久精品影院| 手机看片久久高清国产日韩| 亚洲综合精品香蕉久久网97| 久久精品国产亚洲麻豆| 久久久久久夜精品精品免费啦| 日产精品久久久久久久| 亚洲AV无码久久寂寞少妇| 少妇高潮惨叫久久久久久| 亚洲女久久久噜噜噜熟女| 五月丁香综合激情六月久久| 麻豆亚洲AV永久无码精品久久| 无码人妻久久久一区二区三区| 欧美va久久久噜噜噜久久| 久久精品国产亚洲AV麻豆网站|