ASP.NET編程規(guī)范之編碼規(guī)范淺析
ASP.NET編程規(guī)范之編碼規(guī)范都有哪些需要學習和注意的呢?下面開始我們的講解:
ASP.NET編程規(guī)范之編碼規(guī)范1.注釋
A. 每個頁面的開始必須有下面格式的注釋
- ’*********************************************
- '頁面名稱: frmStyleE
- '作用/描述: 款式查詢
- '輸入/發(fā)送:
- ' strUserList(): 被搜索的用戶列表。
- ' strTargetUser: 要搜索的用戶名。
- '輸出/返回格式: 在rasUserList 數(shù)組中rsTargetUse的第一次出現(xiàn)的索引。
- ' 如果目標用戶沒找到,返回-1。
- '原作者: Raymnod Fok 2002-1-1
- '原作日期:
- '修改者:
- '修改日期:
- '備注:
- '************************************************
注:左對齊,中間隔開4個Tab位(每個Tab縮進4位)
B. 所有變量及常量均要有注釋
C. 每個過程(函數(shù))也應該有注釋,以描述這個過程(函數(shù))的功能,以下是注釋的格式
- '***********************************************
- '函數(shù)名稱: intFindUser
- '目的: 在用戶列表數(shù)組中找出一個指定用戶的第一次出現(xiàn)位置。
- '輸入/發(fā)送:
- ' strUserList(): 被搜索的用戶列表。
- ' strTargetUser: 要搜索的用戶名。
- '輸出/返回格式: 在rasUserList 數(shù)組中rsTargetUser的第一次出現(xiàn)的索引。
- ' 如果目標用戶沒找到,返回-1。
- '參數(shù): intCol 需要獲得內容的當前文本
- '原作者: Raymnod Fok 2002-1-1
- '原作日期:
- '修改者:
- '修改日期:
- '備注:
- '************************************************
- Function pintFindUser (strUserList() As String, strTargetUser As String)As Integer
- Dim i As Integer ' 循環(huán)計數(shù)器。
- Dim blnFound As Integer ' 目標尋找標志。
- intFindUser = -1
- i = 0
- While i <= Ubound(strUserList) and Not blnFound
- If strUserList(i) = strTargetUser Then
- blnFound = True
- intFindUser = i
- End If
- Wend
- End Function
D. 過程(函數(shù))或存儲過程內部的注釋方法
應按功能塊分,注釋應寫在每一小段算法或一個小功能之前,不要與代碼、注釋搞成一團
E. 若是在程序代碼后面寫上注釋,則在代碼語句后面三個Tab位開始寫注釋
F. 如果注釋是針對程序中的部分代碼,需注明該段代碼的開始和結束部分
G. 存儲過程也應該寫上注釋,以下是存儲過程注釋的格式
- /*
- 存儲過程名: TSellMain_Qry
- 作用:查詢表 Sell_SellRecordMain的數(shù)據
- 輸入:
- 輸出:表 Sell_SellRecordMain的所有數(shù)據
- 原作者: quanysq
- 日期:
- 修改者:
- 修改日期:
- 備注:
- */
- CREATE PROCEDURE TSellMain_Qry
- AS
- select * from Sell_SellRecordMain
- GO
ASP.NET編程規(guī)范之編碼規(guī)范2.格式化代碼
A. 嵌套塊應有嚴格的層次縮進(每一層分別縮進1個Tab,注:每個Tab為4個英文字符)
B. 一個過程或函數(shù)不能太長,大致上應限制在200行內,否則應將其拆分為多個過程或函數(shù)
C. 當產生長字符串時,使用下劃線連接字符產生多行代碼
D. 對數(shù)據庫進行訪問數(shù)據庫、保存、刪除、顯示數(shù)據等操作時,統(tǒng)一使用公用類。
E. 在制作界面時,要對照標準,做到界面與流程要求達到一致,界面也要符合標準的規(guī)范
F. 在讀取數(shù)據顯示到界面時,要對照流程的要求與數(shù)據庫中的表和字段的有效性了解清楚,做到顯示的數(shù)據完全正確
G. 在處理操作界面數(shù)據時,要對照數(shù)據庫中數(shù)據有效性達到一致,數(shù)據與流程達到一致,并保證數(shù)據有效。數(shù)據要合理性(如:數(shù)量應該小于0或大于0,小數(shù)點等等)
H. 在保存數(shù)據處理中,要做到所見即所得,就是保存的數(shù)據要與界面數(shù)據相一致,并對照流程切保數(shù)據符合流程的要求。
I. 在讀取數(shù)據顯示到界面、界面數(shù)據操作、保存數(shù)據操作要多使用過程或函數(shù),盡量減少控制點,使程序系統(tǒng)化
J. 對于變量的命名,切記要規(guī)范
K. 在程序中要多加注釋,使程序更加清楚
L. 在退出頁面時,必須在Page_Disposed(sender,e)事件中釋放掉會駐留在內存的變量,主要是Session變量、DataSet變量
M. 流程圖必須簡要地規(guī)劃出程序的流程,其中列出實現(xiàn)該功能的模塊的名稱
N. 流程圖命名:與程序名相同
O. TextBox 控件的Enabled屬性為False時,其背景顏色必須設為灰色(顏色名稱: Silver)
P. 切換當前的控件,除了VB.net本身默認的Tab鍵外,再加上Enter鍵
Q. 關于并發(fā)控制,一般采取事務+鎖的方式處理,有三種情況:
a. 鎖定整個表,通常發(fā)生在查詢大量數(shù)據時,使用TABLOCKX提示.
示例:
- CREATE PROCEDURE TSellMain_Qry
- AS
- Begin transaction
- select * from Sell_SellRecordMain with (TABLOCKX)
- if @@ERROR > 0
- ROLLBACK
- Else
- COMMIT ----提交或回滾事務時釋放鎖
- GO
b. 在更新表中所有記錄時申請排它鎖,防止在提交事務之前記錄受其他用戶的影響.
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
示例:
- CREATE PROCEDURE Ttesthr_Update
- AS
- Begin transaction --開始事務
- SET TRANSACTION ISOLATION LEVEL SERIALIZABLE --申請排它鎖,防止在提交事務之前記錄受其他用戶的影響
- Update testhr set hrcode=’aaa’
- if @@ERROR > 0
- ROLLBACK
- Else
- COMMIT ----提交或回滾事務時釋放排它鎖
- GO
c. 如果只是更新表中一行或者多行記錄時使用行級鎖.
With (RowLock)
示例:
- CREATE PROCEDURE Ttesthr_Update
- AS
- Begin transaction --開始事務
- Update testhr with (rowlock) set hrcode=’aaa’ where hrcode=’bbb’
- if @@ERROR > 0
- ROLLBACK
- Else
- COMMIT ----提交或回滾事務時釋放排它鎖
- GO
R. 程序中處理錯誤一般使用以下結構
- try
- …代碼
- catch
- …錯誤信息
- finally
- …釋放有可能駐留在內存中的變量
- end try
ASP.NET編程規(guī)范之編碼規(guī)范的相關內容就介紹到這里,希望你對ASP.NET編程規(guī)范之編碼規(guī)范有所了解并掌握。
【編輯推薦】