谷歌命名規範總結

2021-09-26 07:31:09 字數 4014 閱讀 4672

總有一種感覺,自己寫的**和別人寫的**總是不同,感覺自己寫的**非常的醜陋,別人的非常的優美。有些自己寫的**幾個月後自己都看不懂的情況出現 =  = 。所以寫**不能任憑發揮龍飛鳳舞,他們也要有自己的規範,才能統一,優美。下面是網上找到的谷歌**的一些總結,僅供參考。

1. .cc中的不具名命名空間可避免命名衝突、限定作用域,避免直接使用using提示符汙

命名空間;

2.巢狀類符合區域性使用原則,只是不能在其他標頭檔案中前置宣告,盡量不要public

3.盡量不用全域性函式和全域性變數,考慮作用域和命名空間限制,盡量單獨形成編譯單元;

4.多執行緒中的全域性變數(含靜態成員變數)不要使用class型別(含stl容器),避免

不明確行為導致的bug

作用域的使用,除了考慮名稱汙染、可讀性之外,主要是為降低耦合度,提高編譯、執行

效率。1.不在建構函式中做太多邏輯相關的初始化;

2.編譯器提供的預設建構函式不會對變數進行初始化,如果定義了其他建構函式,編譯器

不再提供,需要編碼者自行提供預設建構函式;

3.為避免隱式轉換,需將單引數建構函式宣告為explicit

4.為避免拷貝建構函式、賦值操作的濫用和編譯器自動生成,可目前宣告其為private

且無需實現;

5.僅在作為資料集合時使用struct

6.組合>實現繼承>介面繼承>私有繼承,子類過載的虛函式也要宣告virtual關鍵字,

雖然編譯器允許不這樣做;

7.避免使用多重繼承,使用時,除乙個基類含有實現外,其他基類均為純介面;

8.介面類類名以inte***ce為字尾,除提供帶實現的虛析構函式、靜態成員函式外,其

他均為純虛函式,不定義非靜態資料成員,不提供建構函式,提供的話,宣告為protected

9.為降低複雜性,盡量不過載操作符,模板、標準類中使用時提供文件說明;

10.訪問函式一般內聯在標頭檔案中;

11.宣告次序:public->protected->private

12.函式體盡量短小、緊湊,功能單一。

1.對於智慧型指標,安全第

一、方便第二,盡可能區域性化(scoped_ptr);

2.引用形參加上const,否則使用指標形參;

3.函式過載的使用要清晰、易讀;

4.鑑於容易誤用,禁止使用預設函式引數(值得商榷);

5.禁止使用變長陣列;

6.合理使用友元;

7.為了方便**管理,禁止使用異常(值得商榷);

8.禁止使用rtti,否則重新設計**吧;

9.使用c++風格的型別轉換,除單元測試外不要使用dynamic_cast

10.使用流還printf + read/writeit is a problem

11.能用前置自增/減不用後置自增/減;

12. const能用則用,提倡const在前;

13.使用確定大小的整型,除位組外不要使用無符號型;

14.格式化輸出及結構對齊時,注意32位和64位的系統差異;

15.除字串化、連線外盡量避免使用巨集;

16.整數用0,實數用0.0,指標用null,字元(串)用'\0'

17.sizeof(varname)代替sizeof(type)

18.只使用boost中被認可的庫。

1.總體規則:不要隨意縮寫,如果說changelocalvalue寫作chglocval還有情可

原的話,把modifyplayername寫作mdfplynm就太過分了,除函式名可適當為動

詞外,其他命名盡量使用清晰易懂的名詞;

2.巨集、列舉等使用全部大寫+下劃線;

3.變數(含類、結構體成員變數)、檔案、命名空間、訪問函式等使用全部小寫+下劃線 ,

類成員變數以下劃線結尾,全域性變數以g_開頭;

4.普通函式、型別(含類與結構體、列舉型別)、常量等使用大小寫混合,不含下劃線;

5.參考現有或相近命名約定。

注:只要有好的命名規範,什麼樣子都隨意,比如我比較常用的大小駝峰,全域性g打頭,指標p打頭等等。

1.關於注釋風格,很多c++coders更喜歡行注釋,c coders或許對塊注釋依然情

有獨鍾,或者在檔案頭大段大段的注釋時使用塊注釋;

2.檔案注釋可以炫耀你的成就,也是為了捅了簍子別人可以找你;

3.注釋要言簡意賅,不要拖沓冗餘,複雜的東西簡單化和簡單的東西複雜化都是要被鄙視

的;4.對於chinese coders來說,用英文注釋還是用中文注釋,it is a problem,但不

管怎樣,注釋是為了讓別人看懂,難道是為了炫耀程式語言之外的你的母語或外語水平嗎;

5.注釋不要太亂,適當的縮排才會讓人樂意看,但也沒有必要規定注釋從第幾列開始(我

個人傾向於space

6. todo很不錯,有時候,注釋確實是為了標記一些未完成的或完成的不盡如人意的地方 ,

這樣一搜尋,就知道還有哪些活要幹,日誌都省了。

注:這個詳解很有意思,可以去看一下

css命名規範總結

網頁製作中規範使用div css命名規則,可以改善優化功效特別是團隊合作時候可以提供合作製作效率。一 命名規則說明 1 所有的命名最好都小寫 2 屬性的值一定要用雙引號 括起來 3 每個標籤都要有開始和結束,且要有正確的層次,排版有規律工整 4 空元素要有結束的tag或於開始的tag後加上 5 表現...

Python 命名規範總結

模組名和包名採用小寫字母並且以下劃線分隔單詞的形式 如 browser driver 類名或異常名採用每個單詞首字母大寫的方式 如 basepage,keyboardinterrupt 全域性或者類常量,全部使用大寫字母,並且以下劃線分隔單詞 如 constant name 其餘變數命名包括方法名,...

Android中命名規範總結

1 類和介面都用大駝峰命名 所有單詞首字母大寫 2 方法和變數都用小駝峰命名 除了首字母,其餘單詞的首字母大寫 3 常量全部大寫。4 包名 包名由全部小寫字母組成,包 packages 採用反網域名稱命名規則,全部使用小寫字母。一級包名為com,二級包名為xx 可以是公司或則個人的隨便 包名根據應用...