




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、代碼開(kāi)發(fā)規(guī)范文件狀態(tài): 草稿 正式 修改文件標(biāo)識(shí):當(dāng)前版本:1.1作 者:Empty聯(lián)系電話:最后更新:2014-04-07版本記錄日期版本號(hào)作者說(shuō)明2014-4-21.0Empty創(chuàng)建2014-4-71.1Empty添加前言、注釋規(guī)范與編碼規(guī)范目 錄1.前言41.1編寫目的41.2適用范圍41.3基本要求42.命名規(guī)范42.1字母大小寫約定42.1.1說(shuō)明42.1.2Pascal風(fēng)格42.1.3Camel風(fēng)格52.2標(biāo)識(shí)符的大小寫規(guī)則52.3通用命名約定52.3.1選擇名稱52.3.2字母縮寫詞62.4命名空間命名62.5類、結(jié)構(gòu)和接口命名62.6邏輯層類命名62.7文件夾命名73.注釋規(guī)范
2、73.1模塊(類)注釋規(guī)范73.2類屬性注釋規(guī)范73.3方法注釋規(guī)范73.4代碼間注釋規(guī)范84.編碼規(guī)范91. 前言1.1 編寫目的為了保證編寫出的程序都符合相同的規(guī)范,保證一致性、統(tǒng)一性而建立的程序編碼規(guī)范。編碼規(guī)范對(duì)于程序員而言尤為重要,有以下幾個(gè)原因:1) 一個(gè)軟件的生命周期中,80%的花費(fèi)在于維護(hù)。2) 幾乎沒(méi)有任何一個(gè)軟件,在其整個(gè)生命周期中,均由最初的開(kāi)發(fā)人員來(lái)維護(hù)。3) 編碼規(guī)范可以改善軟件的可讀性,可以讓程序員盡快而徹底地理解新的代碼 。每個(gè)軟件開(kāi)發(fā)人員都必須遵守統(tǒng)一的編碼規(guī)范。1.2 適用范圍本規(guī)范適用于從零開(kāi)始編寫自己的C# 框架的開(kāi)發(fā)。1.3 基本要求盡量使代碼簡(jiǎn)單直白。
3、2. 命名規(guī)范2.1 字母大小寫約定2.1.1 說(shuō)明表達(dá)清晰的命名規(guī)范是程序規(guī)劃的核心,如果規(guī)范的命名能清晰的表達(dá)出相應(yīng)的功能,就可以讓人“望文知意”,提高開(kāi)發(fā)效率和系統(tǒng)的可維護(hù)性。反之,如果命名不能表達(dá)其含義,例如“aaa”、“bbb ()”,那么將適得其反。2.1.2 Pascal風(fēng)格包含一到多個(gè)單詞,每一個(gè)單詞第一個(gè)字母大寫,其余字母均小寫。例如:HelloWorld、SetName等。2.1.3 Camel風(fēng)格包含一到多個(gè)單詞,第一個(gè)單詞首字母小寫,其余單詞首字母大寫。例如:name、productId等。2.2 標(biāo)識(shí)符的大小寫規(guī)則1) 除了參數(shù)與變量外,所有命名空間名稱、類、函數(shù)、接
4、口、屬性等名稱的命名,使用 Pascal 風(fēng)格。2) 參數(shù)與變量的命名,使用Camel風(fēng)格。2.3 通用命名約定約定的是如何選擇最適當(dāng)?shù)拿Q,這些準(zhǔn)則適用于所有標(biāo)識(shí)符命名。2.3.1 選擇名稱1) 請(qǐng)選擇易讀的英文名稱例如,英文 Order的意思為規(guī)則、次序、訂購(gòu)等,如果用在排序列中就不是很合適,用來(lái)表示訂單則更具可讀性??勺x性比詳細(xì)描述更重要,比如表示坐標(biāo)名稱ScreenX就比ScreenHorizontally 更具可讀性。2) 除下劃線外,不要使用連字符或任何其他非字母數(shù)字字符在數(shù)據(jù)庫(kù)表字段名稱設(shè)計(jì)時(shí),與其他表字段有關(guān)聯(lián)時(shí),適當(dāng)?shù)氖褂帽砻?下橫線+字段名,可以更清晰的表現(xiàn)出該字段與關(guān)聯(lián)表
5、對(duì)應(yīng)字段的關(guān)系。比如產(chǎn)品分類表ProductClass有字段Id與Name,那么產(chǎn)品表綁定這兩個(gè)字段的名稱可命名為ProductClass_Id與ProductClass_Name,這樣在查看產(chǎn)品表時(shí)就可以清晰的知道這兩個(gè)字段與分類表的關(guān)系。3) 避免使用與常用編程語(yǔ)言的關(guān)鍵字沖突的標(biāo)識(shí)符4) 變量和方法參數(shù)使用Camel 風(fēng)格 例如:string productName = ;int number=0;string sqlString=;double averageScore=0.0;Users users=new Users();Users model=new Users();Users
6、userModel=new Users();const string const_String = ;(不同公司有不同的約定,具體根據(jù)自己公司情況設(shè)置而定)Private string GetProductName(int id)return ;5) 不要使用成員屬性作為成員變量的前綴(其他變量命名也一樣)例如: 不要像Users m_users;這樣定義成員變量,可以使用第4點(diǎn)的設(shè)置。2.3.2 字母縮寫詞1) 通常,不應(yīng)使用縮寫2) 除非這種縮寫已廣泛接受,又或者團(tuán)隊(duì)當(dāng)中大家都認(rèn)可一種縮寫例如,使用 OnButtonClick,如果團(tuán)隊(duì)中普遍認(rèn)可OnBtnClick這種寫法也是可以的。2.
7、4 命名空間命名命名空間命名采用Pascal風(fēng)格,取名的一般規(guī)則如下。CompanyName. ProjectName (公司名稱.項(xiàng)目名稱)例如:Microsoft.Office需要用復(fù)數(shù)時(shí),請(qǐng)使用復(fù)數(shù)。例如,使用System.Collections而不是System.Collection。需要縮寫時(shí),不需要加復(fù)數(shù)。例如:使用System.IO而不是System.IOs。2.5 類、結(jié)構(gòu)和接口命名1) 按照 Pascal 大小寫格式,使用名詞或名詞短語(yǔ)為類、接口和值類型命名2) 接口命名以字母 I 為前綴例如:IComponent3) 派生類的末尾使用基類名稱例如,從 Stream 繼承的
8、Framework 類型以 Stream 結(jié)尾,從 Exception 繼承的類型以 Exception 結(jié)尾。2.6 邏輯層類命名按照 Pascal 大小寫格式,使用名詞或名詞短語(yǔ)命名,并加上后綴Logic2.7 文件夾命名文件夾以功能模塊名稱,按照 Pascal 大小寫格式命名。比如后端管理功能以及權(quán)限相關(guān)功能,全部放到Systems文件夾里。3. 注釋規(guī)范3.1 模塊(類)注釋規(guī)范 模塊開(kāi)始必須以以下形式書寫模塊注釋: /模塊編號(hào):/作用:/作者:作者中文名/編寫日期:/如果模塊有修改,則每次修改必須添加以下注釋:/Log編號(hào):/修改描述:/作者:修改者中文名/修改日期:/3.2 類屬性
9、注釋規(guī)范 在類的屬性必須以以下格式編寫屬性注釋: / /屬性說(shuō)明/ 3.3 方法注釋規(guī)范 在類的方法聲明前必須以以下格式編寫注釋 / / 說(shuō)明:/ / param name=/ / 3.4 代碼間注釋規(guī)范 代碼間注釋分為單行注釋和多行注釋: 單行注釋:/多行注釋:/*多行注釋1多行注釋2多行注釋3*/代碼行數(shù)太多而不容易區(qū)分時(shí)注釋:/* *代碼塊功能名稱 */或/*多行注釋1多行注釋2*/或者也可以使用下面方法:/* 代碼塊功能名稱開(kāi)始 */* 代碼塊功能名稱結(jié)束 */注釋說(shuō)明A.代碼中遇到語(yǔ)句塊時(shí)必須添加注釋(if,for,foreach,),添加的注釋必須能夠說(shuō)明此語(yǔ)句塊的作用和實(shí)現(xiàn)手段(
10、所用算法等等)。 對(duì)一個(gè)數(shù)值變量采用不是0,-1等的數(shù)值初始化,給出選擇該值的理由。B.盡量多點(diǎn)注釋,就算能一目了然的命名最好也順便寫一寫注釋,方便以后接收的人能更容易理解程序(方便不太懂英文的程序員)。C.如果因?yàn)槟撤N原因使用了復(fù)雜艱澀的原理,為程序配備良好的文檔和更多的注釋。4. 編碼規(guī)范1)縮進(jìn)和間隔:縮進(jìn)用TAB,不用 SPACES。2)注釋需和代碼對(duì)齊。多使用#regedit和#endregion代碼塊。3)在代碼中垂直對(duì)齊左括號(hào)和右括號(hào)。if (x = 0)Response.Write(用戶編號(hào)必須輸入!); 不允許以下情況:if(x = 0) Response.Write(用戶編
11、號(hào)必須輸入!);或者:if(x = 0) Response.Write(用戶編號(hào)必須輸入!); 4)適當(dāng)?shù)脑黾涌招?,?lái)增加代碼的可讀性。在下列情況下應(yīng)該有兩行空行:l同一文件的不同部分之間;l在類,接口以及彼此之間; 在下列情況之間應(yīng)該有一行空行:l方法之間;l局部變量和它后邊的語(yǔ)句之間;l方法內(nèi)的功能邏輯部分之間;5)避免使用大文件。如果一個(gè)文件里的代碼超過(guò)300400行,必須考慮將代碼分開(kāi)到不同類中。當(dāng)然模板生成類與邏輯層類除外。6)避免寫太長(zhǎng)的方法。一個(gè)典型的方法代碼在125行之間。如果一個(gè)方法發(fā)代碼超過(guò)25行,應(yīng)該考慮將其分解為不同的方法。7)為了防止在閱讀代碼時(shí)不得不滾動(dòng)源代碼編輯器
12、,每行代碼或注釋在1024*768的顯示頻率下不得超過(guò)一顯示屏8)在大多數(shù)運(yùn)算符之前和之后使用空格,這樣做時(shí)不會(huì)改變代碼的意圖卻可以使代碼容易閱讀。例:int j = i + k; 而不應(yīng)寫為int j=i+k;括號(hào)和它里面的字符之間不應(yīng)該出現(xiàn)空格。括號(hào)應(yīng)該和它前邊的關(guān)鍵詞留有空格。例:while (true) ;但是方法名和左括號(hào)之間不應(yīng)該有空格。參數(shù)之間的逗號(hào)后應(yīng)該加一空格。例:method1(int i1, int i2)for語(yǔ)句里的表達(dá)式之間加一空格。例:for(expr1; expr2; expr3)強(qiáng)制類型轉(zhuǎn)換時(shí),在類型和變量之間加一空格。例:(int) i ; 9)所有可供用戶
13、輸入的字段值,必須需忽略前后空白后(不包含密碼);在對(duì)字段值進(jìn)行有效性驗(yàn)證。對(duì)提交進(jìn)數(shù)據(jù)庫(kù)的內(nèi)容必須進(jìn)行SQL注入過(guò)濾與XSS過(guò)濾。10)一個(gè)方法只完成一個(gè)任務(wù)。不要把多個(gè)任務(wù)組合到一個(gè)方法中,即使那些任務(wù)非常小。11)避免使用很多成員變量,聲明局部變量,并傳遞給方法。12)不要在方法間共享成員變量,如果在幾個(gè)方法間共享一個(gè)成員變量,那就很難知道是哪個(gè)方法在什么時(shí)候修改了它的值。13)不在代碼中使用具體的路徑和驅(qū)動(dòng)器名,使用相對(duì)路徑,并使路徑可編程。永遠(yuǎn)別設(shè)想你的代碼是在“C:”盤運(yùn)行。你不會(huì)知道,一些用戶在網(wǎng)絡(luò)或“Z:”盤運(yùn)行程序。14)應(yīng)用程序啟動(dòng)時(shí)作些“自檢”并確保所需文件和附件在指定的位置。如果需要的配置文件找不到,應(yīng)用程序需能自己創(chuàng)建使用默認(rèn)值的一份。如果在配置文件中發(fā)現(xiàn)錯(cuò)誤值,應(yīng)用程序要拋出錯(cuò)誤,給出提示消息告訴用戶正確值。15)出現(xiàn)任何問(wèn)題給用戶一個(gè)友好的提示,錯(cuò)誤消息需能幫助用戶解決問(wèn)題。永遠(yuǎn)別用像“應(yīng)用程序出錯(cuò)”,“發(fā)現(xiàn)一個(gè)錯(cuò)誤”等錯(cuò)誤消息。而應(yīng)給出像“更新數(shù)據(jù)庫(kù)失敗,請(qǐng)確保登陸id和密碼正確” 的具體消息。顯示錯(cuò)誤消息時(shí),除了說(shuō)哪里錯(cuò)了,還應(yīng)提示用戶如何解決問(wèn)題。不要用像“更新數(shù)據(jù)庫(kù)失敗”這樣的,要提示用戶怎么做:“更新數(shù)據(jù)庫(kù)失敗,請(qǐng)確保登陸id和密碼正確” 16)錯(cuò)誤處理和異常事件不要“捕捉了異常卻什么也不做”。如果隱藏了一個(gè)異常,你將永遠(yuǎn)不知道異常
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老機(jī)構(gòu)醫(yī)養(yǎng)結(jié)合運(yùn)營(yíng)策略與養(yǎng)老機(jī)構(gòu)品牌影響力報(bào)告
- 整棟商業(yè)地產(chǎn)租賃承包管理服務(wù)合同
- 曹瑞情感糾葛財(cái)產(chǎn)分割離婚協(xié)議書
- 產(chǎn)權(quán)交易合同模板:商業(yè)地產(chǎn)買賣及廣告位租賃協(xié)議
- 出租車大包租賃及廣告位合作合同
- 農(nóng)業(yè)產(chǎn)業(yè)鏈金融2025年新型農(nóng)業(yè)經(jīng)營(yíng)主體培育策略研究報(bào)告
- 農(nóng)業(yè)產(chǎn)業(yè)集群農(nóng)業(yè)產(chǎn)業(yè)園區(qū)農(nóng)業(yè)產(chǎn)業(yè)園區(qū)農(nóng)業(yè)科技成果轉(zhuǎn)化與推廣報(bào)告001
- 2025屆西藏昌都地區(qū)類烏齊縣高考數(shù)學(xué)五模試卷含解析
- 2024-2025學(xué)年長(zhǎng)沙市重點(diǎn)中學(xué)九上化學(xué)期末質(zhì)量跟蹤監(jiān)視試題含解析
- 浙江師范大學(xué)《廣告設(shè)計(jì)(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 國(guó)家漢語(yǔ)主題詞表
- 國(guó)家開(kāi)放大學(xué)專科《機(jī)械制圖》形考任務(wù)1-4試題及答案
- DB34∕T 4004-2021 埋地聚乙烯燃?xì)夤艿蓝ㄆ跈z驗(yàn)規(guī)則
- 裝修代賣合同范本
- 高大模板安全施工施工方法及工藝要求
- 九年級(jí)上冊(cè)英語(yǔ)書譯林版單詞表
- 車庫(kù)業(yè)主與租賃者安裝充電樁協(xié)議書
- 臺(tái)球廳桌球俱樂(lè)部創(chuàng)業(yè)計(jì)劃書課件模板
- 醫(yī)務(wù)人員技術(shù)檔案
- 人工智能創(chuàng)業(yè)項(xiàng)目計(jì)劃書
- 2023年鐵嶺市三支一扶筆試真題
評(píng)論
0/150
提交評(píng)論