總有一種感覺,自己寫的**和別人寫的**總是不同,感覺自己寫的**非常的醜陋,別人的非常的優美。有些自己寫的**幾個月後自己都看不懂的情況出現 = = 。所以寫**不能任憑發揮龍飛鳳舞,他們也要有自己的規範,才能統一,優美。下面是網上找到的谷歌**的一些總結,僅供參考。
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/write,it 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 可以是公司或則個人的隨便 包名根據應用...