ASP.NET的软件开发规范_转载
生活随笔
收集整理的這篇文章主要介紹了
ASP.NET的软件开发规范_转载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.排版
序號
總 則 條 款
說明
1.1
較長的語句(>80字符)要分成多行書寫,長表達式要在低優先級操作符處劃分新行,操作符放在新行之首,劃分出的新行要進行適當的縮進,使排版整齊,語句可讀。
1.2
程序塊要采用縮進風格編寫,縮進的空格數為4個。
用空格縮進,不用Tab鍵!
1.3
相對獨立的程序塊之間、變量說明之后必須加空行。
1.4
若函數或過程中的參數較長,則要進行適當的劃分。
Public Void Test(string 1,string 2,
int 1,int 2)
1.5
避免在條件表達式內調用方法
實例:if(add(XXX)){}
建議:Bool flg = add(XXX);
If(flg){}
1.6
避免使用foreach循環不可變量類型集合,如字符串數組。
1.7
只對具有并行條件邏輯的簡單操作使用switch/case語句。
1.8
對于短條件序列和復雜條件,優先使用嵌套if/else語句,而不是switch/case。
1.9
函數或過程的開始、結構的定義及循環、判斷等語句中的代碼都要采用縮進風格,case語句下的情況處理語句也要遵從語句縮進要求。
1.10
程序塊的分界符(如C/C++語言的大括號‘{’和‘}’)應各獨占一行并且位于同一列,同時與引用它們的語句左對齊。在函數體的開始、類的定義、結構的定義、枚舉的定義以及if、for、do、while、switch、case語句中的程序都要采用如上的縮進方式。
1.11
在兩個以上的關鍵字、變量、常量進行對等操作時,它們之間的操作符之前、之后或者前后要加空格;進行非對等操作時,如果是關系密切的立即操作符(如->、==、<>),后不應加空格。
1.12
循環、判斷等語句中若有較長的表達式或語句,則要進行適應的劃分,長表達式要在低優先級操作符處劃分新行,操作符放在新行之首。
1.13
不允許把多個短語句寫在一行中,即一行只寫一條語句。
1.14
if、while、for、default、do等語句自占一行。
2.注釋
序號
總 則 條 款
說明
2.1
一般情況下,源程序有效注釋量必須在20%以上。
2.2
源文件頭部應進行注釋,列出:版權說明、版本號、生成日期、作者、模塊目的/功能或其它需要注釋的說明等。
2.3
HMTL等格式的網頁文件頭部應使用“<%-- /* …… */ --%>”進行注釋,列出:版權說明、版本號、生成日期、主要函數和網頁的功能、修改日志等。
2.4
函數頭部應進行注釋,列出:函數的目的/功能、輸入參數、輸出參數、返回值等。
2.5
邊寫代碼邊注釋,修改代碼同時修改相應的注釋,以保證注釋與代碼的一致性。不再有用的注釋要刪除。
2.6
注釋的內容要清楚、明了,含義準確,防止注釋二義性。
2.7
避免在注釋中使用縮寫,特別是非常用縮寫。
2.8
注釋應與其描述的代碼相近,對代碼的注釋應放在其上方或右方(對單條語句的注釋)相鄰位置,不可放在下面,如放于上方則需與其上面的代碼用空行隔開。
2.9
數據結構聲明(包括數組、結構、類、枚舉等),如果其命名不是充分自注釋的,必須加以注釋。對數據結構的注釋應放在其上方相鄰位置,不可放在下面;對結構中的每個域的注釋放在此域的右方。
2.10
全局變量要有較詳細的注釋,包括對其功能、取值范圍、哪些函數或過程存取它以及存取時注意事項等的說明。
2.11
注釋與所描述內容進行同樣的縮排。
2.12
對變量的定義和分支語句(條件分支、循環語句等)必須編寫注釋。
2.13
對于switch語句下的case語句,如果因為特殊情況需要處理完一個case后進入下一個case處理,必須在該case語句處理完、下一個case語句前加上明確的注釋。
3.標識符命名
序號
總 則 條 款
說明
3.1
標識符的命名要清晰、明了,有明確含義,同時使用完整的單詞或大家基本可以理解的縮寫,避免使人產生誤解.
String str_Password;
3.1
不要用漢語拼音做標識符的命名,可以用金山詞霸(或其它單詞工具)中的單詞做為命名的標準。
3.2
命名中若使用特殊約定或縮寫,則要有注釋說明。
Public string str_password //系統登錄密碼
3.3
對于全局或頁面級變量命名,禁止取單個字符(如i、j、k...),建議除了要有具體含義外,還能表明其變量類型、數據類型等,但i、j、k作局部循環或方法中變量是允許的。
錯誤:int I;
允許:
for(int i=0;i<count;i++)
3.4
命名規范必須與所使用的系統風格保持一致,并在同一項目中統一,比如采用UNIX的全小寫加下劃線的風格或大小寫混排的方式,不要使用大小寫與下劃線混排的方式,但是不能在同一個項目中使用兩種不同風格。
風格1:string str_UserName;
風格2:string strUserName;
3.5
使用2-3個字母組成的前綴標記符來標識變量的數據類型以及基本數據類型的符號常量。
String str_UserName;
4.數據庫命名
序號
總 則 條 款
說明
4.1
數據庫、表的命名:根據項目的中文名稱通過金山詞霸查到的單詞做為數據庫的名稱。數據庫命名要用公司英文名稱縮寫(大寫)做前綴,系統英文含義名稱做后綴,后綴長度不應超過15。
例如:
1.固得派(GoodPai)系統
Gp_系統英文名稱
2.固得派(GoodPai)系統表
模塊:登陸注冊、添加刪除
數據庫命名:
Gp_login_表名;
4.2
字段名稱命名不要用中文和漢語拼音。字段名稱不能超過15個字符。
4.3
存儲過程命名用大寫P做前綴加上功能模塊再加后綴,后綴不得超過15個字符。
P_Login_GetMaxID;
4.4
視圖命名用大寫V做前綴加上功能模塊再加后綴,后綴不得超過15個字符
V_Login_AllUserInfo;
4.5
使用2-3個字母組成的前綴標記符來標識變量的數據類型以及基本數據類型的符號常量。
String str_UserName;
5.類、函數過程的命名
序號
總 則 條 款
說明
5.1
函數,過程,類的命名不能使用單個的英文字母,必需使用英文單詞做為名稱。
5.2
類、對象命名首字母必須小寫,其它單詞首字母大寫。
類:getStudentsInfo;
變量:string strUserName;
5.3
方法、屬性命名首字母大寫。
方法:public void GetMaxID();
屬性:Form1.ID = this.txtUserID.Text;
6.可讀性
序號
總 則 條 款
說明
6.1
注意運算符的優先級,并用括號明確表達式的操作順序,避免使用默認優先級。
6.2
避免使用不易理解的數字,用有意義的標識來替代。涉及物理狀態或者含有物理意義的常量,不應直接使用數字,必須用有意義的枚舉或宏來代替。
7.變量
序號
總 則 條 款
說明
7.1
去掉沒必要的公共變量。
7.2
公共變量命名在系統開發前就做好,以每個系統名稱加上pub得到全局變量名稱。
7.3
仔細定義并明確公共變量的含義、作用、取值范圍及公共變量間的關系。
7.4
當向公共變量傳遞數據時,要十分小心,防止賦與不合理的值或越界等現象發生。
7.5
防止局部變量與公共變量同名。
7.6
盡量在聲明變量的語句將變量初始化,嚴禁使用未經初始化的變量作為右值。
錯誤: Int I;
Int b=I;
正確: Int I=6;
Int B=I;
7.7
使用要求的最簡單的數據類型、列表或對象。例如,一般使用int類型,除非知道需要存儲64位的值,才使用long類型
7.8
始終使用內置C#數據類型別名,而不是.NET公共類型系統(CTS),包括:
????????? 使用short不用System.Int16
????????? 使用int不用System.Int32
????????? 使用long不用System.Int64
????????? 使用string不用System.String
7.9
只是將成員變量聲明為private,使用屬性為帶有public、protected或internal訪問修飾符的變量提供訪問。
7.10
浮點值在小數點前后至少應該各包括一個數字。
例:float 11.0;
7.11
不要在循環內連接字符串
7.12
不要將字符串與String.Empty或””相比較來檢查空字符串,而是使用String.Length==0進行比較。
8.函數和過程
序號
總 則 條 款
說明
8.1
對所調用函數的錯誤返回碼要仔細、全面地處理。
8.2
明確函數功能,精確(而不是近似)地實現函數設計。
9.異常處理
序號
總 則 條 款
說明
9.1
使用驗證來避免異常。
9.2
不得聲明空try/catch。
9.3
避免在catch塊內嵌套try/catch。
9.4
只捕獲可以處理的異常
9.5
避免再次引發異常,而是允許其冒泡。
9.6
只使用finally塊從try語句中釋放資源
10.代碼測試與維護
序號
總 則 條 款
說明
10.1
單元測試要求至少達到語句覆蓋達80%以上。
10.2
單元測試開始要跟蹤每一條語句,并觀察數據流及變量的變化。
10.3
清理、整理或優化后的代碼要經過審查及測試。
10.4
代碼版本升級要經過嚴格測試。
10.5
使用工具軟件對代碼版本進行維護。
11.網頁設計相關
序號
總 則 條 款
說明
11.1
html頭一般需要遵循以下格式:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>自己的窗體命名</title>
<link rel="stylesheet" href="some.css" type="text/css">
<script language="javascript">
//some javascript
</script>
</head>
注意:必須指定一個有意義的<title>,嚴禁出現“Untitled”或“未命名”之類的<title>。
特別提示:這是所有軟件開發人員必須認真遵守和執行的開發規范,成功源于細節,程序開發更需如此。
序號
總 則 條 款
說明
1.1
較長的語句(>80字符)要分成多行書寫,長表達式要在低優先級操作符處劃分新行,操作符放在新行之首,劃分出的新行要進行適當的縮進,使排版整齊,語句可讀。
1.2
程序塊要采用縮進風格編寫,縮進的空格數為4個。
用空格縮進,不用Tab鍵!
1.3
相對獨立的程序塊之間、變量說明之后必須加空行。
1.4
若函數或過程中的參數較長,則要進行適當的劃分。
Public Void Test(string 1,string 2,
int 1,int 2)
1.5
避免在條件表達式內調用方法
實例:if(add(XXX)){}
建議:Bool flg = add(XXX);
If(flg){}
1.6
避免使用foreach循環不可變量類型集合,如字符串數組。
1.7
只對具有并行條件邏輯的簡單操作使用switch/case語句。
1.8
對于短條件序列和復雜條件,優先使用嵌套if/else語句,而不是switch/case。
1.9
函數或過程的開始、結構的定義及循環、判斷等語句中的代碼都要采用縮進風格,case語句下的情況處理語句也要遵從語句縮進要求。
1.10
程序塊的分界符(如C/C++語言的大括號‘{’和‘}’)應各獨占一行并且位于同一列,同時與引用它們的語句左對齊。在函數體的開始、類的定義、結構的定義、枚舉的定義以及if、for、do、while、switch、case語句中的程序都要采用如上的縮進方式。
1.11
在兩個以上的關鍵字、變量、常量進行對等操作時,它們之間的操作符之前、之后或者前后要加空格;進行非對等操作時,如果是關系密切的立即操作符(如->、==、<>),后不應加空格。
1.12
循環、判斷等語句中若有較長的表達式或語句,則要進行適應的劃分,長表達式要在低優先級操作符處劃分新行,操作符放在新行之首。
1.13
不允許把多個短語句寫在一行中,即一行只寫一條語句。
1.14
if、while、for、default、do等語句自占一行。
2.注釋
序號
總 則 條 款
說明
2.1
一般情況下,源程序有效注釋量必須在20%以上。
2.2
源文件頭部應進行注釋,列出:版權說明、版本號、生成日期、作者、模塊目的/功能或其它需要注釋的說明等。
2.3
HMTL等格式的網頁文件頭部應使用“<%-- /* …… */ --%>”進行注釋,列出:版權說明、版本號、生成日期、主要函數和網頁的功能、修改日志等。
2.4
函數頭部應進行注釋,列出:函數的目的/功能、輸入參數、輸出參數、返回值等。
2.5
邊寫代碼邊注釋,修改代碼同時修改相應的注釋,以保證注釋與代碼的一致性。不再有用的注釋要刪除。
2.6
注釋的內容要清楚、明了,含義準確,防止注釋二義性。
2.7
避免在注釋中使用縮寫,特別是非常用縮寫。
2.8
注釋應與其描述的代碼相近,對代碼的注釋應放在其上方或右方(對單條語句的注釋)相鄰位置,不可放在下面,如放于上方則需與其上面的代碼用空行隔開。
2.9
數據結構聲明(包括數組、結構、類、枚舉等),如果其命名不是充分自注釋的,必須加以注釋。對數據結構的注釋應放在其上方相鄰位置,不可放在下面;對結構中的每個域的注釋放在此域的右方。
2.10
全局變量要有較詳細的注釋,包括對其功能、取值范圍、哪些函數或過程存取它以及存取時注意事項等的說明。
2.11
注釋與所描述內容進行同樣的縮排。
2.12
對變量的定義和分支語句(條件分支、循環語句等)必須編寫注釋。
2.13
對于switch語句下的case語句,如果因為特殊情況需要處理完一個case后進入下一個case處理,必須在該case語句處理完、下一個case語句前加上明確的注釋。
3.標識符命名
序號
總 則 條 款
說明
3.1
標識符的命名要清晰、明了,有明確含義,同時使用完整的單詞或大家基本可以理解的縮寫,避免使人產生誤解.
String str_Password;
3.1
不要用漢語拼音做標識符的命名,可以用金山詞霸(或其它單詞工具)中的單詞做為命名的標準。
3.2
命名中若使用特殊約定或縮寫,則要有注釋說明。
Public string str_password //系統登錄密碼
3.3
對于全局或頁面級變量命名,禁止取單個字符(如i、j、k...),建議除了要有具體含義外,還能表明其變量類型、數據類型等,但i、j、k作局部循環或方法中變量是允許的。
錯誤:int I;
允許:
for(int i=0;i<count;i++)
3.4
命名規范必須與所使用的系統風格保持一致,并在同一項目中統一,比如采用UNIX的全小寫加下劃線的風格或大小寫混排的方式,不要使用大小寫與下劃線混排的方式,但是不能在同一個項目中使用兩種不同風格。
風格1:string str_UserName;
風格2:string strUserName;
3.5
使用2-3個字母組成的前綴標記符來標識變量的數據類型以及基本數據類型的符號常量。
String str_UserName;
4.數據庫命名
序號
總 則 條 款
說明
4.1
數據庫、表的命名:根據項目的中文名稱通過金山詞霸查到的單詞做為數據庫的名稱。數據庫命名要用公司英文名稱縮寫(大寫)做前綴,系統英文含義名稱做后綴,后綴長度不應超過15。
例如:
1.固得派(GoodPai)系統
Gp_系統英文名稱
2.固得派(GoodPai)系統表
模塊:登陸注冊、添加刪除
數據庫命名:
Gp_login_表名;
4.2
字段名稱命名不要用中文和漢語拼音。字段名稱不能超過15個字符。
4.3
存儲過程命名用大寫P做前綴加上功能模塊再加后綴,后綴不得超過15個字符。
P_Login_GetMaxID;
4.4
視圖命名用大寫V做前綴加上功能模塊再加后綴,后綴不得超過15個字符
V_Login_AllUserInfo;
4.5
使用2-3個字母組成的前綴標記符來標識變量的數據類型以及基本數據類型的符號常量。
String str_UserName;
5.類、函數過程的命名
序號
總 則 條 款
說明
5.1
函數,過程,類的命名不能使用單個的英文字母,必需使用英文單詞做為名稱。
5.2
類、對象命名首字母必須小寫,其它單詞首字母大寫。
類:getStudentsInfo;
變量:string strUserName;
5.3
方法、屬性命名首字母大寫。
方法:public void GetMaxID();
屬性:Form1.ID = this.txtUserID.Text;
6.可讀性
序號
總 則 條 款
說明
6.1
注意運算符的優先級,并用括號明確表達式的操作順序,避免使用默認優先級。
6.2
避免使用不易理解的數字,用有意義的標識來替代。涉及物理狀態或者含有物理意義的常量,不應直接使用數字,必須用有意義的枚舉或宏來代替。
7.變量
序號
總 則 條 款
說明
7.1
去掉沒必要的公共變量。
7.2
公共變量命名在系統開發前就做好,以每個系統名稱加上pub得到全局變量名稱。
7.3
仔細定義并明確公共變量的含義、作用、取值范圍及公共變量間的關系。
7.4
當向公共變量傳遞數據時,要十分小心,防止賦與不合理的值或越界等現象發生。
7.5
防止局部變量與公共變量同名。
7.6
盡量在聲明變量的語句將變量初始化,嚴禁使用未經初始化的變量作為右值。
錯誤: Int I;
Int b=I;
正確: Int I=6;
Int B=I;
7.7
使用要求的最簡單的數據類型、列表或對象。例如,一般使用int類型,除非知道需要存儲64位的值,才使用long類型
7.8
始終使用內置C#數據類型別名,而不是.NET公共類型系統(CTS),包括:
????????? 使用short不用System.Int16
????????? 使用int不用System.Int32
????????? 使用long不用System.Int64
????????? 使用string不用System.String
7.9
只是將成員變量聲明為private,使用屬性為帶有public、protected或internal訪問修飾符的變量提供訪問。
7.10
浮點值在小數點前后至少應該各包括一個數字。
例:float 11.0;
7.11
不要在循環內連接字符串
7.12
不要將字符串與String.Empty或””相比較來檢查空字符串,而是使用String.Length==0進行比較。
8.函數和過程
序號
總 則 條 款
說明
8.1
對所調用函數的錯誤返回碼要仔細、全面地處理。
8.2
明確函數功能,精確(而不是近似)地實現函數設計。
9.異常處理
序號
總 則 條 款
說明
9.1
使用驗證來避免異常。
9.2
不得聲明空try/catch。
9.3
避免在catch塊內嵌套try/catch。
9.4
只捕獲可以處理的異常
9.5
避免再次引發異常,而是允許其冒泡。
9.6
只使用finally塊從try語句中釋放資源
10.代碼測試與維護
序號
總 則 條 款
說明
10.1
單元測試要求至少達到語句覆蓋達80%以上。
10.2
單元測試開始要跟蹤每一條語句,并觀察數據流及變量的變化。
10.3
清理、整理或優化后的代碼要經過審查及測試。
10.4
代碼版本升級要經過嚴格測試。
10.5
使用工具軟件對代碼版本進行維護。
11.網頁設計相關
序號
總 則 條 款
說明
11.1
html頭一般需要遵循以下格式:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>自己的窗體命名</title>
<link rel="stylesheet" href="some.css" type="text/css">
<script language="javascript">
//some javascript
</script>
</head>
注意:必須指定一個有意義的<title>,嚴禁出現“Untitled”或“未命名”之類的<title>。
特別提示:這是所有軟件開發人員必須認真遵守和執行的開發規范,成功源于細節,程序開發更需如此。
總結
以上是生活随笔為你收集整理的ASP.NET的软件开发规范_转载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何定义和建立架构?
- 下一篇: asp.net ajax控件工具集 Au