为了规范程序代码编写,提高代码可读性,降低后期维护成本,提高办公效率,建议以后编写的程序按以下几条规范进行:
一、统一VBSCRIPT和ASP程序编写规范:
(一)变量命名规则:
由于在ASP和VBSCRIPT中因为不需要声明变量,同时不能声明变量的类型,但为了提高代码的可读性,养成好的开发习惯,对于本系统开发的变量命名统一规则如下:
1.使用Dim、Public、Private声明变量;
例如:DimiStudentNum
2.变量类型的体现:
a、整型变量:以小写字母i开头,后面跟变量标示符,英文单词的第一个字母大写。
例如:下面声明一个存储数据库记录多少的变量
DimiResordsetNumber
b、单精度实体变量:以小写字母f开头,后面跟变量标示符,英文单词的第一个字母大写。
c、双精度实体变量:以小写字母d开头,后面跟变量标示符,英文单词的第一个字母要大写。
d、字符型变量:以小写字母s开头;
e、布尔型变量:以小写字母b开头;
f、数组变量:数组类型+“_”+“Array”+“_”+“变量标示符”
例如:定义一个存储学生成绩的数组(存储单精度实体类型变量)
Dimf_Array_StudentMark
3.变量标示符要符合标示符标准,同时容易理解,尽量使用英文单词来代替,尽量避免使用缩写或简写。
例如:存储校友通讯录的字符串变量定义为:
DimsSchoolfellowAddressList;
虽然这样定义在输入的时候比较麻烦,但是,它大大提高了程序的可读性,见其变量命名就知其意。在做变量查找的时候也比较方便。速度和性能总是不能两全,为了方便后者我们也就只有牺牲速度。
4.在变量定义后面加变量功能定义的注释。
(二)常量命名规则:
类型体现和上面一样,不一样的地方是,所有后面的标示符全部大写,例如:
定义一个存储语言种类的的字符型常量:
ConstsLANGUAGE_TYPE=”Chinese”
(三)功能函数、过程命名规则:
1.使用Function声明函数,用Sub声明过程;
2.函数名或过程名的第一个字母大写,且后面的每个单词第一个字母大写。
例如:
FunctionCheckValidityOfInput(sStuentMark)
‘此处写代码
…………
EndFunction
3.函数名或过程名要容易读,简单明了。
4.在函数前面加注释,说明函数功能、参数说明、创建日期、修改日期、修改原因、创建人、修改人等相关信息。
(四)代码缩进标准:
为了提高代码的美观型和易读性,在此提出代码编写的版面格式:区间与区间之间以一个<Tab>为间距。
例如:
‘**************************************
‘功能:检测输入字符串中的单引号,如果有则把原来的一个单引号变成两
‘个单引号,两个变成四个,依次类推,从而避免SQL语句执行错误。
‘创建人:XXXX
‘创建时间:2002-7-6
‘修改时间:
‘修改原因:
‘修改人:
‘输入参数说明:sInputString:需要进行单引号检测的字符串
‘*************************************
FunctionCheckValidityOfInput(sInputString)
DimiCirculationControl‘控制循环
DimsApartString‘分离字符检测
DimiLenOfInput‘输入字符长度
iLen=Len(Trim(sInputString))
ForiCirculationControl=1ToiLen
IfMid(sInputString,iCirculationControl,1)<>"'"Then
sApartString=sApartString&_
Mid(Trim(sInputString),iCirculationControl,1)
Else
sApartString=sApartString&"''"
EndIf
Next
CheckValidityOfInput=sApartString
EndFunction
二、统一JavaScript程序编写规范:
JavaScript的命名规则和上面大部分相同,唯一不同的地方是:变量使用Var来声明,在声明结束后以分号(;)结束。
函数的代码要求层次清楚,该写在下一行的地方尽量往下一行写,不要在一行中完成所有代码,这样看起来不容易,检查错误也特别费时。
在写函数的时候记着加注释内容,以便以后维护时快速了解程序功能。
下面是一个JavaScript程序:
<ScriptLanguage=”JavaScript”>
//*******************************************
//功能:对Form中的Text,Password,TextArea对象进行单引号处理,解决由于单引号
//起的系统错误。
//创建人:XXXX
//创建时间:2002-7-8
//修改时间:
//修改原因:
//修改人:
//*************************************
functionCheckElement()
{
varsNeedCheck="";//检测属于INPUT标签的内容
variControlInput=0;//控制循环
variLocationInput=0;//控制位置
variLengthInput=0;//存储字符串长度
varsCheckingInput="";//正在检测的字符
varsReplaceInput="";//替换字符
varsHaveCheckInput="";//已经检测的字符
varobjInput;//存储INPUT对象;
varobjTextArea;//存储TextArea对象
variControlTextArea=0;
variLocationTextArea=0;
variLengthTextArea=0;
varsCheckingTextArea="";
varsReplaceTextArea="";
varsHaveCheckTextArea="";
//检测页面中的Text和Password对象中的单引号
for(i=0;i<document.all.tags('INPUT').length;i++){
objInput=document.all.tags('INPUT')[i];
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')[i];
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关键字要求全部大写,字段部分小写。
例如:
SELECTname,age,birthday,telephone,address
FROMSchoolFellow.AddressWHEREname=’xxxx’ORDERBYbirthdayDESC
4.在ASP页中所有属性值尽量使用双引号括起来,特别是有属性Value的值,不要因为省时间而把双引号去掉(有的地方虽然可以去掉,程序不会出现错误,但,在有的地方去掉双引号会引来更多的麻烦。)
例如:
<INPUTtype=”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.net 开发规范 简单应用 方便代码的交流和维护。 不影响编码的效率,不与大众习惯冲突。 使代码更美观、阅读更方便。 使代码的逻辑更清晰、更易于理解。
ASP.NET网站开发规范模板 团队开发项目细节规范
详细讲解了C#代码在编写过程中的各种开发规范。
开发规范文档(适用于asp.net_C#)-
asp.net开发的一些规范asp.net开发的一些规范
公司中asp.net系统开发代码规范 ,实际开发中常用规范,方便以后维护升级。
ASP.NET+开发文档规范
C#开发规范之命名规范 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软 主要包括C# ASP.NET SQLDBA 源码 毕业设计 开题报告 答辩PPT等等好多知识
WEB开发规范 目 录 1. 编程规范... 4 1.1. HTML页面... 4 1.1.1. 页面规范... 4 1.1.2. 元素id命名规范(蓝色表示常用) 4 1.1.3. 元素name命名规范... 6 1.2. ASP页面... 6 1.2.1. 文件命名规范... 6 1.2.2....
本文包含了代码格式,注释(Comment)规范,变量(Variable)命名规范 ,常量命名规范 对初学者和一些程序员很有帮助
Asp.net编程规范,由本公司开发部门制定的比较完善的编程规范,包括,命名规则,数据库操作方法书写规则,书写规范 等
asp.net C# JS 展现层 .net 展现 层开发需要注意的问题,JS与.net进行结合的例子,及命名规范,还有结构化异常处理相关的问题。开发中常用 的。
DOT NET程序开发命名规范 一致的命名规范是受管理类库的可预测性和可发现性中最关键的元素之一,对这些命名规范的正确理解和广泛使用可以消除许多常见总是。本文定义了我公司所有程序员在开发.NET程序时所应遵循的...
代码编写规范 程序开发规范 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软
1. 编程规范 4 1.1. HTML页面 4 1.1.1. 页面规范 4 1.1.2. 元素id命名规范(蓝色表示常用) 4 1.1.3. 元素name命名规范 6 1.2. ASP页面 6 1.2.1. 文件命名规范 6 1.2.2. 代码分隔符 7 1.2.3. Session状态开关 ...
此文件对于ASP编程的一般安全性作了程序上的规定。开发人员可以将这些// 功能或函数加入到一个特定的文件中,比如Secure.asp,并在每次使用前包含该文件。
C#开发编码规范,适合c#初学者使用,asp.net mvc
命名规则是为了增强开发人员所写程序的规范性、可读性而设计的。
此文档详细介绍了c#中各种控件的命名规范和实例,方便了团队开发成员之间的交流