Linux專案組程式設計規範
前言:
本手冊以林銳博士編寫的《高質量 C++/C 程式設計指南》內容為參考,根據專案組成員的經驗總結和共同協定,稍作簡潔和修改。本規範手冊分成兩部分:
第一部分:以條款的形式列出了專案組程式設計的規則和建議,規則是指專案組成員必須要遵守的程式設計規範,建議是指推薦使用的程式設計風格。
第二部分:是對第一部分規則和建議的詳細說明。建議先仔細閱讀第二部分,在已經瞭解了每條規則和建議的真正意義以及為什麼要遵守的基礎上,在實際專案程式設計時可以透過直接查閱第一部分來實現快速規範程式碼的目的。
本手冊由Linux專案組成員共同制定,暫時處於beta版本,由於我們經驗有限,對本手冊的任何建議和批評都歡迎各位提出,我們將虛心接受。
Linux專案組
2009-4-23
第一部分:
第 1 章 檔案結構
【規則 1-1】為了防止標頭檔案被重複引用,應當用 ifndef/define/endif 結構產生預處理塊;
【規則1-2】標頭檔案由三部分內容組成:
(1) 標頭檔案開頭處的版權和版本宣告(參見第二部分示例 1-1)
(2) 預處理塊
(3) 函式和類結構宣告等
【規則1-3】定義檔案由三部分內容組成:
(1) 定義檔案開頭處的版權和版本宣告(參見示例 1-1)。
(2) 對一些標頭檔案的引用
(3) 程式的實現體(包括資料和程式碼)
【規則1-4】不提倡使用全域性變數,儘量不要在標頭檔案中出現象 extern int value 這類宣告。
【建議 1-5】標頭檔案中只存放“宣告”而不存放“定義”。建議將成員函式的定義與宣告分開,不論該函式體有多麼小;
第 2章 程式的版式
【規則2-1】在每個函式定義結束之後都要加空行;
【規則2-2】在一個函式體內,邏揖上密切相關的語句之間不加空行,其它地方應加空行分隔;
【規則2-3】一行程式碼只做一件事情,如只定義一個變數,或只寫一條語句。這樣的程式碼容易閱讀,並且方便於寫註釋;
【規則2-4】if、for、while 、do 等語句自佔一行,執行語句不得緊跟其後。不論執行語句有多少都要加{}。這樣可以防止書寫失誤。程式的分界符‘{’和‘}’應獨佔一行並且位於同一列,同時與引用它們的語句左對齊;
【規則2-5】‘,’ ‘;’向前緊跟,緊跟處不留空格。 ‘,’之後要留空格,如Function(x, y, z) 。如果‘;’不是一行的結束符號,其後要留空格,如for (initialization; condition; update);
【規則2-6】賦值運算子、比較運算子、算術運算子、邏輯運算子、位域運算子,如“=”、“+=”“>=”、“”這類運算子前後不加空格;
【規則2-9】應當將修飾符*和&緊靠變數;
【規則2-10】如果程式碼本來就是清楚的,則不必加註釋。否則多此一舉,令人厭煩。例如i++; // i加1,多餘的註釋;
【規則2-11】註釋的位置應與被描述的程式碼相鄰,可以放在程式碼的上方或右方,不可放在下方;
【規則2-12】儘可能在定義變數的同時初始化該變數(就近原則);
【建議2-13】程式碼行最大長度宜控制在70至80個字元以內。程式碼行不要過長,否則眼睛看不過來,也不便於列印;
【建議2-14】長表示式要在低優先順序運算子處拆分成新行,運算子放在新行之首(以便突出運算子)。拆分出的新行要進行適當的縮排,使排版整齊,語句可讀;
【建議2-15】註釋是對程式碼的“提示”,而不是文件。程式中的註釋不可喧賓奪主,註釋太多了會讓人眼花繚亂。註釋的花樣要少;
【建議2-16】邊寫程式碼邊註釋,修改程式碼同時修改相應的註釋,以保證註釋與程式碼的一致性。不再有用的註釋要刪除;
【建議2-17】註釋應當準確、易懂,防止註釋有二義性。錯誤的註釋不但無益反而有害;
【建議2-18】儘量避免在註釋中使用縮寫,特別是不常用縮寫;
【建議2-19】當程式碼比較長,特別是有多重巢狀時,應當在一些段落的結束處加註釋,便於閱讀。
【建議2-20】對於表示式比較長的for 語句和if 語句,為了緊湊起見可以適當地去掉一些空格,如for (i=0; i<10 linux default>[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24790158/viewspace-1041625/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Web應用介面設計規範—給專案組培訓 .Web
- 【軟體設計】專案設計流程規範
- JS程式設計規範JS程式設計
- React程式設計規範React程式設計
- java程式設計規範Java程式設計
- 程式設計小記-程式設計規範程式設計
- 淺談專案程式碼規範
- 前端規範之vue 專案規範前端Vue
- python程式設計規範Python程式設計
- C#程式設計規範C#程式設計
- Go 語言程式設計規範Go程式設計
- 微信小程式元件設計規範微信小程式元件
- JavaScript模組化程式設計規範JavaScript程式設計
- python 的程式設計規範Python程式設計
- iOS 團隊程式設計規範iOS程式設計
- C#程式設計命名規範C#程式設計
- 程式設計命名規範(網文)程式設計
- 設工程專案管理規範問答(轉)專案管理
- iOS 專案架構與程式碼規範iOS架構
- 專案規範筆記筆記
- Android 專案規範Android
- MySQL資料庫規範 (設計規範+開發規範+操作規範)MySql資料庫
- python 程式設計規範有哪些?Python程式設計
- 解讀阿里java程式設計規範阿里Java程式設計
- C語言程式設計基本規範C語言程式設計
- 自己整理的java程式設計規範Java程式設計
- Shell程式設計規範與變數程式設計變數
- 上位機程式設計編碼規範程式設計
- 名片設計規範
- 建設工程專案管理規範問答(轉)專案管理
- 17joys專案程式碼的命名規範
- 個人專案開發規範
- 我的專案命名規範
- 搞笑圖組:程式設計師的專案週期程式設計師
- MySQL 規範 (資料庫表設計規範)MySql資料庫
- “程式設計不規範,同事兩行淚!”程式設計
- 併發程式設計的12條規範程式設計
- 01 shell程式設計規範與變數程式設計變數