ASP开发规范
来源:互联网 发布:tplink应用特征数据库 编辑:程序博客网 时间:2024/04/29 01:21
为了规范程序代码编写,提高代码可读性,降低后期维护成本,提高办公效率,建议以后编写的程序按以下几条规范进行:
一、 统一VBSCRIPT和ASP程序编写规范:
(一)变量命名规则:
由于在ASP和VBSCRIPT中因为不需要声明变量,同时不能声明变量的类型,但为了提高代码的可读性,养成好的开发习惯,对于本系统开发的变量命名统一规则如下:
1. 使用Dim、Public、Private声明变量;
例如:Dim iStudentNum
2. 变量类型的体现:
a、 整型变量:以小写字母i开头,后面跟变量标示符,英文单词的第一个字母大写。
例如:下面声明一个存储数据库记录多少的变量
Dim iResordsetNumber
b、 单精度实体变量:以小写字母f开头,后面跟变量标示符,英文单词的第一个字母大写。
c、 双精度实体变量:以小写字母d开头,后面跟变量标示符,英文单词的第一个字母要大写。
d、 字符型变量:以小写字母s开头;
e、 布尔型变量:以小写字母b开头;
f、 数组变量:数组类型+“_”+“Array”+“_”+“变量标示符”
例如:定义一个存储学生成绩的数组(存储单精度实体类型变量)
Dim f_Array_StudentMark
3. 变量标示符要符合标示符标准,同时容易理解,尽量使用英文单词来代替,尽量避免使用缩写或简写。
例如:存储校友通讯录的字符串变量定义为:
Dim sSchoolfellowAddressList;
虽然这样定义在输入的时候比较麻烦,但是,它大大提高了程序的可读性,见其变量命名就知其意。在做变量查找的时候也比较方便。 速度和性能总是不能两全,为了方便后者我们也就只有牺牲速度。
4.在变量定义后面加变量功能定义的注释。
(二)常量命名规则:
类型体现和上面一样,不一样的地方是,所有后面的标示符全部大写,例如:
定义一个存储语言种类的的字符型常量:
Const sLANGUAGE_TYPE=”Chinese”
(三)功能函数、过程命名规则:
1. 使用Function声明函数,用Sub声明过程;
2. 函数名或过程名的第一个字母大写,且后面的每个单词第一个字母大写。
例如:
Function CheckValidityOfInput(sStuentMark)
‘此处写代码
…………
End Function
3. 函数名或过程名要容易读,简单明了。
4. 在函数前面加注释,说明函数功能、参数说明、创建日期、修改日期、修改原因、创建人、修改人等相关信息。
(四)代码缩进标准:
为了提高代码的美观型和易读性,在此提出代码编写的版面格式:区间与区间之间以一个<Tab>为间距。
例如:
‘***********************************************************
‘功能:检测输入字符串中的单引号,如果有则把原来的一个单引号变成两
‘ 个单引号,两个变成四个,依次类推,从而避免SQL语句执行错误。
‘创建人:XXXX
‘创建时间:2002-7-6
‘修改时间:
‘修改原因:
‘修改人:
‘输入参数说明:sInputString:需要进行单引号检测的字符串
‘***********************************************************
Function CheckValidityOfInput(sInputString)
Dim iCirculationControl ‘控制循环
Dim sApartString ‘分离字符检测
Dim iLenOfInput ‘输入字符长度
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
二、 统一JavaScript程序编写规范:
JavaScript的命名规则和上面大部分相同,唯一不同的地方是:变量使用Var来声明,在声明结束后以分号(;)结束。
函数的代码要求层次清楚,该写在下一行的地方尽量往下一行写,不要在一行中完成所有代码,这样看起来不容易,检查错误也特别费时。
在写函数的时候记着加注释内容,以便以后维护时快速了解程序功能。
下面是一个JavaScript程序:
<Script Language=”JavaScript”>
//***********************************************************************
//功能:对Form中的Text,Password,TextArea对象进行单引号处理,解决由于单引号
// 起的系统错误。
//创建人:XXXX
//创建时间:2002-7-8
//修改时间:
//修改原因:
//修改人:
//**********************************************************************
function CheckElement()
{
var sNeedCheck=""; //检测属于INPUT标签的内容
var iControlInput=0; //控制循环
var iLocationInput=0; //控制位置
var iLengthInput=0; //存储字符串长度
var sCheckingInput=""; //正在检测的字符
var sReplaceInput=""; //替换字符
var sHaveCheckInput=""; //已经检测的字符
var objInput; //存储INPUT对象;
var objTextArea; //存储TextArea对象
var iControlTextArea=0;
var iLocationTextArea=0;
var iLengthTextArea=0;
var sCheckingTextArea="";
var sReplaceTextArea="";
var sHaveCheckTextArea="";
//检测页面中的Text和Password对象中的单引号
for (i = 0; i < document.all.tags('INPUT').length; i++){
objInput = document.all.tags('INPUT');
if(objInput.type=='text'|| objInput.type=='password'){
sNeedCheckInput=obj.value;
iLengthInput=sNeedCheckInput.length;
for(iControl=0;iControl<iLength;iControl++){
sCheckingInput=sNeedCheckInput.charAt(iControl);
if(sCheckingInput==”’”)
sReplaceInput=”’’”;
else
sReplaceInput=sCheckingInput;
sHaveCheckInput=sHaveCheckInput+sReplaceInput;
}
}
objInput.value=sHaveCheckInput;
}
//检测页面中的TextArea对象中的单引号
for (i = 0; i < document.all.tags('TEXTAREA').length; i++){
objTextArea = document.all.tags('TEXTAREA');
if(objTextArea.type=='text'|| objTextArea.type=='password'){
sNeedCheckTextArea=obj.value;
iLengthTextArea=sNeedCheckTextArea.length;
for(iControl=0;iControl<iLength;iControl++){
sCheckingTextArea=sNeedCheckTextArea.charAt(iControl);
if(sCheckingTextArea==”’”)
sReplaceTextArea=”’’”;
else
sReplaceTextArea=sCheckingTextArea;
sHaveCheckTextArea=sHaveCheckTextArea+
sReplaceTextArea;
}
}
objTextArea.value=sHaveCheckTextArea;
}
}
</Script>
三、 系统性能提高,代码规范:
1.在ASP页面内,凡是使用CreageObject()创建的对象(Com、Recordset等),对于这些变量,应当在该页结束进行对象释放:即
Set 对象变量名=Nothing
2.数据库打开以后在不用的时候(通常是本页最后面),需要对连接进行关闭;
3.对于SQL语句,存储过程,尽量避免使用*来取所有字段,为了代码的易读性,SQL关键字要求全部大写,字段部分小写。
例如:
SELECT name,age,birthday,telephone,address FROM SchoolFellow.Address WHERE name=’xxxx’ ORDER BY birthday DESC
4.在ASP页中所有属性值尽量使用双引号括起来,特别是有属性Value的值,不要因为省时间而把双引号去掉(有的地方虽然可以去掉,程序不会出现错误,但,在有的地方去掉双引号会引来更多的麻烦。)
例如:
<INPUT type=”text” id=”ClassID” name=”ClassID” value=”<%=sClassID%>”>
在这个例子中,如果把Value属性值的单引号去掉,如果数据库中出来的值有空格,空格后面还有值,结果,显示的内容只有空格前面的内容,而后面的内容就会丢失。这只是其中一种情况,其他还有很多未知情况发生。
5. 配对标签问题:对于象<a></a>之类的标签,要注意检查配对的位值,有没有结束标志。
6. 对于需要输入字符串,且需要使用SQL语句的地方,需要进行单引号处理,调用/include/CheckQ.asp中的两个方法(一个是客户端处理,一个是服务器端处理,根据需要进行调用,安全性要求高的地方多数情况下采用服务器端处理。)之一。
7. 为了提高安全性,能使用ASP编写的代码,尽量采用ASP编写,在服务器端运行,不让用户看到代码。
8. 对于安全性要求特别高的地方,建议采用三层结构:使用VB或Delphi编写商业逻辑层代码(COM),尽量把数据库的连接部分封装到组件中,提高安全性能,通过组件和数据库交流。
9. 对于网站的安全性,应该采用好的断口扫描软件,查看网站已经打开的断口,把不安全的断口给关闭。
四、 养成写开发文档的习惯:
对于每一个页面设计(前接页,后接页),包括功能说明,页面设计,页面名称,存放位置等,应当有相应的文档记载。对于发生改动的地方,需要保留原来的部分(注释或备份),并说明备份文件存放的地方,改动时间,修改人。
对于程序部分,应该有相应的设计流程,改动的时候,也需要设计改动流程图,以便以后进行对比,和查找问题所在位置,以及问题的严重性分析
asp开发规范 ——写这个东西请多多指教,以后开发时好少吃点苦头。
一、单页编写规范:
切记页面要分模块来写:
第一模块:接收参数。[有可能从不同页面提交到同一个页面;也可能出现两个表单项以哪个优先的处理。
第二模块:定义全局变量。
第三模块:写处理代码(尽量将代码都包含到函数中,详见页面附注一。)。——到此asp代码主要部分完成。
第四模块:纯html代码,利用储存在全局变量中的值来生成页面。
第五(注意):要在页面头部写清页面逻辑。(如何接收、处理。)
优点:便于维护。模块独立,便于重复使用到类似页面。
二、全站文件构建规范:
1.工程接手后,先观看静态页,掌握逻辑及浏览顺序。
2.抽取页面中被重复利用到的地方做成嵌入文件。
3.抽取头文件、尾文件,及左侧菜单栏,做成嵌入文件。
4.划分页面结构,做出模板文件。——以后制作中就copy它,然后就可直接制作。
注意:不要急于编写页面,除非你接手的是一项小工程,或者用户需求已经非常清楚确定并且不会再更改,否则,保持页面代码的可读性是非常重要的!(当你面对大返工时,你的心情如何?先对潜在的危险考虑一下吧!)
——因为我们每个人都对自己写的代码非常明白,而都比较难于读懂别人写的代码。并且,由于客户需求的变化,修改甚至推翻原有设计是比较常见的事。所以要注意在编写代码时注意让后来者快速读懂,并便于修改。][至少要在页面头部加上注释,在代码中间重要的部分,也有必要加一些说明性注释。]
我们所作的一切仅仅是为了:增加可移植可重用性、使逻辑清楚,便于维护、
适应用户需求的改变,并尽快完成,减少无用功。
――――――――――――――――――――――――――――――――――――――
附注一:第三模块编写说明。《ASP页面编写结构》
1.先写注释
2.写嵌入文件。
3.写大块的ASP代码(从COM中取出的)
——注意:复杂页面,尽量将不同COM的操作封装在独立的函数里;
——函数结尾有一句调用,后面页面中直接读取函数处理完的数据(已被赋给全局变量)
——调用函数前,对页面入口参数进行合法性检验。
附注二:第四模块编写说明。《Html代码部分需要注意的》
1)最好不使页面的asp代码和html代码混杂在一起,——感觉比较混乱。
2)通过获取全局变量的数据得到asp的处理结果。
3)关于客户端javascript:
表单提交前要进行合法性检验。写在<form标签的前面,函数起名示例:frmcheck1();
对下拉框要有和隐藏按钮同步的,写出单独小函数,放在该按钮的下面。
对大型innerHTML型的客户端交互操作,将代码集中写在相应对应的<div标签前。
写客户端脚本时,可多写些函数,使函数间传递的参数简单,功能单一,以便日后有类似页面,可以将其拆下来再使用。
对网页制作的要求:
网页人员完成的页面,为保证在使用时不会出现混乱,请他们作以下处理:
1.表格不要嵌套太多;
2.表格宽度要用象素规定宽度;
3.单页中,一个功能模块要做成一个表格,以便编写页面时,将重复部分提取成嵌入文件。
4.其它要注意的:精简代码、注意表格中字符和边框的宽度。
5.文件名请用英文小写加数字(和半角下划线)命名。[想想你的页面搬到unix主机上的惨状]
- asp开发规范
- asp开发规范
- asp开发规范
- ASP开发规范
- >+ ASP开发规范
- ASP开发规范
- ASP开发规范
- ASP开发规范
- ASP代码开发规范
- ASP开发规范
- ASP代码开发规范
- ASP.NET开发规范
- ASP代码开发规范
- ASP.NET WEB开发规范_控件命名规范
- 蛙蛙推荐:ASP开发规范.doc
- 开发规范文档(适用于asp.net_C#)
- ASP通用开发规范(个人标准)
- 我的笔记 :ASP开发规范
- Java代码查询网站
- [索引帖]Spring: A Developer's Notebook笔记和小结(共21篇,结束)
- 如何在VC中汇编,调用Nasm编写的函数
- 开源工作流比较(引用)
- 经典语录之计算机科学(转)
- ASP开发规范
- ASP错误处理
- 软件文档知多少?
- 如何编写高质量“软件需求说明书”
- VB.NET面向对象的实现(一)
- 2006-2-18心情一曲
- VB.NET面向对象的实现(二)
- VB.NET面向对象的实现(三)
- VB.NET面向对象的实现(四)