最近重讀了一下一些經典的 C++ 書籍,再次感覺到 C++ 的難與浩大,爲了日後編程能夠減少錯誤和提高效率,故希望把一些編程規範做一下總結及收集,同時也把一些編程的最佳實踐和慣用法總結一下,方便日後開發的時候能夠根據需要應用上。
這個工作說容易也容易,基本就是把這些書籍的目錄羅列一下。說難也難,要做到能夠指導日後的快速開發,這個確實不容易。反正儘量做吧,應該會有點用的。
首先,把我認爲比較好的書以及目錄羅列一下(點擊鏈接查閱):
然後,需要做一些說明:
- 相關條款用類似“E1”等表示某條款,即對應《Effective C++》的條款1,具體可以點擊鏈接查閱條文,再需要參考進一步的信息則要看書了。
- 相關的慣用法不單隻涉及 C++ 和 STL 庫,還會涉及其他一些常用的庫,例如 Boost、ZLib、OpenSSL、QT 等庫。
- 各個條款在不同的書裏可能會存在類似的重複情況,這是正常的;也存在一些條款在不同的書裏存在矛盾的地方,但是細想的話,其實是不矛盾的,因爲前提條件可能是不同的,也存在例外情況。
- 文中會使用如下由強到弱的表述方式“必須”、“應該”、“建議”,“必須”是需要嚴格遵守的,“應該”是表示絕大多數情況適用,“建議”是表示這是一般常用的用法可以統一但並不強制。
最後,羅列一下最佳實踐、慣用法和不適當的做法(點擊鏈接查閱):
最佳實踐:
值類
基類
traits類
策略類
異常類
附屬類
慣用法:
RAII 慣用法
Pimpl 慣用法
erase-remove 慣用法
不適當的做法: