.NET代碼規(guī)范學(xué)習(xí)_第1頁(yè)
.NET代碼規(guī)范學(xué)習(xí)_第2頁(yè)
.NET代碼規(guī)范學(xué)習(xí)_第3頁(yè)
.NET代碼規(guī)范學(xué)習(xí)_第4頁(yè)
.NET代碼規(guī)范學(xué)習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.NET 代碼規(guī)范學(xué)習(xí)下邊我談?wù)?NET代碼規(guī)范的學(xué)習(xí):一、注釋規(guī)范1,自建代碼文件注釋?zhuān)簩?duì)于自己創(chuàng)建的代碼文件(如函數(shù)、腳本),在文件開(kāi)頭,一般編寫(xiě)如下注釋?zhuān)?*作者:小組: 說(shuō)明:創(chuàng)建日期:版本號(hào):*/2,標(biāo)準(zhǔn)注釋?zhuān)涸谀K、類(lèi)、屬性、方法前一行添加注釋?zhuān)员阏{(diào)用的時(shí)候提示用戶(hù)下以方法聲明做例子:/<summary>/depiction:<對(duì)該方法的說(shuō)明>/</summary>/<paramname="<參數(shù)名稱(chēng)>"><參數(shù)說(shuō)明></param>/<returns>/<對(duì)

2、方法返回值的說(shuō)明,該說(shuō)明必須明確說(shuō)明返回的值代表什么含義>/</returns>如果模塊只進(jìn)行部分少量代碼的修改時(shí),則每次修改須添加以下注釋?zhuān)?修改人:/修改日期:< YYYY-MM-DD >/備份: /* 原代碼內(nèi)容*/ 將原代碼內(nèi)容注釋掉,然后添加新代碼使用以下注釋?zhuān)?添加人: /添加日期: <YYYY-MM-DD> 代碼內(nèi)容/結(jié)束: 對(duì)于重構(gòu)的類(lèi)文件,需要對(duì)原來(lái)的類(lèi)文件做備份,然后放在同級(jí)目錄下,在原有文件名后面添加后綴_BAK,以便日后版本升級(jí)時(shí)整理源碼。3.代碼中的注釋?zhuān)捍a間注釋分為單行注釋和多行注釋?zhuān)簡(jiǎn)涡凶⑨專(zhuān)?<單行注釋>多

3、行注釋?zhuān)?*多行注釋1多行注釋2多行注釋3*/代碼中遇到語(yǔ)句塊時(shí)必須添加注釋?zhuān)╥f,for,foreach,),添加的注釋必須能夠說(shuō)明此語(yǔ)句塊的作用和實(shí)現(xiàn)手段(所用算法、循環(huán)條件、不同分支的意義等等)。這是添加注釋的學(xué)習(xí),添加適當(dāng)?shù)淖⑨專(zhuān)瑫?huì)使你的代碼就像課文一樣容易讀懂。下邊看第二部分。二,命名規(guī)范:總體來(lái)說(shuō)需要做到這幾點(diǎn):a,名字應(yīng)該能夠標(biāo)識(shí)事物的特性,并且與業(yè)務(wù)掛鉤。b,名字一律使用英文單詞,而不能為拼音。c,名字可以有兩個(gè)或三個(gè)單詞組成,但不應(yīng)多于4個(gè),控制在3至30個(gè)字母以?xún)?nèi)。d,在名字中,多個(gè)單詞用大寫(xiě)第一個(gè)字母(其它字母小寫(xiě))來(lái)分隔。例如:IsSuperUser。在具體任務(wù)開(kāi)發(fā)中,

4、如果有特定的命名約定,則在相應(yīng)的軟件開(kāi)發(fā)計(jì)劃中予以明確定義及上報(bào)質(zhì)量管理部審計(jì)組。分點(diǎn)來(lái)說(shuō)具體的:1,命名概括:Pascal命名法:所有單詞的首字母都大寫(xiě),其他字母小寫(xiě)Camel命名法:除首字母外,其他單詞的首字母大寫(xiě),其他字母小寫(xiě)o 在類(lèi)屬性的名稱(chēng)中包含類(lèi)名是多余的,如 Book.BookTitle。而是應(yīng)該使用 Book.Title。o 在變量名中使用互補(bǔ)對(duì),如 min/max、begin/end 和 open/close。o 布爾變量名應(yīng)該包含 Is,這意味著 Yes/No 或 True/False 值,如 fileIsFound。o 即使對(duì)于可能僅出現(xiàn)在幾個(gè)代碼行中的生存期很短的變量,

5、仍然使用有意義的名稱(chēng)。僅對(duì)于短循環(huán)索引使用單字母變量名,如 i 或 j。文件名要和類(lèi)名相同,一般情況下一個(gè)類(lèi)一個(gè)文件,文件名遵從Pascal命名法,無(wú)特殊情況,擴(kuò)展名小寫(xiě),使用統(tǒng)一而又通用的文件擴(kuò)展名: C# 類(lèi) .cs。2,縮寫(xiě):為了避免混淆和保證跨語(yǔ)言交互操作:o 不要將縮寫(xiě)或縮略形式用作標(biāo)識(shí)符名稱(chēng)的組成部分。例如,使用 GetWindow,而不要使用 GetWin。o 不要使用計(jì)算機(jī)領(lǐng)域中未被普遍接受的縮寫(xiě)。 o 在適當(dāng)?shù)臅r(shí)候,使用眾所周知的縮寫(xiě)替換冗長(zhǎng)的詞組名稱(chēng)。例如,用 UI 作為 User Interface 縮寫(xiě),用 OLAP 作為 On-line Analytical Proc

6、essing 的縮寫(xiě)。o 在使用縮寫(xiě)時(shí),對(duì)于超過(guò)兩個(gè)字符長(zhǎng)度的縮寫(xiě)請(qǐng)使用 Pascal 大小寫(xiě)或 Camel 大小寫(xiě)。但是,應(yīng)當(dāng)大寫(xiě)僅有兩個(gè)字符的縮寫(xiě),如,System.IO,而不是 System.Io。o 對(duì)于某些名字中單詞都比較長(zhǎng)的情況,可以自行寫(xiě)一個(gè)縮寫(xiě)名字(名字中的關(guān)鍵字不能縮寫(xiě)),將所有的縮寫(xiě)做一個(gè)說(shuō)明文件,放在同級(jí)目錄下的開(kāi)頭。3,命名空間:o 命名命名空間時(shí)的一般性規(guī)則是使用公司名稱(chēng),后跟技術(shù)名稱(chēng)和可選的功能與設(shè)計(jì),如下所示: CompanyName.TechnologyName.Feature.Designo 命名空間使用Pascal大小寫(xiě),用逗號(hào)分隔開(kāi)。 o Technolo

7、gyName 指的是該項(xiàng)目的英文縮寫(xiě),或軟件名。 o 命名空間和類(lèi)不能使用同樣的名字 4,類(lèi)o 使用 Pascal 大小寫(xiě)。 o 使用全稱(chēng)避免縮寫(xiě),除非縮寫(xiě)已是一種公認(rèn)的約定,如URL、HTML。對(duì)于某個(gè)命名空間、文件夾下類(lèi)名中單詞都比較長(zhǎng)的情況,可以縮寫(xiě)(名字中的關(guān)鍵字不能縮寫(xiě),其他單詞只取首字母),將所有的縮寫(xiě)做一個(gè)說(shuō)明文件,放在同級(jí)目錄下的開(kāi)頭。 o 不使用下劃線( _ )。 o 類(lèi)的命名要見(jiàn)名知意。o 數(shù)據(jù)訪問(wèn)層:類(lèi)名后加DAL(Data Access Layer)。注意:在.NET中沒(méi)有DAO的概念,DAO是在Java中出現(xiàn)的,表示一種數(shù)據(jù)訪問(wèn)方式。o 業(yè)務(wù)邏輯層:類(lèi)名后加BLL(B

8、usiness Logic Layer),如果類(lèi)名特長(zhǎng)可以使用縮寫(xiě),但在文檔中要注明??s寫(xiě)的全稱(chēng)和意義。o 界面層:asp中針對(duì)頁(yè)面的類(lèi),不用添加UI前綴或后綴。o 實(shí)體層:實(shí)體類(lèi)后加Entity做結(jié)尾,如果其他方法中,調(diào)用實(shí)體類(lèi)作為參數(shù),參數(shù)前面加小寫(xiě)en,如果參數(shù)過(guò)長(zhǎng),使用縮寫(xiě),但在文檔中也要注明。o 如果系統(tǒng)規(guī)模比較大,應(yīng)該考慮,對(duì)類(lèi)進(jìn)行分組放到不同的文件夾中,便于維護(hù),把握粒度。5,接口:o 使用 Pascal 大小寫(xiě)。 o 在原有類(lèi)名基礎(chǔ)上加“I”,如:IUserDaoo 不使用下劃線(_)。 o 當(dāng)類(lèi)是接口的標(biāo)準(zhǔn)執(zhí)行時(shí),定義這一對(duì)類(lèi)/接口組合就要使用相似的名稱(chēng)。兩個(gè)名稱(chēng)的不同之處只

