asp開發(fā)規(guī)范
一、單頁編寫規(guī)范:
切記頁面要分模塊來寫:
第一模塊:接收參數(shù)。[有可能從不同頁面提交到同一個(gè)頁面;也可能出現(xiàn)兩個(gè)表單項(xiàng)以哪個(gè)優(yōu)先的處理)。
第二模塊:定義全局變量。
第三模塊:寫處理代碼(盡量將代碼都包含到函數(shù)中,詳見頁面附注一)。——到此asp代碼主要部分完成。
第四模塊:純html代碼,利用儲(chǔ)存在全局變量中的值來生成頁面。
第五(注意):要在頁面頭部寫清頁面邏輯。(如何接收、處理。)
優(yōu)點(diǎn):便于維護(hù)。模塊獨(dú)立,便于重復(fù)使用到類似頁面。
二、全站文件構(gòu)建規(guī)范:
1.工程接手后,先觀看靜態(tài)頁,掌握邏輯及瀏覽順序。
2.抽取頁面中被重復(fù)利用到的地方做成嵌入文件。
3.抽取頭文件、尾文件,及左側(cè)菜單欄,做成嵌入文件。
4.劃分頁面結(jié)構(gòu),做出模板文件?!院笾谱髦芯蚦opy它,然后就可直接制作。
注意:不要急于編寫頁面,除非你接手的是一項(xiàng)小工程,或者用戶需求已經(jīng)非常清楚確定并且不會(huì)再更改,否則,保持頁面代碼的可讀性是非常重要的!(當(dāng)你面對(duì)大返工時(shí),你的心情如何?先對(duì)潛在的危險(xiǎn)考慮一下吧!)
——因?yàn)槲覀兠總€(gè)人都對(duì)自己寫的代碼非常明白,而都比較難于讀懂別人寫的代碼。并且,由于客戶需求的變化,修改甚至推翻原有設(shè)計(jì)是比較常見的事。所以要注意在編寫代碼時(shí)注意讓后來者快速讀懂,并便于修改。] [至少要在頁面頭部加上注釋,在代碼中間重要的部分,也有必要加一些說明性注釋。]
我們所作的一切僅僅是為了:增加可移植可重用性、使邏輯清楚,便于維護(hù)、
視τ沒棖蟮母謀?,并尽快完成,减蓛用功?
――――――――――――――――――――――――――――――――――――――
附注一:第三模塊編寫說明?!禔SP頁面編寫結(jié)構(gòu)》
1.先寫注釋
2.寫嵌入文件。
3.寫大塊的ASP代碼(從COM中取出的)
——注意:復(fù)雜頁面,盡量將不同COM的操作封裝在獨(dú)立的函數(shù)里;
——函數(shù)結(jié)尾有一句調(diào)用,后面頁面中直接讀取函數(shù)處理完的數(shù)據(jù)(已被賦給全局變量)
——調(diào)用函數(shù)前,對(duì)頁面入口參數(shù)進(jìn)行合法性檢驗(yàn)。
附注二:第四模塊編寫說明?!禜tml代碼部分需要注意的》
1)最好不使頁面的asp代碼和html代碼混雜在一起,——感覺比較混亂。
2)通過獲取全局變量的數(shù)據(jù)得到asp的處理結(jié)果。
3)關(guān)于客戶端javascript:
表單提交前要進(jìn)行合法性檢驗(yàn)。寫在對(duì)下拉框要有和隱藏按鈕同步的,寫出單獨(dú)小函數(shù),放在該按鈕的下面。
對(duì)大型innerHTML型的客戶端交互操作,將代碼集中寫在相應(yīng)對(duì)應(yīng)的寫客戶端腳本時(shí),可多寫些函數(shù),使函數(shù)間傳遞的參數(shù)簡(jiǎn)單,功能單一,以便日后有類似頁面,可以將其拆下來再使用。
---------------------------------------
對(duì)網(wǎng)頁制作的要求:
網(wǎng)頁人員完成的頁面,為保證在使用時(shí)不會(huì)出現(xiàn)混亂,請(qǐng)他們作以下處理:
1.表格不要嵌套太多;
2.表格寬度要用象素規(guī)定寬度;
3.單頁中,一個(gè)功能模塊要做成一個(gè)表格,以便編寫頁面時(shí),將重復(fù)部分提取成嵌入文件。
4.其它要注意的:精簡(jiǎn)代碼、注意表格中字符和邊框的寬度。
5.文件名請(qǐng)用英文小寫加數(shù)字(和半角下劃線)命名。[想想你的頁面搬到unix主機(jī)上的慘狀]
>>> 5.文件名請(qǐng)用英文小寫加數(shù)字(和半角下劃線)命名。[想想你的頁面搬到unix主機(jī)上的慘狀]
這一點(diǎn), 以前沒有注意過, 我都是這樣的命名:
editNews.asp
delNews.asp
看樣子要寫成
edit_news.asp
del_news.asp 好一點(diǎn)。
----------------------------------------
我也來補(bǔ)充幾點(diǎn)代碼規(guī)范:
1. 很多人都沒有注意到的, 也是我特別要建議的: 運(yùn)算符的兩側(cè), 請(qǐng)多寫一個(gè)空格。 試比較:
a=(b*c/d+3.243)"sdfsdfsdflkj""asdsd"
和
a = (b * c / d + 3.243) "sdfsdfsdflkj" "asdsd"
的可讀性區(qū)別。 不言自明。
2. 代碼請(qǐng)按照邏輯進(jìn)行正確的縮進(jìn)!
例子:
if a = 3 then
response.write "test"
else
response.write "sdfsdf"
end if
'' -------------> 注意這里, 兩個(gè)邏輯上的語句塊之間請(qǐng)保留一個(gè)空行
do while not rs.eof
response.write "test"
rs.MoveNext
loop
錯(cuò)誤的例子:
if not rs.eof then
response.write "a"
else
response.write "sfldfsd"
end if
if a = 1 then
if b = 2 then
c = "sdfkgkgskldf"
if d = "dfs" then
e = "sdf"
end if
f = "sdlkfsldfk"
end if
for i = 0 to 100
response.write i
next
end if
據(jù)我觀察,以上代碼習(xí)慣的人在 asp 程序員里面至少占 80%, 我說的一點(diǎn)都不夸張。
你們看看吧,上面這段代碼,能否看懂。反正我是看到這種就頭大。
至于縮進(jìn)量,看個(gè)人習(xí)慣了。通常用的多的是 2 格或者 4 格。我個(gè)人一般是 asp/vb 2 格, js/c 風(fēng)格的用 4 格
注釋+縮進(jìn)+規(guī)范的命名
以上三點(diǎn)真的蠻重要的
--------------------------------------
統(tǒng)統(tǒng)用tab縮進(jìn),至于縮進(jìn)格數(shù)好點(diǎn)的編輯器都可以設(shè)置
盡量不要在response.write輸出html代碼
不使用Option Explicit,個(gè)人覺得此功能并不適用于web
如果是開發(fā)程序方面,用DreamweaverMX開發(fā)程序應(yīng)該可以加快一些程序的開發(fā)效率(如ASP,PHP,JAVASCRIT等),因?yàn)橛懈吡溜@示和標(biāo)式符提示功能。
如果,是頁面設(shè)計(jì)方面,PHOTOSHOP就是一個(gè)不錯(cuò)的工具。PHOTOIMPACT也是不錯(cuò)的頁面設(shè)計(jì)工具。