首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 信徒的摩西十四戒:核心編程準則精華

     編輯:關於C++

第 0 條:不拘泥細節

  • 縮進、行長、命名風格(除宏全大寫)不強制統一,目標是易讀。
  • 反對匈牙利記法(C++ 類型系統已足夠)。
  • 反對單入口單出口(異常 + 確定性析構已過時)。

第 1 條:最高警告級別乾淨編譯

  • 警告視為錯誤;第三方庫用屏蔽包裹;未用參數省略名字;未用變量用表達式語句消除警告。
  • 變量必須初始化;所有分支有返回或斷言;有/無符號混用預先轉換,盡量避免無符號。

第 2 條:自動化構建系統

一鍵/一條命令構建整個系統(Daily Build 是心跳)。

第 3 條:版本控制系統

無 VCS 如盲騎瞎馬。

第 4 條:投入代碼審查

亮代碼、讀代碼、投影牆上集體評審,熟悉項目最佳途徑。

第 5 條:單一緊湊職責

單一職責原則(SRP)。realloc、basic_string 違反典例。嘗試用一句話描述模塊功能,做不到則重設計。

第 6 條:正確、簡單、清晰優先

  • KISS 原則:正確 > 速度,簡單 > 複雜,清晰 > 機巧,安全 > 不安全。
  • 代碼寫給人看,順便給機器跑。
  • 避免冷僻語言特性,慎用運算符重載、匿名變量;善用重構。

第 7 條:知曉何時考慮可伸縮性

線性複雜度為分水嶺:避免超線性算法;優先優化算法複雜度而非微優化。特定領域可突破 O(N log N) 排序下限。

第 8 條:不成熟優化是萬惡之源

讓正確程序變快,比讓快程序變正確容易得多。——Knuth

第 9 條:不成熟劣化同樣可惡

  • 能傳引用卻傳值;能用前綴 ++ 卻用後綴;構造函數用賦值而非初始化列表。
  • 區分優化與劣化需扎實基本功(研讀 Effective/Exceptional C++ 系列)。

第 10 條:極小化全局/共享數據

  • 全局數據導致名字污染 + 遠程耦合;單例同樣有耦合問題。
  • 多線程下共享數據需序列化;變量越少越好(含局部變量)。

第 11 條:信息隱藏

類不公開數據(數值聚合 struct 除外),不返回內部指針/引用,通過抽象獲得不變式檢查能力。

第 12 條:懂得並發編程

  • 參考平台同步原語;用自設計抽象封裝平台原語;確保類型線程安全。

第 13 條:資源由對象擁有(RAII + 智能指針)

  • 確定性析構是 RAII 基石;析構/釋放/swap 必須不拋異常。
  • 避免一行分配多資源:Fun(shared_ptr(new Widget), shared_ptr(new Widget)) 不安全;應分兩行構造再傳遞。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved