asp开发规范 ——写这个东西请多多指教以后开发时好少吃点苦头
一单页编写规范
切记页面要分模块来写
第一模块接收参数[有可能从不同页面提交到同一个页面也可能出现两个表单项以哪个优先的处理
第二模块定义全局变量
第三模块写处理代码(尽量将代码都包含到函数中详见页面附注一)——到此asp代码主要部分完成
第四模块纯html代码利用储存在全局变量中的值来生成页面
第五(注意)要在页面头部写清页面逻辑(如何接收处理)
优点便于维护模块独立便于重复使用到类似页面
二全站文件构建规范
工程接手后先观看静态页掌握逻辑及浏览顺序
抽取页面中被重复利用到的地方做成嵌入文件
抽取头文件尾文件及左侧菜单栏做成嵌入文件
划分页面结构做出模板文件——以后制作中就copy它然后就可直接制作
注意不要急于编写页面除非你接手的是一项小工程或者用户需求已经非常清楚确定并且不会再更改否则保持页面代码的可读性是非常重要的!(当你面对大返工时你的心情如何?先对潜在的危险考虑一下吧!)
——因为我们每个人都对自己写的代码非常明白而都比较难于读懂别人写的代码并且由于客户需求的变化修改甚至推翻原有设计是比较常见的事所以要注意在编写代码时注意让后来者快速读懂并便于修改][至少要在页面头部加上注释在代码中间重要的部分也有必要加一些说明性注释]
我们所作的一切仅仅是为了增加可移植可重用性使逻辑清楚便于维护
适应用户需求的改变并尽快完成减少无用功
――――――――――――――――――――――――――――――――――――――
附注一第三模块编写说明《ASP页面编写结构》
先写注释
写嵌入文件
写大块的ASP代码(从COM中取出的)
——注意复杂页面尽量将不同COM的操作封装在独立的函数里
——函数结尾有一句调用后面页面中直接读取函数处理完的数据(已被赋给全局变量)
——调用函数前对页面入口参数进行合法性检验
附注二第四模块编写说明《Html代码部分需要注意的》
)最好不使页面的asp代码和html代码混杂在一起——感觉比较混乱
)通过获取全局变量的数据得到asp的处理结果
)关于客户端javascript
表单提交前要进行合法性检验写在
对下拉框要有和隐藏按钮同步的写出单独小函数放在该按钮的下面
对大型innerHTML型的客户端交互操作将代码集中写在相应对应的
写客户端脚本时可多写些函数使函数间传递的参数简单功能单一以便日后有类似页面可以将其拆下来再使用
对网页制作的要求
网页人员完成的页面为保证在使用时不会出现混乱请他们作以下处理
表格不要嵌套太多
表格宽度要用象素规定宽度
单页中一个功能模块要做成一个表格以便编写页面时将重复部分提取成嵌入文件
其它要注意的精简代码注意表格中字符和边框的宽度
文件名请用英文小写加数字(和半角下划线)命名[想想你的页面搬到unix主机上的惨状]
为了规范程序代码编写提高代码可读性降低后期维护成本提高办公效率建议以后编写的程序按以下几条规范进行
一 统一VBSCRIPT和ASP程序编写规范
(一)变量命名规则
由于在ASP和VBSCRIPT中因为不需要声明变量同时不能声明变量的类型但为了提高代码的可读性养成好的开发习惯对于本系统开发的变量命名统一规则如下
使用DimPublicPrivate声明变量
例如Dim iStudentNum
变量类型的体现
a整型变量以小写字母i开头后面跟变量标示符英文单词的第一个字母大写
例如下面声明一个存储数据库记录多少的变量
Dim iResordsetNumber
b单精度实体变量以小写字母f开头后面跟变量标示符英文单词的第一个字母大写
c双精度实体变量以小写字母d开头后面跟变量标示符英文单词的第一个字母要大写
d 字符型变量以小写字母s开头
e 布尔型变量以小写字母b开头
f数组变量数组类型+_+Array+_+变量标示符
例如定义一个存储学生成绩的数组(存储单精度实体类型变量)
Dim f_Array_StudentMark
变量标示符要符合标示符标准同时容易理解尽量使用英文单词来代替尽量避免使用缩写或简写
例如存储校友通讯录的字符串变量定义为
Dim sSchoolfellowAddressList;
虽然这样定义在输入的时候比较麻烦但是它大大提高了程序的可读性见其变量命名就知其意在做变量查找的时候也比较方便速度和性能总是不能两全为了方便后者我们也就只有牺牲速度
在变量定义后面加变量功能定义的注释
(二)常量命名规则
类型体现和上面一样不一样的地方是所有后面的标示符全部大写例如
定义一个存储语言种类的的字符型常量
Const sLANGUAGE_TYPE=Chinese
(三)功能函数过程命名规则
使用Function声明函数用Sub声明过程
函数名或过程名的第一个字母大写且后面的每个单词第一个字母大写
例如
Function CheckValidityOfInput(sStuentMark)
此处写代码
…………
End Function
函数名或过程名要容易读简单明了
在函数前面加注释说明函数功能参数说明创建日期修改日期修改原因创建人修改人等相关信息
(四)代码缩进标准
为了提高代码的美观型和易读性在此提出代码编写的版面格式区间与区间之间以一个为间距
例如
***********************************************************
功能检测输入字符串中的单引号如果有则把原来的一个单引号变成两
个单引号两个变成四个依次类推从而避免SQL语句执行错误
创建人XXXX
修改时间
修改原因
修改人
输入参数说明sInputString需要进行单引号检测的字符串
***********************************************************
Function CheckValidityOfInput(sInputString)
Dim iCirculationControl 控制循环
Dim sApartString 分离字符检测
Dim iLenOfInput 输入字符长度
iLen= Len(Trim(sInputString))
For iCirculationControl = To iLen
If Mid(sInputString iCirculationControl ) <> Then
sApartString = sApartString & _
Mid(Trim(sInputString) iCirculationControl )
Else
sApartString = sApartString &
End If
Next
CheckValidityOfInput = sApartString
End Function
二 统一JavaScript程序编写规范
JavaScript的命名规则和上面大部分相同唯一不同的地方是变量使用Var来声明在声明结束后以分号()结束
函数的代码要求层次清楚该写在下一行的地方尽量往下一行写不要在一行中完成所有代码这样看起来不容易检查错误也特别费时
在写函数的时候记着加注释内容以便以后维护时快速了解程序功能
下面是一个JavaScript程序
三 系统性能提高代码规范
在ASP页面内凡是使用CreageObject()创建的对象(ComRecordset等)对于这些变量应当在该页结束进行对象释放即
Set 对象变量名=Nothing
数据库打开以后在不用的时候(通常是本页最后面)需要对连接进行关闭
对于SQL语句存储过程尽量避免使用*来取所有字段为了代码的易读性SQL关键字要求全部大写字段部分小写
例如
SELECT nameagebirthdaytelephoneaddress FROM SchoolFellowAddress WHERE name=xxxx ORDER BY birthday DESC
在ASP页中所有属性值尽量使用双引号括起来特别是有属性Value的值不要因为省时间而把双引号去掉(有的地方虽然可以去掉程序不会出现错误但在有的地方去掉双引号会引来更多的麻烦)
例如
>
在这个例子中如果把Value属性值的单引号去掉如果数据库中出来的值有空格空格后面还有值结果显示的内容只有空格前面的内容而后面的内容就会丢失这只是其中一种情况其他还有很多未知情况发生
配对标签问题对于象之类的标签要注意检查配对的位值有没有结束标志
对于需要输入字符串且需要使用SQL语句的地方需要进行单引号处理调用/include/CheckQasp中的两个方法(一个是客户端处理一个是服务器端处理根据需要进行调用安全性要求高的地方多数情况下采用服务器端处理)之一
为了提高安全性能使用ASP编写的代码尽量采用ASP编写在服务器端运行不让用户看到代码
对于安全性要求特别高的地方建议采用三层结构使用VB或Delphi编写商业逻辑层代码(COM)尽量把数据库的连接部分封装到组件中提高安全性能通过组件和数据库交流
对于网站的安全性应该采用好的断口扫描软件查看网站已经打开的断口把不安全的断口给关闭
四 养成写开发文档的习惯
对于每一个页面设计(前接页后接页)包括功能说明页面设计页面名称存放位置等应当有相应的文档记载对于发生改动的地方需要保留原来的部分(注释或备份)并说明备份文件存放的地方改动时间修改人
对于程序部分应该有相应的设计流程改动的时候也需要设计改动流程图以便以后进行对比和查找问题所在位置以及问题的严重性分析