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