C++ 編程規範及慣用法(未完成)

最近重讀了一下一些經典的 C++ 書籍,再次感覺到 C++ 的難與浩大,爲了日後編程能夠減少錯誤和提高效率,故希望把一些編程規範做一下總結及收集,同時也把一些編程的最佳實踐和慣用法總結一下,方便日後開發的時候能夠根據需要應用上。

這個工作說容易也容易,基本就是把這些書籍的目錄羅列一下。說難也難,要做到能夠指導日後的快速開發,這個確實不容易。反正儘量做吧,應該會有點用的。

首先,把我認爲比較好的書以及目錄羅列一下(點擊鏈接查閱):

引用 書名
中文名
作者
譯者
備註
  Essential C++ Essential C++ 中文版 Stanley B. Lippman 侯捷 下載
《C++ Primer》經典作品的精簡版(雖說是精簡版,其實是針對初學者重新編排的),適合初學者快速入門。
  C++ Primer C++ Primer 中文版 Stanley B. Lippman
Josee Lajoie
Barbara E. Moo
李師賢
蔣愛軍
梅曉勇
林瑛
下載
公認的學習 C++ 的經典著作。
  The C++ Programming Language C++ 程序設計語言 Bjarne Stroustrup 裘宗燕 下載
C++ 語言之父的經典著作。
C0 - 100 C++ Coding Standards
101 Rules, Guidelines, and Best Practices
C++ 編程規範
101 條規則、準則和最佳實踐
Herb Sutter
Andrei Alexandrescu
劉基誠 下載
可以作爲權威的 C++ 編程規範,總結了很多人多年的經驗結晶。
E1 - 50 Effective C++
55 Specific Ways to Improve Your Programs and Designs
Effective C++ 中文版
改善程序與設計的55個具體做法
Scott Meyers 侯捷 下載
M1 - 35 More Effective C++
35 New Ways to Improve Your Programs and Designs
More Effective C++ 中文版
35個改善編程與設計的有效方法
Scott Meyers 侯捷 下載
S1 - 50 Effective STL
50 Specific Ways to Improve Your Use of the Standard Template Library
Effective STL 中文版
50條有效使用STL的經驗
Scott Meyers 潘愛民 下載
Ex1 - 47 Exceptional C++
47 Engineering Puzzles, Programmin
Exceptional C++ 中文版 Herb Sutter 卓小濤 下載
ME1 - 40 More Exceptional C++
40 New Engineering Puzzles, Programming Problems, and Solutions
More Exceptional C++ 中文版
40個新的工程難題、編程疑問及解決方法
Herb Sutter 於春景 下載
ES1 - 40 Exceptional C++ Style
40 New Engineering Puzzles, Programming Problems, and Solutions
Exceptional C++ Style 中文版
40個新的工程難題、編程問題及解決方法
Herb Sutter 劉未鵬 下載
  C++ Templates
The Complete Guide
C++ Templates 中文版 David Vandevoorde
Nicolai M. Josuttis
陳偉柱 下載
  The C++ Standard Library
A Tutorial and Reference
C++ 標準程序庫
自修教程與參考手冊
Nicolai M. Josuttis 侯捷
孟巖
下載
  Boost 程序庫完全開發指南
深入 C++ “準”標準庫
  羅劍鋒   下載
  Thinking in C++
Volume One: Introduction to Standard C++
C++ 編程思想
第1卷 標準 C++ 導引
Bruce Eckel 劉宗田
袁兆山
潘秋菱
下載
  Thinking in C++
Volume Two: Practical Programming
C++ 編程思想
第2卷 實用編程技術
Bruce Eckel
Chuck Allison
刁成嘉 下載
  Modern C++ Design
Generic Programming and Design Patterns Applied
C++ 設計新思維
泛型編程與設計模式之應用
Andrei Alexandrescu 侯捷
於春景
下載
  Inside The C++ Object Model 深度探索 C++ 對象模型 Stanley B. Lippman 侯捷 下載

然後,需要做一些說明:

  1. 相關條款用類似“E1”等表示某條款,即對應《Effective C++》的條款1,具體可以點擊鏈接查閱條文,再需要參考進一步的信息則要看書了。
  2. 相關的慣用法不單隻涉及 C++ 和 STL 庫,還會涉及其他一些常用的庫,例如 Boost、ZLib、OpenSSL、QT 等庫。
  3. 各個條款在不同的書裏可能會存在類似的重複情況,這是正常的;也存在一些條款在不同的書裏存在矛盾的地方,但是細想的話,其實是不矛盾的,因爲前提條件可能是不同的,也存在例外情況。
  4. 文中會使用如下由強到弱的表述方式“必須”、“應該”、“建議”,“必須”是需要嚴格遵守的,“應該”是表示絕大多數情況適用,“建議”是表示這是一般常用的用法可以統一但並不強制。

最後,羅列一下最佳實踐、慣用法和不適當的做法(點擊鏈接查閱):

最佳實踐:

值類

基類

traits類

策略類

異常類

附屬類


慣用法:

RAII 慣用法

Pimpl 慣用法

erase-remove 慣用法


不適當的做法:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章