以下是本人對.Net平臺開發(fā)實踐的一些點滴總結。這里的技術規(guī)范主要是開發(fā)過程的代碼規(guī)范、數據庫設計規(guī)范、Com和.Net互操作規(guī)范;實踐精華是對技術實踐過程中的部分總結。
一、代碼規(guī)范
良好的代碼風格來自于同一的代碼規(guī)范。風格良好的代碼不僅具備可讀性和可維護性,同時也給人行云流水、賞心悅目之快感。
據Microsoft公司統(tǒng)計,基于微軟平臺的開發(fā)中,有70-80%的印度工程師在完成同類算法或者模塊時,使用的代碼基本一致;而相同的調查中只有20%的中國工程師們是基本一致的。這說明我們的代碼生產過程亟待規(guī)范。
實義命名
類型、變量、常量、方法等標識符一律采用對應的英文實義;如果涉及到兩個獨立的實義單詞,則中間用下劃線間隔或者單詞首字母大寫(兩種方式都可以);如果標識符的長度超過了30個字母,則基本上以英文單詞發(fā)音的重讀音節(jié)取選出三個字母,如Repeater用rpt,Management用mgt。
大小寫規(guī)則
目前一般有兩種大小寫規(guī)則:
Pascal大小寫形式,所有單詞第一個字母大寫,其他字母小寫。
Camel大小寫形式,除了第一個單詞,所有單詞第一個字母大寫,其他字母小寫。
類名使用Pascal大小寫形式
public class HelloWorld(或者Hello_World,以下同,不再贅述) { ... } |
方法使用Pascal大小寫形式
public class HelloWorld() { void SayHello(string name) { ... } } |
變量和方法參數使用Camel 大小寫形式
public class HelloWorld() { int totalCount = 0; void SayHello(string name) { string fullMessage = "Hello " + name; ... } } |
不要使用匈牙利方法來命名變量
以前,多數程序員喜歡把數據類型作為變量名的前綴而m_作為成員變量的前綴。例如: string m_sName;int nAge;
然而,這種方式在.NET編碼規(guī)范中是不推薦的。所有變量都用Camel 大小寫形式,而不是用數據類型和m_來作前綴。
用name,address,salary等代替nam,addr,sal。
別使用單個字母的變量象i,n,x 等。使用 index,temp等。用于循環(huán)迭代的變量例外:
如果變量只用于迭代計數,沒有在循環(huán)的其他地方出現,允許用單個字母的變量命名,而不是另外取實義名。
文件名要和類名匹配,例如,對于類HelloWorld,相應的文件名應為helloworld.cs。
縮進和間隔
縮進用TAB,不用 SPACES。
注釋需和代碼對齊。
遵循VS2005的自動對齊規(guī)則,不要人為的調整。
用一個空行來分開代碼的邏輯分組。
在一個類中,各個方法的實現體必須用空行間隔,大括弧"{}"需獨立一行。
在每個運算符和括號的前后都空一格。如:
If ( showResult == true ) { for ( int i = 0; i < 10; i++ ) { // } } |
而不是:
if(showResult==true) { for(int i= 0;i<10;i++) { // } } |
良好的編程習慣
避免使用大文件。如果一個文件里的代碼超過300~400行,必須考慮將代碼分開到不同類中。
避免寫太長的方法。一個典型的方法代碼在1~30行之間。如果一個方法發(fā)代碼超過30行,應該考慮將其分解為不同的方法。
方法名需能看出它作什么。別使用會引起誤解的名字。如果名字一目了然,就無需用文檔來解釋方法的功能了。
一個方法只完成一個任務。不要把多個任務組合到一個方法中,即使那些任務非常小。
使用C# 的特有類型,而不是System命名空間中定義的別名類型。如:
int age; string name; object contactInfo; |
而不是:
Int16 age; String name; Object contactInfo; |
這么做是基于如下兩點原因:(1)規(guī)范性和一致性;(2)便于跨語言平臺的移植。
別在程序中使用固定數值,用常量代替。別用字符串常數,盡量用資源文件。
避免使用很多成員變量,聲明局部變量,并傳遞給方法。
不要在方法間共享成員變量,如果在幾個方法間共享一個成員變量,那就很難知道是哪個方法在什么時候修改了它的值。必要時使用enum,別用數字或字符串來指示離散值。
別把成員變量聲明為 public或 protected。都聲明為private 而使用 public/protected 的Properties。
不在代碼中使用具體的路徑和驅動器名,使用相對路徑,并使路徑可編程。永遠別設想你的代碼是在"C:"盤運行。你不會知道,一些用戶在網絡或"Z:"盤運行程序。
應用程序啟動時作些"自檢"并確保所需文件和附件在指定的位置。必要時檢查數據庫連接,出現任何問題給用戶一個友好的提示。
如果需要的配置文件找不到,應用程序需能自己創(chuàng)建使用默認值。如果在配置文件中發(fā)現錯誤值,應用程序要拋出錯誤,給出提示消息告訴用戶正確值。錯誤消息需能幫助用戶解決問題。
注釋
別每行代碼,每個聲明的變量都做注釋。在需要的地方注釋。
可讀性強的代碼需要很少的注釋,如果所有的變量和方法的命名都很有意義,會使代碼可讀性很強并無需太多注釋。行數不多的注釋會使代碼看起來優(yōu)雅。
如果因為某種原因使用了復雜艱澀的原理,必須為程序配備良好的文檔和詳細的注釋。
對注釋做拼寫檢查,保證語法和標點符號的正確使用。
二、數據庫設計規(guī)范
表格分類與命名
數據表的分類關鍵詞標簽:.Net平臺開發(fā)規(guī)范
相關閱讀
熱門文章 誅仙3飛升任務怎么做-誅仙3飛升任務流程最新2022 鐘離圣遺物推薦-原神鐘離圣遺物詞條 解決方法:應用程序“DEFAULT WEB SITE”中的服務器錯誤 使用aspnet_regiis.exe 重新注冊.NET Framework
人氣排行 誅仙3飛升任務怎么做-誅仙3飛升任務流程最新2022 asp.net表單提交方法GET\POST 在ASP.NET中如何判斷用戶IE瀏覽器的版本 Asp.net中messagebox的實現方法 Asp.net中的web.config配置 在ASP.NET MVC中實現大文件異步上傳 asp.net獲取URL和IP地址 FileUpload上傳多文件出現錯誤的解決方法