9、是接口名前有一個(gè)I前綴?;蛘咴趯?shí)現(xiàn)類(lèi)名后加“Impl”后綴。public interface IComponentpublic class Component : IComponentpublic class ComponentImpl : IComponent6,枚舉 (Enum)o 對(duì)于 Enum 類(lèi)型和值名稱(chēng)使用 Pascal 大小寫(xiě)。 o 命名不能縮寫(xiě),枚舉內(nèi)的內(nèi)容可以縮寫(xiě)。 o 命名禁止加Enum 后綴。7,參數(shù)o 參數(shù)名稱(chēng)使用Camel大小寫(xiě) o 參數(shù)名稱(chēng)可縮寫(xiě)8,方法o 以動(dòng)詞開(kāi)頭。 o 使用 Pascal 大小寫(xiě)。 o 禁止縮寫(xiě),除非名詞本身含有縮寫(xiě)。如:AddStudentM

10、gr ()9.屬性(property) o 以名詞或形容詞命名。o 使用 Pascal 大小寫(xiě)。 o 禁止縮寫(xiě)。10,委托o 以名詞或形容詞命名。o 使用 Pascal 大小寫(xiě)。 o 禁止縮寫(xiě)。o 如果與事件(event)關(guān)聯(lián),則名稱(chēng)命名使用EventHandler后綴,否則其他名稱(chēng)均以Delegate后綴結(jié)尾。如/ 普通委托定義public delegate void SetMethodDelegate(string name);/委托與事件關(guān)聯(lián)public delegate void MouseEventHandler(objectsender, MouseEventArgs e);11,

11、事件o 使用 Pascal 大小寫(xiě)。 o 禁止縮寫(xiě)。o 名稱(chēng)命名使用 Event后綴。o 用動(dòng)詞或名詞命名,帶有時(shí)間意義,如:MouseMove事件、Closing 事件、Closed 事件。o 指定兩個(gè)名為 sender 和 e 的參數(shù)。sender 參數(shù)表示引發(fā)事件的對(duì)象。e為事件類(lèi)的實(shí)例。e參數(shù)類(lèi)型使用適當(dāng)而特定的事件類(lèi)。 o 用 EventArgs 后綴命名事件參數(shù)類(lèi)。示例:public delegate void MouseEventHandler(objectsender, MouseEventArgs e);public event MouseEventHandlerMouseE

12、vent; /事件定義12,常量 (const)o 全部大寫(xiě),單詞間以“_”分隔。o 禁止縮寫(xiě)。 o13,字段o private、protected 使用 Camel 大小寫(xiě)。o 禁止使用public。14,靜態(tài)字段o 使用名詞、名詞短語(yǔ)或者名詞的縮寫(xiě)命名靜態(tài)字段。 o 使用 Pascal 大小寫(xiě)。15,集合o 命名使用復(fù)數(shù)。16,范型o 以一個(gè)大寫(xiě)字母(建議優(yōu)先使用T)表示類(lèi)的類(lèi)型,以一個(gè)小寫(xiě)字母(如:t)表示類(lèi)名。三,編碼規(guī)則a. 大括號(hào)規(guī)則o 書(shū)寫(xiě)規(guī)則:if (expression) (推薦)或:if (expression) b. 縮進(jìn)規(guī)則使用一個(gè)“Tab”為每層次縮進(jìn)(默認(rèn)4個(gè)空格,

13、有的規(guī)范也要求2個(gè)空格,依要求而定,所有IDE都可以設(shè)置)。c. 小括號(hào)規(guī)則o 不要把小括號(hào)和關(guān)鍵詞(if 、while等)緊貼在一起,要用空格隔開(kāi)它們。如:if (true)o 不要把小括號(hào)和函數(shù)名緊貼在一起。 o 除非必要,不要在Return返回語(yǔ)句中使用小括號(hào)。因?yàn)殛P(guān)鍵字不是函數(shù),如果小括號(hào)緊貼著函數(shù)名和關(guān)鍵字,二者很容易被看成是一體的。d. 單語(yǔ)句規(guī)則除非這些語(yǔ)句有很密切的聯(lián)系,否則每行只寫(xiě)一個(gè)語(yǔ)句。e. 模塊化規(guī)則某一功能,如果重復(fù)實(shí)現(xiàn)一遍以上,即應(yīng)考慮模塊化,將它寫(xiě)成通用函數(shù)。并向小組成員發(fā)布。同時(shí)要盡可能利用其它人的現(xiàn)成模塊。f. 函數(shù)復(fù)雜度規(guī)則單個(gè)函數(shù)的功能不能過(guò)于復(fù)雜,不能超

