一.頁面設計部分
1.img控制項
alt:所有展示類圖片都要具有能簡要描述圖片內容的文字說明。
2.Input控制項
maxlength:所有INPUT控制項都需要制定maxlength屬性,預設值為資料庫中對應的欄位的長度。
readonly:所有不可更改的資訊都要使用readonly屬性。
3.Form控制項
action:所有Form都要指定action,如果提交給本身就指定action=""
method:執行無法復原動作使用POST,可逆動作使用GET
onsubmit:所有form都要指定提交前需要的檢查程式。
所有form都要有對應的reset button。
4.button控制項
onclick:form中用於提交的button不容許使用此方法,所有資料檢查通過form的onsubmit啟用。
5.title屬性
所有頁面都要具有和本網頁標題相同的title。
6.控制項的命名
採用控制項類型縮寫(小寫)+英文單詞(第一個字母大寫)的方法。
開發中控制項基本涉及一下幾類
button:btn
form:frm
select:sel
textarea:txt
input:ipt
7.語言設定
所有中文頁面都要加上如下語句:
8.控制項屬性賦值
所有控制項的屬性值都要使用雙引號或者單引號包括起來。
二.用戶端程式部分
1.錯誤提示資訊的處理(2-1)
所有錯誤資訊全部使用中文提示錯誤資訊,標點使用中文半形符號,格式如下:
"錯誤:"+提示資訊+"!"
2.成功提示資訊的處理(2-2)
所有成功資訊全部使用中文提示成功資訊,標點使用中文半形符號,格式如下:
"成功:"+提示資訊+"!"
3.頁面的返回
所有需要返回上一頁的時候使用history.back();不使用history.go(-1);
需要返回前n頁(n>1)時使用history.go(-n);
所有返回都使用串連的方式而不是button。
4.提交前資料的判斷
保證提交前的資料都會通過JavaScript進行資料類型以及長度的判斷
是否為數字:使用函數isNaN()
長度判斷: 長度要判斷去掉前後空格後的實際長度
為空白判斷: 所有不容許為空白的輸入欄位都要在去掉前後空格後進行判斷,同時如果該欄位為查詢條件則必須不可為空
如果判斷條件探索資料錯誤,則通過(2-1)提示錯誤資訊,然後通過方法focus()聚焦錯誤欄位。
5.刪除資料前的提示
所有涉及刪除的操作,在使用者選定以後都要再進行一次確認操作。
三.伺服器端程式部分
1.資料的取得
通過Get,Post,串連傳遞過來的資料在使用前都要通過trim去掉資料前後的空格。
2.資料的判斷
通過request的得到的參數資料需要再次進行空,類型,和長度的判斷。
3.對象的關閉
所有資料庫和檔案對象都要在使用後儘可能早的close,同時賦nothing。
4.提示資訊
所有錯誤提示資訊使用JavaScript提示,保證使用者看不到任何內部錯誤資訊。(如1-1)
涉及資料庫Update,Del,Insert的操作成功都要提示。(如1-2)
5.變數的使用
所有變數在使用前都需要聲明,並且賦初值。
6.變數的命名
採用變數類型縮寫(小寫)+英文單詞(第一個字母大寫)的方法。
開發中變數基本涉及一下幾類
整數:i
小數:f
字元: s
布爾:b
日期:d
特殊的:
迴圈依次採用i,j,m,n;
數組用ary
指標p,q
臨時變數tmp
七.SQL語句
1.排序
order時應該盡量提前使用建立索引或者主鍵的欄位排序。
2.select
select時避免使用*,即使需要所有欄位也應盡量一個一個按照使用的順序羅列出來。
3.盡量避免使用in和not in
八.測試
所有頁面要在800*600,1024*768兩種解析度下運行通過。
所有頁面要在IE5.0,5.5以及6.0下運行通過沒有JavaScript錯誤。
****************************************************************
WEB編碼規範
編製人:walaqi
第一章 ASP編碼規範通述
ASP編碼分為兩大部分,一部分為靜態檔案編碼,一部分為包含伺服器端指令碼的動態檔案編碼。
靜態檔案編碼分Script編碼和HTML編碼兩部分。
伺服器端編碼則分為伺服器指令碼、用戶端指令碼、HTML指令碼三部分。
編碼規範採用如下約定:
所有用戶端指令碼一律使用JavaScript
所有伺服器端指令碼一律使用VBScript
靜態頁面輸出一律使用HTML指令碼
本規範不適用於由伺服器端指令碼所產生的用戶端指令碼代碼。
第二章 靜態檔案編碼規範:
靜態檔案指令碼部分採用JavaScript編寫。輸出部分採用HTML標記語言。
1. HTML標記語言編碼規範
1.1 標記的換行規範:
* 一個標記必須佔用一行。不得出現兩個標記在同一行的情況(同一標記的關閉標記除外),如:
text
而必須寫成:
text
1.2 標記的關閉規範
* 靜態檔案內容必須包含在標記中間
* 標記必須包含在標記中間
* 對於需要關閉的標記,如:
<br /><select><br /><option> <br /> 必須同其關閉標記同時出現。如 <br /> …<p>…….….</p><p>….. <br />* 不得出現交叉包含的語句,如: <p>…..</p><p> <br />1.3 標記的屬性賦值規範 <br /> 對於接受屬性的標記,屬性值必須使用雙引號或者單引號包圍。如: <br /> <br /> <br />1.4 標記的縮排規範 <br />* 最高一級的父標記採用靠左對齊頂格方式書寫。 <br />* 下一級標記採用靠左對齊向右縮排一個Tab的方式書寫 <br /> 在下一級依此類推,分別靠左對齊相對於父標記向右縮排一個Tab的方式書寫 <br />* 同一級標記的首字元上下必須對齊。 <br />2. 用戶端JavaScript規範 <br />2.1 變數命名規範 <br />* 常量以及全域變數名必須全部使用大寫字母 <br />* 變數名首字母必須小寫。 <br />* 變數名必須使用其類型的所寫字串開始。各種類型的所寫字串如下: <br />* 整型變數:int <br />* 長整型變數:lng <br />* 浮點型變數:flt <br />* 雙精確度變數:dbl <br />* 對象引用變數:obj <br />* 字串變數:str <br />* Date類型變數:dtm <br />* 變數名必須採用有意義的單詞命名,如: <br />strUserName、lngArrayIndex <br />* 變數名除首字母小寫外,其他單詞首字元必須大寫 <br />* 如果變數名過長可以使用單詞縮寫,除了被廣泛瞭解的單詞縮寫以外,所有使用單詞所寫的變數名必須在定義時給出注釋,如: <br />var strAdName //用於表示Administrator帳戶的名稱 <br />var strAdminName //不用給出注釋,Admin被廣泛瞭解 <br />2.2 變數使用規範 <br />* 變數使用前必須定義。沒有定義的變數禁止使用 <br />* 變數的使用盡量縮小到小的範圍。如迴圈使用 <br />for(var I=0;I</p><p>} <br />而不是: <br />var I; <br />for(I=0;I</p><p>} <br />2.3 對象命名規範 <br />各種頁面對象如text輸入框、按鈕、下拉選擇框在命名時必須使用以下對應首碼: <br />* text輸入框:txt <br />* button按鈕:btn <br />* select下拉選擇框:sel <br />* option項:opt <br />* form表單:frm <br />* frame架構:fra <br />* hidden表單項:hdn <br />* div標記:div <br />* span標記:span <br />* 對話方塊對象:dlg <br />* 視窗對象:win <br />2.4 函數以及子過程命名規範 <br />* 函數命名必須使用動詞+名詞對的方式,並且能夠體現函數的功能 <br />* 函數命名的動詞首碼必須是同函數功能相關的完整動詞 <br />* 函數命名第一個單詞的首字母小寫,後面每一個單詞的首字母大寫 </p><p>第三章 動態檔案編碼規範 <br />1. HTML書寫規範 <br /> HTML書寫規範必須符合靜態檔案HTML標記書寫規範,參考(第二章第一節) <br />2. 用戶端指令碼規範 <br /> 動態檔案用戶端指令碼一律採用JavaScript書寫,並必須符合靜態檔案編碼規範中有關JavaScript編碼規範的規定(參考第二章第二節) <br />3. 伺服器端指令碼書寫規範 <br /> 伺服器端指令碼書寫採用VBScript書寫 <br />3.1 命名規範 <br />3.1.1 VBScript指令碼變數命名規範 <br />* 常量以及全域變數必須全部使用大寫字母 <br />* 常量必須使用CONST_首碼 <br />* 全域變數必須使用G_首碼 <br />* 變數名首字母必須小寫。 <br />* 變數名必須使用其類型的所寫字串開始。各種類型的所寫字串如下: <br />* 整型變數:int <br />* 長整型變數:lng <br />* 浮點型變數:flt <br />* 雙精確度變數:dbl <br />* 對象引用變數:obj <br />* 字串變數:str <br />* Date類型變數:dtm <br />* 變數名必須採用有意義的單詞命名,如: <br />strUserName、lngArrayIndex <br />* 變數名除首字母小寫外,其他單詞首字元必須大寫 <br />* 如果變數名過長可以使用單詞縮寫,除了被廣泛瞭解的單詞縮寫以外,所有使用單詞所寫的變數名必須在定義時給出注釋,如: <br />dim strAdName ‘用於表示Administrator帳戶的名稱 <br />dim strAdminName ‘不用給出注釋,Admin被廣泛瞭解 <br /> <br />3.1.2 對象命名規範 <br />各種對象如Connection、Recordset、Command在命名時必須使用以下對應首碼: <br />* Connection對象:conn <br />* Recordset對象:rs <br />* Command對象:cmd <br />* Parameter對象:param <br />* Field對象:fld <br />* Error對象:err <br />3.1.3 函數以及子過程命名規範 <br />* 函數命名必須使用動詞+名詞對的方式,並且能夠體現函數的功能 <br />* 函數命名的動詞首碼必須是同函數功能相關的完整動詞 <br />* 函數命名第一個單詞的首字母大寫,後面每一個單詞的首字母大寫 <br />3.1.4 常用變數命名規範: <br /> 說明:包含在[]中的部分為可省略部分 <br />* Connection對象:conn[Name]。Name為所串連資料庫的伺服器名字 <br />* Recordset變數命名規範:rs[Name]。Name為自訂的同rs儲存內容有關的英文單片語合 <br />* Command對象:cmd[Name]。Name為自訂的同command目的有關的英文單片語合 <br />* SQL語句字串變數:strSql[CommandName]。CommandName為自訂的同Sql語句功能相關的英文單片語合,如: <br />strSqlUpdateModify <br />strSqlInsertUser <br />3.2 代碼書寫規範 <br />3.2.1 變數明確聲明原則 <br />* 所有ASP程式檔案,必須在代碼的第一行包含。轉為變數明確聲明模式 <br />3.2.2 字元集設定原則 <br />* 所有將對用戶端產生中文輸出的ASP程式檔案,必須在輸出前設定Charset為”GB2312”.如:Response.Charset = “GB2312” <br />3.2.3 函數使用原則 <br />* 盡量使用函數封裝代碼塊 <br />* 連續代碼塊盡量不要超過50行。最多不得超過70行 <br />* 盡量使用局部變數。 <br />* 如有涉及到全域的資源,如Connection,盡量作為函數的參數傳入 <br />* 所有在函數內部建立開啟的資源,在退出函數前必須關閉釋放。如:Recordset,Command <br />3.2.4 Request、Session、Application使用規範 <br />* 所有需要放入Session、Application中的對象,必須採用有意義的英文名字。除了被廣泛瞭解的單詞縮寫以外,不得採用單詞縮寫。如: <br />Session(“cp”) = strCurrentUserIP ‘不允許 <br />Session(“CurrentUserIP”) = strCurrentUserIP <br />Session(“Pwd”) = strPwd ‘允許,Pwd被廣泛瞭解為密碼 <br />* 所有需要在代碼內用到的Request、Session、Application中的元素,必須在代碼頭部賦值給代碼內聲明的變數。 <br />* 如果獲得Form中提交的內容,必須使用Request.Form(“itemName”). <br />* 如果獲得QueryString中提交的內容,必須使用Request.QueryString(“itemName”) <br />* 不得在代碼中出現Request(“”)這樣的引用方式 <br />3.2.5 HTML同伺服器端指令碼混合使用原則 <br />* 伺服器端指令碼標記“</p><table> <br />do while not rs.eof <br />%> <br /><tr> <td>text</td><p> <br /></tr><p> <br />rs.movenext <br />loop <br />%> <br /></table><p> <br />* 伺服器端指令碼標記“* “%>”同其前面的代碼不得在同一行書寫 <br />* 伺服器端指令碼標記”%>”同其最近的”* 伺服器端內部的HTML代碼依據靜態檔案的HTML縮排規則編寫,不遵循伺服器端指令碼縮排規則 <br />* HTML標記內部的代碼,依據伺服器端指令碼的縮排規則,不遵循HTML代碼縮排規則 </p><p>第四章 常見錯誤 <br />1. ADO的交易處理 <br />1.1 錯誤碼:80004005。 <br />1.1.1 錯誤描述: <br /> Microsoft OLE DB Provider for ODBC Drivers 錯誤 ’80004005’ <br /> 不能在 firehose 方式下啟動事務 <br />1.1.2 解決方案: <br /> 在開始ADO的事務的時候,必須首先關閉使用同一個連線物件開啟的記錄集,或者在開啟那些遊標集之前,設定遊標集位置類型為adUseClient.(使用用戶端資料指標集) <br /> <br />第五章 代碼習慣書寫樣本 <br />1. ADO對象的使用 <br />1.1 ADODB.Connection對象 <br />1.2 ADODB.Command對象 <br />1.3 ADODB.Recordset對象 <br />1.3.1 建立: <br /> Set rs = Server.CreateObject(“ADODB.Recordset”) <br /> rs.CursorLocation = adUseClient <br /> rs.Open strSql,conn,1[,1] ‘必須指定遊標類型 </p><p>一、 注釋規範 <br />A. 注釋標準: <br />l 功能注釋 <br />功能注釋是指為了對代碼本身進行解釋說明而進行的注釋。 <br />注釋符採用“’”作為統一的注釋符。 <br />1.行內注釋 <br />採用注釋符號 “’” <br />例: <br />Dim intFileNo As Integer ’ファイル番號取得用 <br />2.整行(包括多行)注釋 <br />採用註解區塊開始與塊結束標誌 <br />36 </p><p>’************************************ <br />’ <br />’ <br />’ <br />’************************************ <br />l 修訂注釋 <br />修訂注釋是指出於測試或者改錯等目的,對代碼進行了更改,而必須對此修改提供相關說明和醒目標記,並將原來的代碼加入註解區塊內。 <br />只要有改動,無論單行還是多行均採用設定註解區塊開始與塊結束標誌的方法來明確標誌修改部分,清楚地進行解釋說明,便於尋找和分辨注釋比較多的程式碼片段。 <br />15 15 </p><p>’*************** Modify Start *************** <br />’ <br />’ <br />’ </p><p>’*************** End *************** <br />B. 需要注釋的地方: <br />聲明定義部分 <br />對每個常量聲明進行注釋; <br />對每個變數及類、對象等的聲明進行注釋; <br />對每個自訂函數定義進行注釋; <br />對每個自訂子程式定義進行注釋; <br />代碼部分 <br />對每個構件,在頂部進行注釋; <br />對每個條件選擇分支進行注釋; <br />對每個詳細設計中提到的關鍵點進行注釋; <br />對全域變數的使用進行注釋; </p><p>C. 注釋的內容: <br />l 對變數及常量聲明部分的注釋以行內注釋方式簡要描述其用途。 </p><p>l 自訂函數及子程式等定義部分的頂部進行注釋: <br />’************************************ <br />’ 概要: <br />’ 機能說明: <br />’ 參數說明: <br />’ 傳回值: <br />’ 備忘: <br />’************************************ </p><p>l 代碼內部的行內注釋 <br />說明具體代碼的運算規則,迴圈的內容,計數器的目的等等。 </p><p>l 修訂注釋 <br />’*************** Modify Start *************** <br />’ 修訂原因: <br />’ 修訂履曆: <br />’ 修訂者 修訂日期 <br />’ 原始代碼: <br />’ Case 5 To 8 <br />’ …… <br />Case 4 To 8 <br />’*************** End *************** </p><p>D. 注釋的方法: <br />對程式碼可以在行尾加註釋(不能違反行寬的要求); <br />對單行代碼的注釋可以在上一行以“’”的形式添加簡單注釋; <br />對整段代碼的注釋放在程式碼片段之前; <br />注釋符統一採用“’”。 </p></p><p>二、命名規範 <br />A.通則 <br />VisualBasic保留字可在VisualBasic設計器中根據顏色的變化看到。變數命名不可以使用保留字,應使用有意義的名字命名,不可使用簡稱和無意義的名稱諸如A,x1等。即便對於只用於迴圈計數的變數,也應該統一賦予有意義的名稱,例如longCnt等。 <br />不能起太長的名字,應該盡量簡潔,長度限制應控制在32個字元之內。 </p><p>B.常數 <br />全部使用大寫字母以表明常數意義的名詞命名,不區分常數的類型: <br />Const DEFAULTCONCENTRATION As Single = 0.01 </p><p>C.變數 <br />命名必須使用大小寫結合(VB編輯器會自動轉換以減少程式出錯的機率) <br />變數命名採用[範圍首碼][數組首碼][類型首碼]+[自訂命名] <br />控制項命名採用[控制項首碼]+[自訂命名] </p><p>變數範圍做首碼 <br />範圍 首碼 例子 <br />全域變數 g gStrUserName <br />模組層級 m mStrUserName <br />過程級 無 StrUserName <br />數組首碼: a <br />類型首碼: <br />資料類型 首碼 例子 <br />Boolean Bln BlnFound <br />Byte Byt BytRasterDate <br />Currency Cur CurBalance <br />Date Dtm DtmBeginDate <br />Double Dbl DblFee <br />Integer Int IntQty <br />Long Lng LngVcID <br />Single Sng SngAverage <br />String Str StrItemId <br />Object Obj ObjRmtsvr <br />ADODB.Recordset Rst RstItem <br />ADODB.Connection Cnn cnnNewsPaper <br />ADODB.Command Cmm CmmAddCustomer <br />Variant Vnt VntCheck <br />自訂類型 Udt UdtUserInfo <br />控制項類型命名首碼 <br />控制項類型 首碼 例子 <br />ADO Data ado AdoBiblio <br />Check box chk ChkReadOnly <br />Combo box, drop-down list box cbo CboEnglish <br />Command button cmd CmdExit <br />Common dialog dlg DlgFileOpen <br />Data-bound combo box dbcbo DbcboLanguage <br />Data-bound grid dbgrd DbgrdQueryResult <br />Data-bound list box dblst DblstJobType <br />Data combo dbc DbcAuthor <br />Data grid dgd DgdTitles <br />Data list dbl DblPublisher <br />Directory list box dir DirSource <br />Drive list box drv DrvTarget <br />File list box fil FilSource <br />Form frm FrmEntry <br />Frame fra FraLanguage <br />Graph gra GraRevenue <br />Grid grd GrdPrices <br />Horizontal scroll bar hsb HsbVolume <br />Image img ImgIcon <br />Image combo imgcbo ImgcboProduct <br />ImageList ils IlsAllIcons <br />Label lbl LblHelpMessage <br />Line lin LinVertical <br />List box lst LstPolicyCodes <br />ListView lvw LvwHeadings <br />Menu mnu MnuFileOpen <br />Month view mvw MvwPeriod <br />MS Chart ch ChSalesbyRegion <br />MS Flex grid msg MsgClients <br />MS Tab mst MstFirst <br />Option button opt OptGender <br />Picture box pic PicVGA <br />ProgressBar prg PrgLoadFile <br />Remote Data rd RdTitles <br />Slider sld SldScale <br />Spin spn SpnPages <br />StatusBar sta StaDateTime <br />SysInfo sys SysMonitor <br />TabStrip tab TabOptions <br />Text box txt TxtLastName <br />Timer tmr TmrAlarm <br />Toolbar tlb TlbActions <br />TreeView tre TreOrganization <br />UpDown upd UpdDirection <br />Vertical scroll bar vsb VsbRate <br />自行開發ActiveX控制項的首碼根據具體項目的設計時規定。 </p><p>D. 標籤 <br />標籤就是用於Goto跳轉的代碼標識,由於Goto並不推薦使用,所以標籤的使用也比較苛刻。標籤必須全部大寫,中間的空格用底線_代替,而且應該以_開頭,比如: <br />_A_LABEL_EXAMPLE: <br />如此定義標籤是為了與其他代碼元素充分區別。 </p><p>E.方法 <br />無論是函數還是子程式,方法都必須以動詞或動詞短語命名。無需區分函數和子程式,也無需指明傳回型別。 <br />Sub Open(ByVal StrCommandString As String) <br />Function SetCopyNumber(ByVal IntCopyNumber As Integer) as Integer <br />參數需要指明ByVal還是ByRef,這一點寫起來會讓程式變長,但非常必要。如果沒有特別情況,都使用ByVal。參數的命名方法,參考 “變數的命名方法”。 </p></p><p>三、 書寫格式規範 <br />A. 程式的書寫順序 <br />該構件的概要注釋說明 <br />變數聲明 <br />過程聲明 <br />程式碼片段1 <br />程式碼片段2 <br />…… <br />B. 大小寫 <br />變數名範圍首碼用小寫,每個單詞第一個字母用大寫 <br />函數、過程、對象名也要求每個組成單詞字首大寫 <br />C. 縮排 <br />統一開發環境,設定VisualBasic設計器的開發環境選項,定義Tab寬度為4。代碼縮排時,先選中要縮排的代碼塊,然後使用快速鍵是Tab(右移)和Shift+Tab(左移);如果手工輸入空格完成縮排,以4個空格為單位。 <br />在If語句後縮排; <br />在Else語句後縮排 <br />在Select Case語句後縮排 <br />在Case語句後縮排 <br />在Do語句後縮排 <br />在For語句後縮排 <br />已經用行接續符分割的語句的各個行要縮排 <br />在With語句後縮排。 <br />對從屬於行標註的代碼進行縮排。 </p><p>D. 空格 <br />運算子前後都要空格,包括:+,-,*,/,^,=,>,>=,,NOT,AND,OR等; <br />E. 空行 <br />變數聲明部分和代碼語句間的分隔; <br />在執行統一任務的各個語句組之間插入一個空行。好的代碼應由按邏輯順序排列的進程或相關語句組構成。 <br />F. 頁寬 <br />對較長語句,如API聲明等,在代碼表單可視範圍內給予換行,不要使別人必須通過滾動視窗才能查看到完整的代碼,單行代碼長度不超過95列。 <br />使用“& _ ”分行符號。 <br />G. 其他 <br />在項目組內部,根據需要統一VisualBasic開發環境參數。 </p><p>四、 代碼檢查 <br />代碼檢查的合格標準 <br />注釋完整、命名規範、條理清晰、可讀性強的代碼視為合格代碼。 <br />檢查辦法 <br />發現未遵循本編碼規範的情況視為不合格; </p><p>五、 建議性規範 <br />l 有的時候可能需要違背好的編程原則,或者使用了某些不正規的方法,遇到這種情況時,必須用詳細的注釋來說明在做什麼和為什麼要這樣做。 <br />技巧性特別高的程式碼片段,一定要加詳細的注釋,不要讓其他開發人員花很長時間來研究一個高技巧但不易理解的程式段。 <br />l 對注釋進行縮排,使之與後隨的語句對齊。 <br />注釋通常位於它們要說明的代碼的前面。為了從視覺上突出注釋與它的代碼之間的關係,請將注釋縮排,使之與代碼處於同一個層次上 </p><p>六、 其他 <br />對文檔的理解產生的歧義由引用此文檔的項目的項目負責人統一解釋 </p><p><p><p>posted on 2005-05-16 22:11 wddavid 閱讀(...) 評論(...) 編輯 收藏<p><p>重新整理評論重新整理頁面返回頂部<p>部落格園首頁博問新聞快閃記憶體程式員招聘知識庫<p><!--done--></p><p>Copyright 2013 wddavid Powered by: 部落格園 模板提供:滬江部落格<p></option><p></select><p> |