asp開發規范 ——寫這個東西請多多指教以後開發時好少吃點苦頭
一單頁編寫規范
切記頁面要分模塊來寫
第一模塊接收參數[有可能從不同頁面提交到同一個頁面也可能出現兩個表單項以哪個優先的處理
第二模塊定義全局變量
第三模塊寫處理代碼(盡量將代碼都包含到函數中詳見頁面附注一)——到此asp代碼主要部分完成
第四模塊純html代碼利用儲存在全局變量中的值來生成頁面
第五(注意)要在頁面頭部寫清頁面邏輯(如何接收處理)
優點便於維護模塊獨立便於重復使用到類似頁面
二全站文件構建規范
工程接手後先觀看靜態頁掌握邏輯及浏覽順序
抽取頁面中被重復利用到的地方做成嵌入文件
抽取頭文件尾文件及左側菜單欄做成嵌入文件
劃分頁面結構做出模板文件——以後制作中就copy它然後就可直接制作
注意不要急於編寫頁面除非你接手的是一項小工程或者用戶需求已經非常清楚確定並且不會再更改否則保持頁面代碼的可讀性是非常重要的!(當你面對大返工時你的心情如何?先對潛在的危險考慮一下吧!)
——因為我們每個人都對自己寫的代碼非常明白而都比較難於讀懂別人寫的代碼並且由於客戶需求的變化修改甚至推翻原有設計是比較常見的事所以要注意在編寫代碼時注意讓後來者快速讀懂並便於修改][至少要在頁面頭部加上注釋在代碼中間重要的部分也有必要加一些說明性注釋]
我們所作的一切僅僅是為了增加可移植可重用性使邏輯清楚便於維護
適應用戶需求的改變並盡快完成減少無用功
――――――――――――――――――――――――――――――――――――――
附注一第三模塊編寫說明《ASP頁面編寫結構》
先寫注釋
寫嵌入文件
寫大塊的ASP代碼(從COM中取出的)
——注意復雜頁面盡量將不同COM的操作封裝在獨立的函數裡
——函數結尾有一句調用後面頁面中直接讀取函數處理完的數據(已被賦給全局變量)
——調用函數前對頁面入口參數進行合法性檢驗
附注二第四模塊編寫說明《Html代碼部分需要注意的》
)最好不使頁面的asp代碼和html代碼混雜在一起——感覺比較混亂
)通過獲取全局變量的數據得到asp的處理結果
)關於客戶端javascript
表單提交前要進行合法性檢驗寫在
對下拉框要有和隱藏按鈕同步的寫出單獨小函數放在該按鈕的下面
對大型innerHTML型的客戶端交互操作將代碼集中寫在相應對應的
寫客戶端腳本時可多寫些函數使函數間傳遞的參數簡單功能單一以便日後有類似頁面可以將其拆下來再使用
對網頁制作的要求
網頁人員完成的頁面為保證在使用時不會出現混亂請他們作以下處理
表格不要嵌套太多
表格寬度要用象素規定寬度
單頁中一個功能模塊要做成一個表格以便編寫頁面時將重復部分提取成嵌入文件
其它要注意的精簡代碼注意表格中字符和邊框的寬度
文件名請用英文小寫加數字(和半角下劃線)命名[想想你的頁面搬到unix主機上的慘狀]
為了規范程序代碼編寫提高代碼可讀性降低後期維護成本提高辦公效率建議以後編寫的程序按以下幾條規范進行
一 統一VBSCRIPT和ASP程序編寫規范
(一)變量命名規則
由於在ASP和VBSCRIPT中因為不需要聲明變量同時不能聲明變量的類型但為了提高代碼的可讀性養成好的開發習慣對於本系統開發的變量命名統一規則如下
使用DimPublicPrivate聲明變量
例如Dim iStudentNum
變量類型的體現
a整型變量以小寫字母i開頭後面跟變量標示符英文單詞的第一個字母大寫
例如下面聲明一個存儲數據庫記錄多少的變量
Dim iResordsetNumber
b單精度實體變量以小寫字母f開頭後面跟變量標示符英文單詞的第一個字母大寫
c雙精度實體變量以小寫字母d開頭後面跟變量標示符英文單詞的第一個字母要大寫
d 字符型變量以小寫字母s開頭
e 布爾型變量以小寫字母b開頭
f數組變量數組類型+_+Array+_+變量標示符
例如定義一個存儲學生成績的數組(存儲單精度實體類型變量)
Dim f_Array_StudentMark
變量標示符要符合標示符標准同時容易理解盡量使用英文單詞來代替盡量避免使用縮寫或簡寫
例如存儲校友通訊錄的字符串變量定義為
Dim sSchoolfellowAddressList;
雖然這樣定義在輸入的時候比較麻煩但是它大大提高了程序的可讀性見其變量命名就知其意在做變量查找的時候也比較方便速度和性能總是不能兩全為了方便後者我們也就只有犧牲速度
在變量定義後面加變量功能定義的注釋
(二)常量命名規則
類型體現和上面一樣不一樣的地方是所有後面的標示符全部大寫例如
定義一個存儲語言種類的的字符型常量
Const sLANGUAGE_TYPE=Chinese
(三)功能函數過程命名規則
使用Function聲明函數用Sub聲明過程
函數名或過程名的第一個字母大寫且後面的每個單詞第一個字母大寫
例如
Function CheckValidityOfInput(sStuentMark)
此處寫代碼
…………
End Function
函數名或過程名要容易讀簡單明了
在函數前面加注釋說明函數功能參數說明創建日期修改日期修改原因創建人修改人等相關信息
(四)代碼縮進標准
為了提高代碼的美觀型和易讀性在此提出代碼編寫的版面格式區間與區間之間以一個為間距
例如
***********************************************************
功能檢測輸入字符串中的單引號如果有則把原來的一個單引號變成兩
個單引號兩個變成四個依次類推從而避免SQL語句執行錯誤
創建人XXXX
修改時間
修改原因
修改人
輸入參數說明sInputString需要進行單引號檢測的字符串
***********************************************************
Function CheckValidityOfInput(sInputString)
Dim iCirculationControl 控制循環
Dim sApartString 分離字符檢測
Dim iLenOfInput 輸入字符長度
iLen= Len(Trim(sInputString))
For iCirculationControl = To iLen
If Mid(sInputString iCirculationControl ) <> Then
sApartString = sApartString & _
Mid(Trim(sInputString) iCirculationControl )
Else
sApartString = sApartString &
End If
Next
CheckValidityOfInput = sApartString
End Function
二 統一JavaScript程序編寫規范
JavaScript的命名規則和上面大部分相同唯一不同的地方是變量使用Var來聲明在聲明結束後以分號()結束
函數的代碼要求層次清楚該寫在下一行的地方盡量往下一行寫不要在一行中完成所有代碼這樣看起來不容易檢查錯誤也特別費時
在寫函數的時候記著加注釋內容以便以後維護時快速了解程序功能
下面是一個JavaScript程序
三 系統性能提高代碼規范
在ASP頁面內凡是使用CreageObject()創建的對象(ComRecordset等)對於這些變量應當在該頁結束進行對象釋放即
Set 對象變量名=Nothing
數據庫打開以後在不用的時候(通常是本頁最後面)需要對連接進行關閉
對於SQL語句存儲過程盡量避免使用*來取所有字段為了代碼的易讀性SQL關鍵字要求全部大寫字段部分小寫
例如
SELECT nameagebirthdaytelephoneaddress FROM SchoolFellowAddress WHERE name=xxxx ORDER BY birthday DESC
在ASP頁中所有屬性值盡量使用雙引號括起來特別是有屬性Value的值不要因為省時間而把雙引號去掉(有的地方雖然可以去掉程序不會出現錯誤但在有的地方去掉雙引號會引來更多的麻煩)
例如
>
在這個例子中如果把Value屬性值的單引號去掉如果數據庫中出來的值有空格空格後面還有值結果顯示的內容只有空格前面的內容而後面的內容就會丟失這只是其中一種情況其他還有很多未知情況發生
配對標簽問題對於象之類的標簽要注意檢查配對的位值有沒有結束標志
對於需要輸入字符串且需要使用SQL語句的地方需要進行單引號處理調用/include/CheckQasp中的兩個方法(一個是客戶端處理一個是服務器端處理根據需要進行調用安全性要求高的地方多數情況下采用服務器端處理)之一
為了提高安全性能使用ASP編寫的代碼盡量采用ASP編寫在服務器端運行不讓用戶看到代碼
對於安全性要求特別高的地方建議采用三層結構使用VB或Delphi編寫商業邏輯層代碼(COM)盡量把數據庫的連接部分封裝到組件中提高安全性能通過組件和數據庫交流
對於網站的安全性應該采用好的斷口掃描軟件查看網站已經打開的斷口把不安全的斷口給關閉
四 養成寫開發文檔的習慣
對於每一個頁面設計(前接頁後接頁)包括功能說明頁面設計頁面名稱存放位置等應當有相應的文檔記載對於發生改動的地方需要保留原來的部分(注釋或備份)並說明備份文件存放的地方改動時間修改人
對於程序部分應該有相應的設計流程改動的時候也需要設計改動流程圖以便以後進行對比和查找問題所在位置以及問題的嚴重性分析
From:http://tw.wingwit.com/Article/program/net/201311/13875.html