14、過(guò)以下限定:o 單一功能子函數(shù)代碼不得超過(guò)50行、形參個(gè)數(shù)不得超過(guò)7個(gè)、程序嵌套深度不得超過(guò)7層。o 圈復(fù)雜度必須在15以?xún)?nèi),對(duì)程序的修改或擴(kuò)展不得增加其原有圈復(fù)雜度。g. 編碼風(fēng)格規(guī)則編碼過(guò)程中需遵循以下風(fēng)格習(xí)慣:o 代碼未寫(xiě),文檔先行,注釋必須按照固定統(tǒng)一范式撰寫(xiě)。o 關(guān)系運(yùn)算必須常量在左、變量在右。o 不許使用復(fù)雜的運(yùn)算表達(dá)式,必要時(shí)添加括號(hào)而不依賴(lài)于優(yōu)先級(jí)。o 魔鬼數(shù)字需用宏定義替代。 o 局部變量必須初定義、避免不必要的內(nèi)存操作、內(nèi)存操作必須考慮異常處理。h. 版本管理規(guī)則本項(xiàng)目中,每個(gè)任務(wù)在完成一個(gè)穩(wěn)定的版本后,都應(yīng)打包并且歸檔。源碼包的版本號(hào)由圓點(diǎn)隔開(kāi)的兩個(gè)數(shù)字組成,第一個(gè)數(shù)字表

15、示發(fā)行號(hào),第二個(gè)數(shù)字表示該版的修改號(hào)。具體用法如下:o 當(dāng)源碼包初版時(shí),版本號(hào)為 V1.00; o 當(dāng)源碼包被局部修改或bug修正時(shí),發(fā)行號(hào)不變,修改號(hào)第二個(gè)數(shù)字增1。例如,對(duì)初版源碼包作了第一次修訂,則版本號(hào)為 V1.01; o 當(dāng)源碼包在原有的基礎(chǔ)上增加部分功能,發(fā)行號(hào)不變,修改號(hào)第一個(gè)數(shù)字增1,例如,對(duì)V1.12版的基礎(chǔ)上增加部分功能,則新版本號(hào)為 V1.20; o 當(dāng)源碼包有重要修改或局部修訂累積較多導(dǎo)致源碼包發(fā)生全局變化時(shí),發(fā)行號(hào)增1。例如,在 V1.15 版的基礎(chǔ)上作了一次全面修改,則新版本號(hào)為 V2.00。四,數(shù)據(jù)庫(kù)命名規(guī)則a. 數(shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)名采用首字母大寫(xiě),避免系統(tǒng)保留的表名

16、。如:LibraryMaintainSystemb. 數(shù)據(jù)庫(kù)表使用T_表名,表名采用首字母大寫(xiě)。如:T_Class如果系統(tǒng)分多個(gè)子系統(tǒng)模塊,那么將模塊的縮寫(xiě)加在T后,用下劃線與表名分開(kāi)。如:基礎(chǔ)系統(tǒng):TB_Class (Basic)評(píng)教系統(tǒng):TA_表名 (Assess)考試系統(tǒng):TE_表名 (Exam)選課系統(tǒng):TC_表名 (Choose)關(guān)聯(lián)數(shù)據(jù)表:TR_表A表B ,兩個(gè)表首字母大寫(xiě)。 一對(duì)多關(guān)系,多在前,一在后。一對(duì)一和多對(duì)多關(guān)系,兩個(gè)表的先后,以字母排序。如果分模塊,那么將模塊縮寫(xiě)添加在T后如:TBR_ClassGrade 表示基礎(chǔ)系統(tǒng),班級(jí)和年級(jí)的關(guān)系表。c. 表字段第一個(gè)字母小寫(xiě),后面的單詞或拼音,采用第一個(gè)字母大寫(xiě),命名規(guī)則只來(lái)自于業(yè)務(wù),盡量表達(dá)出列的含義。命名一般為名詞或形容詞。d. 視圖視圖名 = V + “_” + 名稱(chēng)e. 主鍵主鍵名 = PK + “_”+ 表名f. 外鍵外鍵名 = FK + “_” + 表名g. 索引索引名 = IDX + “_” + 表名 + 相關(guān)字段/索引含義。h

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論