程 序 设 计 规 范
1. 文件夹与文件的命名规则
1.1 文件夹命名
① 根据系统设计所规定的结构,建立相应的文件夹,根据需要建立子文件夹
② 文件夹的名称应尽量能够表达其意义,尽量使用英文命名,绝对不能汉字
③ 文件夹名称的必须全部使用小写字母 (如 “ /example ” )
1.2 文件命名
① 文件的名称应尽量能够表达其意义,尽量使用英文命名,绝对不能汉字
② 文件名称全部使用小写字母(确保平台兼容)
③ 文件名称一般采用”xxx_yyy.ext”格式,xxx(3-4个字母)表示分类,yyy(字母数自定)表示操作 (如 “ /example/exp_edit.htm ”)
2. 程序书写规则
2.1 变量命名
所有变量必须能够反映变量的作用,采用如下命名规则:
⑴ 常数命名约定
用 Const 语句创建真正的常数。这个约定使用大小写混合的格式,并以“con”作为常数名的前缀。例如:
conYourOwnConstant
⑵ 变量命名约定
出于易读和一致性的目的,请在 VBScript 代码中使用以下变量命名约定:
类型 | 前缀 | 示例 |
Boolean | Bln | blnFound |
Byte | byt | bytRasterData |
Date (Time) | dtm | dtmStart |
Double | dbl | dblTolerance |
Error | err | errOrderNum |
Integer | int | intQuantity |
Long | lng | lngDistance |
Object | obj | objCurrent |
Single | sng | SngAverage |
String | str | strFirstName |
⑶ 变量作用域前缀
随着 Script 代码长度的增加,有必要快速区分变量的作用域。在类型前缀前面添加一个单字符前缀可以实现这一点,而不致使变量名过长。
作用域 | 前缀 | 示例 |
过程级 | 无 | dblVelocity |
Script级 | s | sblnCalcInProgress |
全程级 | g | gblnCalcInProgress |
⑷ 描述性变量名和过程名
变量名或过程名的主体应使用大小写混合格式,并且尽量完整地描述其目的。另外,过程名应以动词开始,例如 InitNameArray 或 CloseDialog。对于经常使用的或较长的名称,推荐使用标准缩写以使名称保持在适当的长度内。通常多于 32 个字符的变量名会变得难以阅读。使用缩写时,应确保在整个 Script 中保持一致。
对象命名约定,下表列出了 VBScript 中可能用到的对象命名约定(推荐):
对象类型 | 前缀 | 示例 |
文本框 | txt | txtLastName |
列表框 | lin | linVertical |
复选框 | chk | chkReadOnly |
组合框、 下拉列表框 | cbo | cboEnglish |
标签 | lbl | lblHelpMessage |
命令按钮 | cmd | cmdExit |
框架 | fra | fraLanguage |
图像 | img | imgIcon |
直线 | lst | lstPolicyCodes |
公共对话框 | dlg | dlgFileOpen |
水平滚动条 | Hsb | hsbVolume |
垂直滚动条 | vsb | vsbRate |
⑸ 代码注释约定
所有过程的开始部分都应有描述其功能的简要注释。当传递给过程的参数的用途不明显,或过程对参数的取值范围有要求时,应加以说明。如果过程改变了函数和变量的返回值(特别是通过参数引用来改变),也应在过程的开始部分描述该返回值。
过程开始部分的注释应包含以下区段标题。相关样例,请参阅后面的“格式化代码”部分。
区段标题 注释内容
目的 过程的功能(不是实现功能的方法)。
假设 其状态影响此过程的外部变量、控件或其他元素的列表。
效果 过程对每个外部变量、控件或其他元素的影响效果的列表。
输入 每个目的不明显的参数的解释。每个参数都应占据单独一行并有其内部注释。
返回 返回值的解释。
请记住以下几点:
每个重要的变量声明都应有内部注释,描述变量的用途。
应清楚地命名变量、控件和过程,仅在说明复杂细节时需要内部注释。
应在 Script 的开始部分包含描述该 Script 的概述,列举对象、过程、运算法则、对话框和其他系统从属物。有时一段描述运算法则的假码是很有用的。
格式化代码
应尽可能多地保留屏幕空间,但仍允许用代码格式反映逻辑结构和嵌套。以下为几点提示:
标准嵌套块应缩进 4 个空格。
过程的概述注释应缩进 1 个空格。
概述注释后的最高层语句应缩进 4 个空格,每一层嵌套块再缩进 4 个空格。例如:
'*********************************************************
' 目的: 返回指定用户在 UserList 数组中第一次出现的位置。
' 输入: strUserList(): 所查找的用户列表。
' strTargetUser: 要查找的用户名。
' 返回: strTargetUser 在 strUserList 数组中第一次出现时的索引。
' 如果目标用户未找到,返回 -1。
' 日期: Designed by MS 2000/9/12
'*********************************************************
Function intFindUser (strUserList(), strTargetUser)
Dim i ' 循环计数器。
Dim blnFound ' 发现目标的标记。
intFindUser = -1
i = 0 ' 初始化循环计数器。
Do While i <= Ubound(strUserList) and Not blnFound
If strUserList(i) = strTargetUser Then
blnFound = True ' 标记设为 True。
intFindUser = i ' 返回值设为循环计数器。
End If
i = i + 1 ' 循环计数器加 1。
Loop
End Function
2.2 公用函数库
① 所有公用函数文件均放在“ /include ”目录下,统一管理,并作适当归类和调整
② 所有公用函数必须在函数前以注释方式书写函数作用,参数定义和返回值,例如:
2.4 注释
① 注释尽量使用中文
② 每个程序开始部分必须有以下注释:
程序名称、程序描述、实现功能、设计人员、设计日期
③ 程序代码部分必须有足够的代码片段的注释,表达清楚该程序片段的编写意图和实现原理
2.5 程序结构
① 程序代码中要有足够的容错处理功能
② 报表程序与查询程序应该具有灵活性,尽量提供给用户足够的选择
③ 程序代码结构必须层次清楚,适当使用空行分段
3. 界面设计规则
1. 界面设计尽量美观、实用、统一
2. 界面设计应尽量参考美工的建议
4. 测试规则
1. 程序编写完成后,应进行必要的测试。
2. 测试用例要覆盖各功能模块。