資源描述:
《編碼規(guī)范V100》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、編號(hào):GF_Code_V1.0.0C#編碼規(guī)范保密級(jí)別:保密文件狀態(tài)[]草稿文件[√]正式文件[]更改正式文件文件標(biāo)識(shí):GF_Code_V1.0當(dāng)前版本:V1.0.0作者:謝換青審核:完成日期:2011-11-1124/24版本歷史版本/狀態(tài)作者參與者起止日期備注V1.0.0謝換青2011-09-10至2011-11-1124/24目錄1文檔描述51.1目的51.2讀者對(duì)象51.3適用范圍51.4定義52編程準(zhǔn)則52.1變量使用52.2數(shù)據(jù)庫(kù)操作62.3對(duì)象使用62.4結(jié)構(gòu)化要求62.5函數(shù)返回值原則72.6關(guān)鍵字使用原則72.7架構(gòu)使用原則73編碼規(guī)則73.1錯(cuò)
2、誤檢查規(guī)則73.2大括號(hào)規(guī)則83.3縮進(jìn)規(guī)則93.4IfThenElse規(guī)則93.5Switch…Case…規(guī)則103.6單語(yǔ)句規(guī)則103.7單一功能規(guī)則103.8獨(dú)立賦值規(guī)則103.9模塊化規(guī)則103.10交流規(guī)則114命名規(guī)范114.1命名規(guī)范114.2變量(Variable)命名114.3常量(const)命名144.4類(Class)命名1424/244.5接口(Interface)命名154.6方法(Method)命名154.7命名空間(NameSpace)命名155注釋規(guī)范155.1概述155.2自建代碼文件注釋165.3模塊(類)注釋165.4類屬性
3、注釋175.5方法注釋175.6代碼間注釋176代碼包的版本號(hào)186.1代碼包的標(biāo)識(shí)187輸入控制校驗(yàn)規(guī)則198附件198.1控件縮寫前綴19124/241引言1.1目的為了統(tǒng)一公司軟件開(kāi)發(fā)的設(shè)計(jì)過(guò)程中關(guān)于代碼編寫時(shí)的編寫規(guī)范和具體開(kāi)發(fā)工作時(shí)的編程規(guī)范,保證代碼的一致性,便于交流和維護(hù),特制定此規(guī)范。1.2讀者對(duì)象參與本項(xiàng)目開(kāi)發(fā)工作的軟件工程師1.3適用范圍軟件項(xiàng)目開(kāi)發(fā)的代碼編寫階段和后期維護(hù)階段。1.4定義灰色字體表示部分為優(yōu)先原則,非必行約定。藍(lán)色字體表示部分為代碼演示部分。綠色字體表示部分為代碼注釋演示部分。格式描述中,符號(hào)[]表示必選元素。格式描述中,符號(hào)
4、()表示可選元素。2編程準(zhǔn)則2.1變量使用a)?一個(gè)變量只能有一個(gè)用途;變量的用途必須和變量的名稱保持一致。b)?所有變量都必須在類和函數(shù)最前面定義,并分類排列。24/241.1數(shù)據(jù)庫(kù)操作a)??查找數(shù)據(jù)庫(kù)表或視圖時(shí),只能取出確實(shí)需要的那些字段。b)??使用無(wú)關(guān)聯(lián)子查詢,而不要使用關(guān)聯(lián)子查詢。c)??清楚明白地使用列名,而不能使用列的序號(hào)。d)??用事務(wù)保證數(shù)據(jù)的完整性。1.2對(duì)象使用a)盡可能晚地創(chuàng)建對(duì)象,并且盡可能早地釋放它。b)關(guān)于對(duì)象的創(chuàng)建,盡量使用工廠模式集中生產(chǎn)。1.3結(jié)構(gòu)化要求a)???禁止出現(xiàn)兩條等價(jià)的支路。例如:if(a==2)?????????
5、???//??????elseif(a==3)????????????//??????elseif(a==2)????????????//??????else??????????//??b)?避免使用GOTO語(yǔ)句c)?用IF語(yǔ)句來(lái)強(qiáng)調(diào)只執(zhí)行兩組語(yǔ)句中的一組。盡量不使用ELSEGOTO和ELSERETURN。d)用Switch…Case…實(shí)現(xiàn)多路分支,避免使用多IF嵌套e)避免從循環(huán)引出多個(gè)出口。f)函數(shù)只有一個(gè)出口。24/24g)在同一個(gè)類中讀寫數(shù)據(jù)源數(shù)據(jù)要保持一致如:classhello{????privatestring_Name;publicstringNa
6、me{Get{return_Name;}Set{_Name=value;}}PublicstringGetName(){//這里應(yīng)該讀寫Name屬性應(yīng)該統(tǒng)一為this.Name而不是_NameIf(!string.isNullOrEmpty(this.Name)){Returnstring.format(“Mynameis{0}”,this.Name);}}}1.1函數(shù)返回值原則1)?函數(shù)返回值避免使用結(jié)構(gòu)體等復(fù)雜類型24/241.1關(guān)鍵字使用原則1)partial關(guān)鍵字必需只作用于同一架構(gòu)層上(在不同架構(gòu)層上需要實(shí)現(xiàn)同一個(gè)類功能的,使用繼承)2)partial關(guān)
7、鍵字最好只作用于同一命名空間上1.2架構(gòu)使用原則1)低層類不允許使用高層類2)低層類庫(kù)不允許引用高層類庫(kù)2編碼規(guī)則2.1錯(cuò)誤檢查規(guī)則a)?編程中要考慮函數(shù)的各種執(zhí)行情況,盡可能處理所有流程情況。b)?檢查所有的系統(tǒng)調(diào)用的錯(cuò)誤信息,除非要忽略錯(cuò)誤。c)?將函數(shù)分兩類:一類為與屏幕的顯示無(wú)關(guān),另一類與屏幕的顯示有關(guān)。對(duì)于與屏幕顯示無(wú)關(guān)的函數(shù),函數(shù)通過(guò)返回值來(lái)報(bào)告錯(cuò)誤。對(duì)于與屏幕顯示有關(guān)的函數(shù),函數(shù)要負(fù)責(zé)向用戶發(fā)出警告,并進(jìn)行錯(cuò)誤處理。d)?錯(cuò)誤處理代碼一般放在函數(shù)末尾。e)?對(duì)于通用的錯(cuò)誤處理,可建立通用的錯(cuò)誤處理函數(shù),處理常見(jiàn)的通用的錯(cuò)誤。f)異常必須有效處理,如果
8、不能有效處