ASP程序结构的风格

来源:互联网 发布:js中的保留字是什么 编辑:程序博客网 时间:2024/04/19 18:06

文件结构
1、 ASP文件头部必须含有option Explicit语句
2、 ASP文件头部应该有文件的如下的描述:重要功能,建立者,建立日期,版本号,及版权申明。申明样例如下:
‘**********************************************************
‘*    index.asp                      
‘*  Copyright (c)   Company 2000-2002   *
‘*                  All rights reserved           *
‘**********************************************************

‘**********************Description*************************
‘* Main function detail:                         *
‘* Author:: Addson                            *
‘* Date:  2002/12/14                         *
‘* Version: 1.0.0.0                            *
‘**********************************************************
3、 如果文件需要对数据库进行操作,首部应包含Setconn_NoEnc.asp文件,尾部包含closeconn_NoEnc. Asp文件。
4、 每个ASP文件必须包含6个文件:
1) **Defs_NoEnc.asp, 
2) CommFuns_NoEnc.asp,
3) CommFuns_NoEnc.js,
4) CommFuns_NoEnc.vbs
5) Head_NoEnc.asp或Head1_NoEnc.asp(根据asp文件所在目录的不同选择不同的文件)
6) foot_NoEnc.asp
关于head_NoEnc.asp及foot_NoEnc.asp的的主要作用是为了方便更改文件的公用信息如菜单名称、及页面最下部的版权等信息。如果有必要还要包含一个cleanHistory_NoEnc.asp的文件。这些文件的主要目的为写代码时又发现需要加另外的function时可以插入代码。
5、 语句的缩进包括但不限于以下情况:
1) 使用End if时,在If语句后缩进。
2) 在Else语句后缩进。
3) 在Select case语句后缩进。
4) 在Case语句后缩进。
5) 在Do语句后缩进。
6) 已经用了行接续符分割的语句的各个行要缩进。
7) 在With语句后要缩进。
6、 如果If语句、For语句、Do语句或While语句嵌套大于或等于两层,则在end if ,next ,loop, wend后要加上注解说明是与哪一个对应的。要注意的是,在循环中的变量也不允许用i,j,也要用有意义的变量。
循环变量的命名规则:nmf_类型+变量名。如for nmf_intArrBound = 0 to ubound(nmm_arrNameList) …
7、 对每一个函数(Function)应该说出其功能、输入参数值、输出值(即返回值,分为正常情况返回什么值,异常情况返回什么值),如果返回值有一定的意义(比如为布尔值)时应说明其含义。
样例:
‘Author:
‘Verision:
‘Date:
‘[Function Name]:
‘Function:
‘Para:
  para1: name type default
  para2: name type default
‘Return:
  Normal:
  Abnormal:

实例:
‘Author: BOB Lee
‘Version: 1.0
‘Date: 2002-11-4
‘getNameAndSexFromDB(nmm_strnameFieldId,nmm_strsexFieldId):
‘Function:主要功能是根据传入的两个参数值,到Database中取回相应的字符串类型的name和sex的值并返回用逗号分隔的一个字符串。如果传入的两个参数值无效或在Database中不存在,则返回一个空串
‘Para;
  nmm_strnameFieldId: 在Database中姓名的ID值,有效值应为数字,要做非数字检测
  nmm_strsexFieldId: 在Database 中性别的ID值,有效值应为数字,要做非数字检测。
‘Return:
     Normal:返回用逗号分隔的姓名和性别组合的字符串
          Abnormal:因传入非法参数、或没能从database取得或程序异常,将返回一个空串。
8、 如果If…else…end if 嵌套太深,应该定义变量,减少层的嵌套,即前部分的判断值为后一条件的判断的条件。
9、 一个函数(Function)或过程(sub)只实现一个功能。
10、如果一行太长,应使用行接续符且每行对齐,如:
nmm_strSelectSQL= ”select tblAssemblyDetail.*,” _
“tblInventory.Description, ” _
“tblInventory.Serials from tblInventory.Right join “ _     
               “tblAssemblyDetail on ……..”
11、在**Defs_NoEnc.asp中定义一全局变量名叫DEBUG,由这个变量来控制是否显示调试用的信息,在项目开发过程中所有的信息都用两个公共函数(function)来负责显示:一个为showDebugInfos:这个函数专门用来显示所有出错信息,出错信息不允许人为加工,要直接输出程序本身报错信息以便定位。(此出错信息只是测试调试用,如果出错信息是给用户看的,不要用这个Function,用下面介绍的Function来显示。)。showDebugInfos的测试信息的显示就由DEBUG变量控制。;另一个为NMMessageDlg,用来显示与用户交互的信息。项目发布后将DEBUG改成False来屏蔽所有的测试用的信息。
12、脚本语言的标记必须单独一行。如Asp的<%%>,PHP <? ?>等。
13、页面输出的信息如提示框,不论是ASP、VBS或Javascript,都必须定义成常量再调用。如:
Const NMC_STR_DELERR="删除操作被取消,有相关记录在使用被删除信息。"
Const NMC_STR_ERR="数据库操作错误,操作被取消。"
Const NMC_STR_INSERR="数据库操作错误,新增操作被取消。"
这些常量定义在**Defs_NoEnc.asp文件中。对于javascript和VBScript中要使用的常量也定义在这个文件中。**Defs_NoEnc.asp文件是每个其它文件必包含的,且必须是第一个被包含的文件。**Defs_NoEnc.asp文件中的每一个常量必须有明确说明是哪个文件所有,具体样例如下:
‘‘**********************************************************
‘*    OADefs_NoEnc.asp                      
‘*  Copyright (c)   Company 2000-2002   *
‘*                  All rights reserved           *
‘**********************************************************

‘**********************Description*************************
‘*  OA项目中所有的常量参数的定义文件         *
‘*
‘* Author: Addson                              *
‘* Date:  2002/12/14                           *
‘* Version: 1.0.0.0                              *
‘**********************************************************
‘[Common] 定义被两个及两个以上文件使用的变量
‘开始定义
‘[index.asp]
‘定义属于index.asp文件的常量
‘[gwqfwq.asp]
‘定义属于gwqfwq.asp文件的常量
14、Javascript,Vbscript脚本的标记必须统一用标准的,规定如下:
开始结束标记必须一模一样,但太小写没关系。这里的一模一样是指其中的引号、空格不能多也不能少,否则就无法用程序清除其中的注解了。
javascript:
<SCRIPT LANGUAGE="JavaScript">
<!--
开始你的代码
//-->
</SCRIPT>
VBScript:
<SCRIPT LANGUAGE="VBScript">
<!--
开始你的代码
//-->
</SCRIPT>
15、所有applicatoin级的变量(也就是整个系统运行时,各个用户共用的变量),如myDSN站点名字,站点IP等,一律规定必须统一在global.asa文件中定义,其它页面引用就行如:
sub Application_OnStart()
    Application(“myDSN”) = "Driver={SQL Server};Server=192.168.1.252;
Database=Release_EGovernment;Uid=nmkspro;Pwd=123;"
    Applicaton(“Domain”) =” http://newoa3. .com.cn”
end sub
以后其它页面要用到以上变量定义的值,就可以调用。
如setConn_NoEnc.asp文件中:
<%
Dim nmm_objConn,nmm_strmyDSN
If NOT IsObject(nmm_objConn) Then
  Set nmm_objConn = Server.CreateObject("ADODB.Connection")
 nmm_objConn.open Application(“myDSN”)
End If
%>

原创粉丝点击