版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、編碼及命名規(guī)范整理人:陳春祥日 期:2011-01-04適用范圍本文檔適用人員范圍:開發(fā)人員。本文檔適用開發(fā)范圍:C#開發(fā)、JAVA開發(fā)。注:本文檔為使用進(jìn)行開發(fā)的程序員提供編碼規(guī)范的指導(dǎo),其提供的一些編碼通用規(guī)則也可以供使用其他語言編程的開發(fā)者參考。第一部分 命名規(guī)范1.大寫樣式1.1 首字母大寫樣式每個單詞開頭的字母大寫(如TestCounter).1.2 首字母小寫樣式除了第一個單詞外的其他單詞的開頭字母大寫. 如. testCounter.1.2 全字母大寫樣式全部單詞都大寫,單詞間以“_”符號隔開。盡量少用縮寫命名. 如. TEST_COUNTER.2.命名指導(dǎo)2.1 名稱
2、所有命名都應(yīng)該盡可能使用完整的詞,例如 SpellCheck??s寫詞可能有許多種形式,因此可能產(chǎn)生混淆。請注意:縮寫詞可能很難理解。如果整個單詞太長,則使用完整的第一音節(jié)或經(jīng)過仔細(xì)選擇的縮寫詞。2.2 區(qū)分大小寫為了避免混淆和保證跨語言交互操作,請遵循有關(guān)區(qū)分大小寫的使用的下列規(guī)則:1.不要使用要求區(qū)分大小寫的名稱。對于區(qū)分大小寫和不區(qū)分大小寫的語言,組件都必須完全可以使用。不區(qū)分大小寫的語言無法區(qū)分同一上下文中僅大小寫不同的兩個名稱。因此,在創(chuàng)建的組件或類中必須避免這種情況。2.不要創(chuàng)建僅是名稱大小寫有區(qū)別的兩個命名空間。例如,不區(qū)分大小寫的語言無法區(qū)分以下兩個命名空間聲明。
3、60; namespace ee.cummings; namespace Ee.Cummings;3.不要創(chuàng)建具有僅是大小寫有區(qū)別的參數(shù)名稱的函數(shù)。下面的示例是不正確的。 void MyFu
4、nction(string a, string A)4.不要創(chuàng)建具有僅是大小寫有區(qū)別的類型名稱的命名空間。在下面的示例中,Point p 和 POINT p 是不適當(dāng)?shù)念愋兔Q,原因是它們僅在大小寫方面有區(qū)別。 System.Windows.Forms.Point p System.Windows.Forms.POINT p5.不要創(chuàng)建具有僅是大小寫有區(qū)別的屬性名稱的類型。在下面
5、的示例中,int Color 和 int COLOR 是不適當(dāng)?shù)膶傩悦Q,原因是它們僅在大小寫方面有區(qū)別。 int Color get, set int COLOR get, set6.不要創(chuàng)建具有僅是大小寫有區(qū)別的方法名稱的類型。在下面的示例中,calculate 和 Calculate 是不適當(dāng)?shù)姆椒Q,原因是它們僅在大小寫方面有區(qū)別。
6、 void calculate() void Calculate()2.3 縮寫為了避免混淆和保證跨語言交互操作,請遵循有關(guān)區(qū)縮寫的使用的下列規(guī)則:1.不要將縮寫或縮略形式用作標(biāo)識符名稱的組成部分。例如,使用 GetWindow,而不要使用 GetWin。 2.不要使用計算機領(lǐng)域中未被普遍接受的縮寫。3.在適當(dāng)?shù)臅r候,使用眾所周知的縮寫替換冗長的詞組名稱。例如,用 UI 作為 User Interface
7、的縮寫,用 OLAP 作為 On-line Analytical Processing 的縮寫。4.不要在標(biāo)識符或參數(shù)名稱中使用縮寫。如果必須使用縮寫,對于由多于兩個字符所組成的縮寫請使用首字母大寫樣式,雖然這和單詞的標(biāo)準(zhǔn)縮寫相沖突。 2.4 命名指導(dǎo)1.類名應(yīng)該為名詞及名詞短語,盡可能使用完整的詞.2.使用首字母大寫樣式3.不要使用類前綴4.在適當(dāng)?shù)牡胤?,使用?fù)合單詞命名派生的類。派生類名稱的第二個部分應(yīng)當(dāng)是基類的名稱。例如,ApplicationException 對于從名為 Exception 的類派生的類是適當(dāng)?shù)拿Q,原因是 ApplicationException 是一種
8、Exception。請在應(yīng)用該規(guī)則時進(jìn)行合理的判斷。例如,Button 對于從 Control 派生的類是適當(dāng)?shù)拿Q。盡管按鈕是一種控件,但是將 Control 作為類名稱的一部分將使名稱不必要地加長。 2.5 接口命名規(guī)則1.接口名稱應(yīng)該為名詞及名詞短語或者描述其行為的形容詞,盡可能使用完整的詞. (Example IComponent or IEnumberable)2.使用首字母大寫樣式3.使用字符I為前綴,并緊跟一個大寫字母(即接口名的第一個字母大寫)2.6 枚舉命名規(guī)則1.對于 Enum 類型和值名稱使用全字母大寫樣式。2.少用縮寫。 3.不要在 Enum類型名稱
9、上使用 Enum 后綴。 2.7只讀及常量變量命名1.靜態(tài)常量使用名詞及名詞短語2.使用全字母大寫樣式2.8參數(shù)及非常量變量命名1.使用描述性的命名,名稱應(yīng)該明確表達(dá)參數(shù)的意義及類型,優(yōu)先滿足參數(shù)的意義描述 2.使用首字母小寫樣式3.對類內(nèi)的成員變量或靜態(tài)變量不使用前綴。 公有成員使用首字母大寫樣式 私有成員使用首字母小寫樣式 內(nèi)部成員使用首字母小寫樣式 靜態(tài)變量使用全字母大寫樣式4.UI類的變量命名使用如下規(guī)則TextBox類:前綴txt+名稱(首字母小寫),如:txtCustomerName;Label類:前綴lbl+名稱(首字母小寫),如:lblCustomerName;Select類:
10、前綴sel+名稱(首字母小寫),如:selCustomerType;Radio類:前綴rdo+名稱(首字母小寫),如:rdoSubscribe;CheckBox類:前綴chk+名稱(首字母小寫),如:chkTVDataGrid類:前綴grd+名稱(首字母小寫),如grdCustomerListButton類:前綴btn+名稱(首字母小寫),如:btnSubmitForm類:前綴form+名稱(Pascal規(guī)則),如:formLogin2.9 變量命名1.在簡單的循環(huán)語句中計數(shù)器變量使用i, j, k, l, m, 2.使用首字母小寫樣式 2.11 屬性命名1.名稱應(yīng)該為名詞
11、及名詞短語2.使用首字母大寫樣式3.對于bool型屬性或者變量使用Is(is)作為前綴,不要使用Flag后綴,例如應(yīng)該使用IsDeleted,而不要使用DeleteFlag2.10 方法命名1.使用首字母大寫樣式2.對方法名采用一致的動詞/賓語或賓語/動詞順序。例如,將動詞置于前面時,所使用的名稱諸如 InsertWidget 和 InsertSprocket;將賓語置于前面時,所使用的名稱諸如 WidgetInsert 和 SprocketInsert。3.推薦名稱應(yīng)該為動詞或動詞短語.例如Save,SaveCustomer,而不要使用CustomerSave 4.不要在
12、方法中重復(fù)類的名稱。例如,如果某個類已命名為 Book,則不要將某個方法稱為 Book.CloseBook,而可以將方法命名為 Book.Close。 2.12 集合命名1.名稱應(yīng)該為名詞及名詞短語2.使用首字母大寫樣式3.名稱后面追加“Collection”2.13 事件命名1.event handlers命名使用EventHandler 后綴.2.兩個參數(shù)分別使用sender 及e3.使用首字母大寫樣式4.事件參數(shù)使用EventArgs 后綴5.事件命名使用語法時態(tài)反映其激發(fā)的狀態(tài),例如 Changed,Changing5.考慮使用動詞命名.2.14實體命名1.實體名稱
13、使用全字母大寫樣式命名.2.實體成員名稱要加前綴,例如int前綴是n,string前綴是ch。使用首字母大寫樣式如:public struct DEVICE_ROUTE_INFO /設(shè)備ID public int nDeviceID; /接口ID public int nInterfaceID; /端口索引 public int nInterfaceIndex;2.15 項目名稱1、項目名稱前綴要統(tǒng)一。例如所有備案系統(tǒng)的程序都用PRM做前綴,則以后增加任何程序代碼,都需要以PRM這個作為前綴做項目的名稱。2、項目名稱必須使用英文描述,要求英文字母不超過12個字母,并且使用英文單詞不可
14、超過2個單詞。還要要求命名詞要達(dá)意,一目了然。如果名稱使用英文單詞太多則可以把前面幾個單詞簡寫,即使用單詞首個字母即可。但是必須達(dá)到詞要達(dá)意的原則。2.16 命名空間寫代碼定義的任何類,都必須包含在指定的命名空間內(nèi)。根據(jù)不同類屬性可以設(shè)置不同的命名空間。命名空間定義格式:公司名(英文).項目名前綴.項目名稱.屬性名稱(自定義),使用首字母大寫樣式。例如:我們把所有數(shù)據(jù)模型定義的類都放在這個命名空間下:Sivan.PRM.Data.Model其中:Sivan-公司英文名
15、; PRM-項目名前綴 Data-項目名稱 Model-屬性名稱2.17大小寫規(guī)范總結(jié) 標(biāo)識符大小寫示例類/結(jié)構(gòu)首字母大寫樣式AppDomain枚舉類型首字母大寫樣式ErrorLevel枚舉值首字母大寫樣式FatalError事件首字母大寫樣式ValueChange異常類首字母大寫樣式WebException 注意
16、160; 總是以 Exception 后綴結(jié)尾。只讀的靜態(tài)字段首字母大寫樣式RedValue接口首字母大寫樣式IDisposable 注意 總是以 I 前綴開始。集合首字母大寫樣式CustomerCollection注意 總是以Collection結(jié)束方法首字母大寫樣式ToString命名空間首字母大寫樣式System.Drawing參數(shù)首字母小寫樣式typeName屬性首字母大寫樣式BackColor受保護(hù)的實例字段首字母小寫樣式redValue 注意 很少使用。屬性優(yōu)于使用受保護(hù)的實例字段。公共實例字
17、段首字母大寫RedValue 注意 很少使用。屬性優(yōu)于使用公共實例字段。 第二部分 編碼規(guī)范1. 源文件盡量保持類文件的簡短,最好不要超過2000行,每個類分別存放在單獨的文件中2.目錄結(jié)構(gòu)每個命名空間對應(yīng)一個目錄. (例如命名空間GIS.MyMedia.Web.UI對應(yīng)目錄為GIS/MyMedia/Web/UI,這樣可以方便的根據(jù)命名空間找到其相應(yīng)的目錄。3.排版3.1 換行當(dāng)代碼一行寫不下時,參考如下規(guī)則換行:1.在逗號后面換行.2.在操作符后面換行.3.對于表達(dá)式選用高級別處換行,而不要在低級別處換行4.新行表達(dá)式應(yīng)該與上一
18、行同一級別的該表達(dá)式對齊方法調(diào)用換行示例:longMethodCall(expr1, expr2,expr3, expr4, expr5);算術(shù)表達(dá)式換行示例:最佳風(fēng)格:Var = a * b / (c - g + f) +4 * z;不良風(fēng)格:var = a * b / (c - g +f) + 4 * z;第一個編碼為最佳風(fēng)格,因為其在括號外換行,使用了高級別處換行的規(guī)則. 注意在排版時,整個表達(dá)式前面的空白使用Tab,表達(dá)式內(nèi)部的空白使用空格> var = a * b / (c - g + f) +> .4 * z;'>' 代表 tab ,
19、'.' 代表空格.3.2空白使用Tab鍵而不要使用空格來作為排版的縮進(jìn)字符,使用Tab有如下好處:.Tab鍵只有一個字符,減少擊鍵次數(shù)。.如果你想增加或者減少縮排的空間,可以選定需要縮排的代碼塊,然后使用Tab增加縮排空間,使用Shift-Tab減少縮排空間.注釋4.1塊注釋盡量避免使用大塊注釋. 對于代碼描述使用C#推薦的/描述格式.如果你想使用塊注釋建議使用如下風(fēng)格: /* Line 1* Line 2* Line 3*/這種注釋風(fēng)格在視覺上和代碼區(qū)分開來在注釋后應(yīng)該緊跟一個空白行。4.單行注釋使用/作為單行注釋一般注釋的文本長度最好不要超過代碼的長度,如果一行代碼需要很多
20、的文本來解釋,往往說明該代碼過于復(fù)雜而可能存在Bug。4.3 注釋文檔.net支持注釋文檔,通過在編譯選項中指定XML的文件名稱,可以讓VS.net自動生成注釋文檔.這些注釋都是包含特定的XML標(biāo)簽。單行注釋風(fēng)格如下,例如:/ <summary>/ This class./ </summary>多行注釋風(fēng)格如下:/ <exception cref=”BogusException”>/ This exception gets thrown as soon as a/ Bogus flag gets set./ </exception>所有
21、的xml注釋必須以三個/開頭。Ndoc或者類似工具可以根據(jù)該注釋文檔生成.chm的幫助文件.定義5.1 每行定義數(shù)一個聲明對應(yīng)于一行,這樣可以方便注釋,int level; / indentation levelint size; / size of table定義的命名必須清晰的代表該變量的含義,命名規(guī)則參見本文件命名規(guī)范5.2 初始化盡量在定義時初始化,如下:string name = myObject.Name;int val = time.Hours;5.3 類及接口的定義編寫類及接口時,遵循如下規(guī)則:不要在方法名稱及圓括號間使用空格大括號“”應(yīng)該出現(xiàn)在定
22、義的下一行,“”及“”單獨占一行 .語句6.1 簡單語句每行應(yīng)該僅包含一個語句.6.2 返回值語句返回語句不要使用最外面的圓括號錯誤: return (n * (n + 1) / 2);正確: return n * (n + 1) / 2;6.3 If, if-else, if else-if else 語句if, if-else ,if else-if else 語句應(yīng)該按照如下示例使用:if (condition) DoSomething();. if (condition) DoSomething();.else DoSomethingOther();. if (condition) DoSomething();. else if (condition) DoSomethingOther();.else DoSomethingOtherAgain();.6.4 For / Foreach 語句使用for 語句的格式 :for (int i = 0; i < 5; +i).空白的for語句:for (initialization; condition; update);foreach 使用格式 :foreach (int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼鐵廠建設(shè)鋼筋工施工合同
- 高速公路服務(wù)區(qū)小青瓦施工協(xié)議
- 高鐵綠化帶改造承包合同
- 酒店建設(shè)硬裝合同
- 垃圾處理供貨施工合同范本
- 股份受讓協(xié)議三篇
- 股票交易所行紀(jì)合同(2篇)
- 外場試驗保密協(xié)議書
- 公司個人互賠協(xié)議書
- 土地出讓合同中關(guān)于納稅額的約定
- 體驗式家長會的實施與開展
- 《標(biāo)準(zhǔn)工時培訓(xùn)》課件
- 射擊館建設(shè)方案
- 應(yīng)用寫作-消息和通訊
- 華為公司客戶滿意度管理
- 四年級綜合實踐活動上三:學(xué)校中遵守規(guī)則情況調(diào)查教學(xué)課件
- 2023-2024學(xué)年江蘇省淮安市數(shù)學(xué)高一上期末復(fù)習(xí)檢測試題含解析
- 中學(xué)首席名師、名師、骨干教師、教壇新秀評選方案
- 國際物流運輸管理智慧樹知到課后章節(jié)答案2023年下上海海事大學(xué)
- 犯罪學(xué)智慧樹知到課后章節(jié)答案2023年下山東警察學(xué)院
- 03K132 風(fēng)管支吊架圖集
評論
0/150
提交評論