參考的ASP開發(fā)規(guī)范
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
asp開發(fā)規(guī)范 ——寫這個(gè)東西請(qǐng)多多指教,以后開發(fā)時(shí)好少吃點(diǎn)苦頭。 一、單頁(yè)編寫規(guī)范: 切記頁(yè)面要分模塊來寫: 二、全站文件構(gòu)建規(guī)范: 1.工程接手后,先觀看靜態(tài)頁(yè),掌握邏輯及瀏覽順序。 我們所作的一切僅僅是為了:增加可移植可重用性、使邏輯清楚,便于維護(hù)、 附注一:第三模塊編寫說明。《asp頁(yè)面編寫結(jié)構(gòu)》 附注二:第四模塊編寫說明。《html代碼部分需要注意的》 對(duì)下拉框要有和隱藏按鈕同步的,寫出單獨(dú)小函數(shù),放在該按鈕的下面。 寫客戶端腳本時(shí),可多寫些函數(shù),使函數(shù)間傳遞的參數(shù)簡(jiǎn)單,功能單一,以便日后有類似頁(yè)面,可以將其拆下來再使用。 為了規(guī)范程序代碼編寫,提高代碼可讀性,降低后期維護(hù)成本,提高辦公效率,建議以后編寫的程序按以下幾條規(guī)范進(jìn)行: 一、 統(tǒng)一vbscript和asp程序編寫規(guī)范: (一)變量命名規(guī)則: 由于在asp和vbscript中因?yàn)椴恍枰暶髯兞?,同時(shí)不能聲明變量的類型,但為了提高代碼的可讀性,養(yǎng)成好的開發(fā)習(xí)慣,對(duì)于本系統(tǒng)開發(fā)的變量命名統(tǒng)一規(guī)則如下: 1. 使用dim、public、private聲明變量; 例如:dim istudentnum 2. 變量類型的體現(xiàn): a、整型變量:以小寫字母i開頭,后面跟變量標(biāo)示符,英文單詞的第一個(gè)字母大寫。 例如:下面聲明一個(gè)存儲(chǔ)數(shù)據(jù)庫(kù)記錄多少的變量 dim iresordsetnumber b、單精度實(shí)體變量:以小寫字母f開頭,后面跟變量標(biāo)示符,英文單詞的第一個(gè)字母大寫。 c、雙精度實(shí)體變量:以小寫字母d開頭,后面跟變量標(biāo)示符,英文單詞的第一個(gè)字母要大寫。 d、 字符型變量:以小寫字母s開頭; e、 布爾型變量:以小寫字母b開頭; f、數(shù)組變量:數(shù)組類型+“_”+“array”+“_”+“變量標(biāo)示符” 例如:定義一個(gè)存儲(chǔ)學(xué)生成績(jī)的數(shù)組(存儲(chǔ)單精度實(shí)體類型變量) dim f_array_studentmark 3. 變量標(biāo)示符要符合標(biāo)示符標(biāo)準(zhǔn),同時(shí)容易理解,盡量使用英文單詞來代替,盡量避免使用縮寫或簡(jiǎn)寫。 例如:存儲(chǔ)校友通訊錄的字符串變量定義為: dim sschoolfellowaddresslist; 雖然這樣定義在輸入的時(shí)候比較麻煩,但是,它大大提高了程序的可讀性,見其變量命名就知其意。在做變量查找的時(shí)候也比較方便。速度和性能總是不能兩全,為了方便后者我們也就只有犧牲速度。 4.在變量定義后面加變量功能定義的注釋。 (二)常量命名規(guī)則: 類型體現(xiàn)和上面一樣,不一樣的地方是,所有后面的標(biāo)示符全部大寫,例如: 定義一個(gè)存儲(chǔ)語(yǔ)言種類的的字符型常量: const slanguage_type=”chinese” (三)功能函數(shù)、過程命名規(guī)則: 1. 使用function聲明函數(shù),用sub聲明過程; 2. 函數(shù)名或過程名的第一個(gè)字母大寫,且后面的每個(gè)單詞第一個(gè)字母大寫。 例如: function checkvalidityofinput(sstuentmark) ‘此處寫代碼 ………… end function 3. 函數(shù)名或過程名要容易讀,簡(jiǎn)單明了。 4. 在函數(shù)前面加注釋,說明函數(shù)功能、參數(shù)說明、創(chuàng)建日期、修改日期、修改原因、創(chuàng)建人、修改人等相關(guān)信息。 (四)代碼縮進(jìn)標(biāo)準(zhǔn): 為了提高代碼的美觀型和易讀性,在此提出代碼編寫的版面格式:區(qū)間與區(qū)間之間以一個(gè)為間距。 例如: ‘*********************************************************** ‘功能:檢測(cè)輸入字符串中的單引號(hào),如果有則把原來的一個(gè)單引號(hào)變成兩 ‘ 個(gè)單引號(hào),兩個(gè)變成四個(gè),依次類推,從而避免sql語(yǔ)句執(zhí)行錯(cuò)誤。 ‘創(chuàng)建人:xxxx ‘修改時(shí)間: ‘修改原因: ‘修改人: ‘輸入?yún)?shù)說明:sinputstring:需要進(jìn)行單引號(hào)檢測(cè)的字符串 ‘*********************************************************** function checkvalidityofinput(sinputstring) dim icirculationcontrol ‘控制循環(huán) dim sapartstring ‘分離字符檢測(cè) dim ilenofinput ‘輸入字符長(zhǎng)度 ilen= len(trim(sinputstring)) for icirculationcontrol = 1 to ilen if mid(sinputstring, icirculationcontrol, 1) <>"'" then sapartstring = sapartstring & _ mid(trim(sinputstring), icirculationcontrol , 1) else sapartstring = sapartstring & "''" end if next checkvalidityofinput = sapartstring end function 二、 統(tǒng)一javascript程序編寫規(guī)范: javascript的命名規(guī)則和上面大部分相同,唯一不同的地方是:變量使用var來聲明,在聲明結(jié)束后以分號(hào)(;)結(jié)束。 函數(shù)的代碼要求層次清楚,該寫在下一行的地方盡量往下一行寫,不要在一行中完成所有代碼,這樣看起來不容易,檢查錯(cuò)誤也特別費(fèi)時(shí)。 在寫函數(shù)的時(shí)候記著加注釋內(nèi)容,以便以后維護(hù)時(shí)快速了解程序功能。 下面是一個(gè)javascript程序: 三、 系統(tǒng)性能提高,代碼規(guī)范: 1.在asp頁(yè)面內(nèi),凡是使用creageobject()創(chuàng)建的對(duì)象(com、recordset等),對(duì)于這些變量,應(yīng)當(dāng)在該頁(yè)結(jié)束進(jìn)行對(duì)象釋放:即 set 對(duì)象變量名=nothing 2.數(shù)據(jù)庫(kù)打開以后在不用的時(shí)候(通常是本頁(yè)最后面),需要對(duì)連接進(jìn)行關(guān)閉; 3.對(duì)于sql語(yǔ)句,存儲(chǔ)過程,盡量避免使用*來取所有字段,為了代碼的易讀性,sql關(guān)鍵字要求全部大寫,字段部分小寫。 例如: select name,age,birthday,telephone,address from schoolfellow.address where name=’xxxx’ order by birthday desc 4.在asp頁(yè)中所有屬性值盡量使用雙引號(hào)括起來,特別是有屬性value的值,不要因?yàn)槭r(shí)間而把雙引號(hào)去掉(有的地方雖然可以去掉,程序不會(huì)出現(xiàn)錯(cuò)誤,但,在有的地方去掉雙引號(hào)會(huì)引來更多的麻煩。) 例如: ”> 在這個(gè)例子中,如果把value屬性值的單引號(hào)去掉,如果數(shù)據(jù)庫(kù)中出來的值有空格,空格后面還有值,結(jié)果,顯示的內(nèi)容只有空格前面的內(nèi)容,而后面的內(nèi)容就會(huì)丟失。這只是其中一種情況,其他還有很多未知情況發(fā)生。 5. 配對(duì)標(biāo)簽問題:對(duì)于象之類的標(biāo)簽,要注意檢查配對(duì)的位值,有沒有結(jié)束標(biāo)志。 6. 對(duì)于需要輸入字符串,且需要使用sql語(yǔ)句的地方,需要進(jìn)行單引號(hào)處理,調(diào)用/include/checkq.asp中的兩個(gè)方法(一個(gè)是客戶端處理,一個(gè)是服務(wù)器端處理,根據(jù)需要進(jìn)行調(diào)用,安全性要求高的地方多數(shù)情況下采用服務(wù)器端處理。)之一。 7. 為了提高安全性,能使用asp編寫的代碼,盡量采用asp編寫,在服務(wù)器端運(yùn)行,不讓用戶看到代碼。 8. 對(duì)于安全性要求特別高的地方,建議采用三層結(jié)構(gòu):使用vb或delphi編寫商業(yè)邏輯層代碼(com),盡量把數(shù)據(jù)庫(kù)的連接部分封裝到組件中,提高安全性能,通過組件和數(shù)據(jù)庫(kù)交流。 9. 對(duì)于網(wǎng)站的安全性,應(yīng)該采用好的斷口掃描軟件,查看網(wǎng)站已經(jīng)打開的斷口,把不安全的斷口給關(guān)閉。 四、 養(yǎng)成寫開發(fā)文檔的習(xí)慣: 對(duì)于每一個(gè)頁(yè)面設(shè)計(jì)(前接頁(yè),后接頁(yè)),包括功能說明,頁(yè)面設(shè)計(jì),頁(yè)面名稱,存放位置等,應(yīng)當(dāng)有相應(yīng)的文檔記載。對(duì)于發(fā)生改動(dòng)的地方,需要保留原來的部分(注釋或備份),并說明備份文件存放的地方,改動(dòng)時(shí)間,修改人。 對(duì)于程序部分,應(yīng)該有相應(yīng)的設(shè)計(jì)流程,改動(dòng)的時(shí)候,也需要設(shè)計(jì)改動(dòng)流程圖,以便以后進(jìn)行對(duì)比,和查找問題所在位置,以及問題的嚴(yán)重性分析。 該文章在 2010/7/3 14:42:26 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |