第0條 不要拘泥於小節(又名:了解那些東西不應該標準化)
只規定需要規定的事情:不要強制施加個人喜好或者過時的做法。
詳細:1、應該使用縮進來體現**的結構。建議每個縮排使用4個空格或者設定編輯器的製表符大小為4個空格,並且應該在每個檔案中保持一致。
2、應該保證**行的長度有利於閱讀。建議每行不超過10個單詞。
3、應該使用一致的、有意義的命名規範。必須永遠不要使用「晦澀的名稱」,必須不要使用常見的詞或者縮略語作為巨集的名稱(包括如:t和u等),不應該使用匈牙利命名法。建議命名規範如下:
類、函式和列舉的名稱形如:likethis;
區域性變數、形參和結構成員變數的名稱形如:likethis;
類成員變數名形如:likethis_;
巨集名稱形如:like_this。
4、應該編寫有用的注釋。不應該編寫重複**語義的注釋,應該編寫的是解釋方法和原理的說明性注釋。
5、括號的位置應該在每個檔案中保持一致,建議使用如下方式:
void puttingeachbraceonitsownline()
6、不建議單入口、單出口方式編碼,而應該以簡潔、緊湊、單一職責方式編碼。
第1條 在高警告級別乾淨利落地進行編譯
高度重視警告:使用編譯器的最高警告級別。應該要求構建是乾淨利落的(沒有警告)。理解所有的警告。通過修改**而不是降低警告級別來排除警告。
詳細:2、對於無法修改的第三方標頭檔案引起的警告(可能是良性的),採用以下方式遮蔽:
自定義 format.h 檔案:
// 本檔案包裝了 boost 的 format.hpp。
// 應該總是包含此檔案,而不要直接使用 format.hpp。
// boost.format 會產生一些已知無害的編譯器警告。
// 在改正以後,我們將刪除以下的編譯指示,但此標頭檔案仍然存在。
#pragma warning(push) // 僅禁用此標頭檔案
#pragma warning(disable : 4819)
#include #pragma warning(pop) // 恢復最初的警告級別
3、未使用的函式引數,首先確認是否需要保留以作日後擴充套件之用,如是可以採用注釋掉變數名的方式處理。
4、定義了從未使用過的變數,首先檢查是否是正確的,如是可以通過插入乙個變數本身的求值表示式處理(這種求值不會影響執行時的速度)。
5、變數使用前可能未經初始化,則初始化變數。
6、遺漏了 return 語句,則檢查並加上 return 語句。
7、有符號數/無符號數不匹配,則修改資料型別或者新增顯式的型別轉換。
第2條 使用自動構建系統
一次按鍵就解決問題:使用完全自動化(「單操作」)的構建系統,無需使用者干預即可構建整個專案。
詳細:1、我們不應該將時間和精力浪費在機器可以幹得更快更好的事情上。
2、兩次連續增量構建中的第二次構建不應該編寫任何輸出檔案;否則,可能會出現依賴迴圈(
見 c22)。
3、可以考慮通過改變許多基本特性來引數化控制構建過程的引數;候選的特性包括目標架構,除錯模式還是發布模式,以及範圍(基本檔案、所有檔案、還是完整的安裝檔案)。
4、大型專案可能應該設定乙個「構建管理員」,他的工作就是負責構建系統。
第3條 使用版本控制系統
好記性不如爛筆頭(中國諺語):請使用版本控制系統(version control system, vcs)。永遠不要讓檔案長時間地登出。在新的單元測試通過之後,應該頻繁登入。確保登入的**不會影響構建成功。
詳細:1、問題並不在於你是否想從歷史中尋找答案,而在於你到底何時需要。
2、不要破壞構建。版本控制系統中的**必須總能構建成功。
第4條 在**審查上投入
詳細:1、通過來自同伴的良性壓力提高**質量。
2、找出錯誤、不可移植的**(如果適用)和潛在的擴充套件問題。
3、通過思想交流獲得更好的設計和實現。
4、快速培養新同事和初入門者。
5、在團隊中形成共同的價值觀和集體主義。
6、增強整體實力,提公升自信心、動力和職業榮譽感。
7、**審查有助於提高軟體的安全性、而且還是內部培訓的一種極佳方法(而且沒有成本)!
8、極限程式設計中的結對程式設計也是**審查的一種方式,
詳細可參考這裡。
返回 目錄
返回《c++ 程式設計規範及慣用法》
C 程式設計規範之組織和策略問題
組織和策略問題 第0條 不要拘泥於小節 了解哪些東西不應該標準化 摘要 只規定需要規定的事情 不要強制施加個人喜好或者過時的做法。程式的編寫存在一些準則是必要的,例如命名準則,但沒有必要要求所有人都遵守這些,否則條條框框太多,否則限制了語言的能力。函式並不是單入口單出口,雖然表面上看是的。第1條 在...
《C 程式設計規範》筆記(組織和策略)
這是c 信徒的摩西十戒,值得將其銘刻在顯示器的邊緣,供c 程式設計師們每日膜拜。我要將其銘刻在我的blog裡,銘刻在我的記憶裡,直到它們成為我思維的一部分。第0條 不要拘泥於細節 了解哪些東西不應該標準化 在這裡,旗幟鮮明地反對了兩樣東西 匈牙利記法和單入單出原則。第1條 在高警告級別乾淨利落地編譯...
C 程式設計規範101讀書筆記(1)組織和策略問題
這部分主要涉及 質量控制 第0條 不要拘泥小節 風格一致 1 縮排體現 結構 2 行長度不要影響閱讀 3 使用一致的命名規範 4 編寫有用的注釋 第1條 在高告警級別乾淨利落地編譯 1 第三方標頭檔案 pragma warning push pragma warning disable 4516 p...