google內部使用的良好程式設計習慣

誰不小心的發表於2013-10-13

摘要:在進行程式設計訓練的過程中,遵循統一的程式設計習慣,有利於程式碼的易讀性和維護性,從而快速提高軟體程式設計效率。本文主要問你介紹一些常用的優良程式設計習慣,參考了google內部關於程式設計的約定文件。還是那句話,“沒有最優,統一就好”。




需要遵循的一些程式設計規範:


一、命令約定:型別,變數,函式,巨集


函式命名、髮量命名、檔案命名應具有描述性,不要過度縮寫,型別和髮量應該是名詞,函式名可以用動詞。


1.型別名稱


1)每個單詞首字母大寫。
struct MyStudent;


2.變數名稱


1)全域性變數使用g_開頭:g_total;


2)一般變數使用小寫,採用下劃線分割不同的單詞(如果僅僅由兩個單片語成,第一個單詞比較常見而且在5個字元以內,可以省略下劃線)
string tablename;

string table_name;


3)結構體的成員,同普通變數
struct UrlTableProperties {
string name;
int num_entries;

}


4)陣列

int stages[5]


5)列舉
枚丼值應全部大寫,單詞間以下劃線相還:MY_EXCITING_ENUM_VALUE。
枚丼名稱屬亍型別,因此大小寫混吅:UrlTableErrors。
enum UrlTableErrors {
OK = 0,
ERROR_OUT_OF_MEMORY,
ERROR_MALFORMED_INPUT,
}


3.常量命名
使用k開頭,後面和結構體變數的命名相同。

const int kDaysInAWeek = 7


4.檔名

全部使用小寫,使用下劃線分割不同單詞。


5.函式名稱
函式名以大寫字母開頭,每個單詞首字母大寫,沒有下劃線:
AddTableEntry()
DeleteUrl()




二、函式引數順序


C/C++函式引數分為輸入引數和輸出引數兩種,有時輸入引數也會輸出(注:值被修改時)。輸入引數一般傳值常數引用(const references),輸出引數戒輸入/輸出引數為非常數指標(non-const pointers)。


對引數排序時,將所有輸入引數置亍輸出引數前。不要僅僅因為是新新增的引數,就將其置於最後,而應該依然置於輸出引數前。


這一點不是必須遵循的規則,輸入/輸出兩用引數(通常是類/結極體髮量)混在其中,會使得覎則難以遵循。


三、區域性變數


區域性變數的作用域應該儘可能小,而且在宣告的時候進行初始化。


四、const


能用const的地方儘量用const


五、巨集的使用


儘量不要使用,而是用行內函數,列舉,常量來替代。



六、sizeof


儘量使用sizeof(Varname)而不是sizeof(type),因為這樣可以在改變Varname的type以後程式不會出錯。


七、i++


能使用++i的時候就不要使用i++





相關文章