计算机源代码编写规范VB版本.docx
- 文档编号:15241426
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:13
- 大小:22.33KB
计算机源代码编写规范VB版本.docx
《计算机源代码编写规范VB版本.docx》由会员分享,可在线阅读,更多相关《计算机源代码编写规范VB版本.docx(13页珍藏版)》请在冰点文库上搜索。
计算机源代码编写规范VB版本
计算机源代码编写规范(VB编码规范)
编号:
MPDK/ZY-17-2007
修改号:
0
发放号:
发布时间:
2007-06-28
实施时间:
2007-06-28
编制:
批准:
VB编码规范
VB编码规范1
1目的1
2适用范围1
3规范内容2
3.1最低限制的编程规约2
3.2对象的命名基准2
3.3控件的前缀2
3.4数据访问对象(DAO,ADO)的前缀3
3.5菜单的前缀4
3.6其他控件前缀的选择4
3.7常量和变量的命名基准5
3.8变量的有效范围5
3.9变量有效范围的前缀5
3.10常量6
3.11变量6
3.12变量的数据类型6
3.13说明变量和过程用途的名字7
3.14用户自定义类型7
3.15代码编写规约7
3.16代码注释规约7
3.17代码的形式8
3.18常量的分组化9
3.19&运算符和+运算符9
3.20MsgBox、InputBox、以及SQL查询字符串的作成9
1目的
规范ASP代码编写人员的编程工作。
2适用范围
本规约是科大量星的基本编程规约,用于VisualBasic编程。
编程规约不是程序的逻辑,而是作为统一程序的物理结构和外观的基准规约。
编码是如果遵守编程规约,那么代码的阅读理解和维护都将会变成一种乐趣。
编程规约的内容如下:
工程,变量以及过程的命名基准
代码的惯用标签和注释的标准形式
间隔,记述形式以及缩进
编程规约设定的理由是,如果一贯使用某种编程规约,应用程序的风格和结构都是标准化的,代码将很容易理解和维护。
3规范内容
3.1最低限制的编程规约
作为通用的编程规约,规定最低限制的必要条件。
为实现这个目标,同时也是为了程序,程序的逻辑以及车工序的流程能自由的做成。
该规约推荐的基准是一个简单的参考,没有提供对全部的对象和控件的规定。
另外也没有规定注释的全部类型。
对应于工程和组织的各自要求条件,添加以下的要素作为基准:
公司内部开发的或由第三方处购入的特殊对象和控件的命名基准
表示组织的事业内容和设施的变量名
对于工程和公司,容易理解和容易阅读作为一个重要的要素考虑
赋予对象具有一个一惯性使用的前缀的名字,对于方便容易的理解对象的种类是必要的。
在这里推荐控件,数据访问对象和菜单的命名基准。
对于常量和变量的命名基准,列举VisualBasic支持的常量和变量的命名基准推荐例子。
另外,也说明一下数据类型和适用范围的识别。
3.2对象的命名基准
如果一惯性的赋予对象名某个前缀,识别对象的种类就会很容易。
下表中是VisualBasic支持的部分对象命名推荐基准一览。
3.3控件的前缀
控件种类
前缀
例
CheckBox
chk
chkReadOnly
ComboBox
cbo
cboEnglish
RadioBox
rdo
rdoEnglish
按钮
cmd
cmdExit
对话框
dlg
dlgFileOpen
数据控件
dat
datBiblio
DBCombo
dbcbo
dbcboLanguage
DBGrid
dbgrd
dbgrdQueryResult
DBList
dblst
dblstJobType
DirectoryListBox
dir
dirSource
DriverListBox
drv
drvTarget
FileListBox
fil
filSource
Form
frm
frmEntry
FlexibleGrid
msg
msgClients
Frame
fra
fraLanguage
水平滚动条
hsb
hsbVolume
Image
img
imgIcon
Label
lbl
lblHelpMessage
Line
lin
linVertical
ListBox
lst
lstPolicyCodes
MDISubform
mdi
mdiNote
菜单
mnu
mnuFileOpen
MSFlexibleGrid
msg
msgClients
OLE容器
ole
oleWorksheet
选项按钮
opt
optRed
Picture
pic
picVGA
TextBox
txt
txtLastName
定时器
tmr
tmrAlarm
表1对象命名标准
3.4数据访问对象(DAO,ADO)的前缀
为了识别数据访问对象,使用下表所示的前缀
数据访问对象
前缀
例
Container
Con
ConReports
Database
Db
DbAccounts
DBEngine
Dbe
DbeJet
Document
Doc
DocSalesReport
Field
Fld
FldAddress
Group
Grp
GrpFinance
Index
Idx
IdxAge
Parameter
Prm
PrmJobCode
QueryDef
Qry
QrySalesByRegion
Recordset
Rec
RecForecast
Relation
Rel
RelEmployeeDept
TableDef
Tbd
TbdCustomers
User
Usr
UsrNew
Workspace
Wsp
WspMine
表2DAO/ADO对象命名标准
例:
DimdbBiblioAsDatabase
DimrecPubsInNYAsRecordset,strSQLStmtAsString
ConstDB_READONLY=4'常量设定
'打开数据库
SetdbBiblio=OpenDatabase("Biblio.mdb")
'SQL文设定
strSQLStmt="SELECT*FROMPublishersWHEREState='NY'"
'新的Recordset对象做成
SetrecPubsInNY=dbBiblio.OpenRecordset(strSQLStmt,dbReadOnly)
3.5菜单的前缀
应用程序大多使用菜单。
菜单控件的前缀是"mnu"。
命名例子一览如下表所示
菜单标题顺序
菜单控件的名字
[文件][打开]
mnuFileOpen
[文件][送信][电子邮件]
mnuFileSendEmail
[文件][送信][Fax]
mnuFileSendFax
[格式][字符]
mnuFormatCharacter
[帮助][目录]
mnuHelpContents
使用该命名规约,特定的菜单组的成员在VisualBasic的[属性]窗口按照组别的方式排序。
另外菜单控件的名字也明确表示了其所关联的菜单项目。
3.6其他控件前缀的选择
对于上面没有说到的控件,为了保持一惯性,开发者可以决定使用两到三个字母的前缀。
超过三个字母的前缀,如非必要,不要使用。
例如,派生的控件或修改了的控件,可以扩张我们上面所说明了的前缀。
如果是其他公司开发的控件,可以用小写字母拓展前缀。
3.7常量和变量的命名基准
不仅对象,对常量和变量的适当命名基准也是必要的。
在这里列举VisualBasic支持的常量和变量的命名基准推荐例子。
另外也说明数据类型和适用范围。
3.8变量的有效范围
变量的有效范围要尽量的小。
若使用全局(Public)变量、程序的状态就会变得复杂,逻辑也有可能变得难以理解。
另外代码的再利用和维护也会变得困难。
VisualBasic变量有效范围一览,入下表示
有效范围
声明
可以引用的范围
过程
过程或函数内'Private'
声明的过程内
模块
Form或代码模块(..frm、.bas)的声明(Declare)'Private'
From和模块内的所有过程和函数
全局
代码模块(.bas)的声明'Public'
应用程序全体
在VisualBasic程序中,没有其他方法在多个Form间共有数据时,才考虑使用全局变量。
在使用全局变量的场合,推荐的方法是,根据变量的机能,对变量进行分组,把所有的变量定义在一个模块中。
编程时,尽可能的使代码模块化。
例如,应用程序弹出对话框的场合,与这个对话框相关联的控制和代码应该全部写在1个Form中。
过程和函数仅仅只操作被传递的对象(全局变量除外)。
没有必要传递全局变量。
过程内使用的全局变量,必须在过程的开头处声明。
另外,处理被传递的参数的之明确会被改变以外,
ByVal的方式传递过程或函数的参数。
3.9变量有效范围的前缀
当工程鞭打时、正在使用的变量的有效范围的识别将变得非常重要。
表示数据类型的前缀的前面加上一个表示有效范围的1个字母的前缀,变量名不会变得太长,而又能识别变量的有效范围。
有效范围
前缀
例
全局
g
gstrUserName
模块
m
mblnCalcInProgress
过程内
无
dblVelocity
在标准模块或Form模块中,把变量作为public声明的话,该变量就是全局变量,该变量的有效范围就是模块级的。
注意为了有效的后用这种方法,使用一贯性的前缀很重要的。
3.10常量
常量名使用大写字母书写。
标准的VisualBasic常量名中部含有数据类型和有效范围情报。
在用户定义的常量中,如使用int、str、g、m等前缀的话,常量的值和范围就很容易理解。
常量名可以和变量名用相同的命名基准,如下面的例子。
mintUSERLISTMAX'用户列表的最大数
'(整形,模块内有效)
gstrNEWLINE'新的改行字符
'(字符串,全局变量)
3.11变量
预先声明全部的变量,因为变量类型错误而产生的bug就会减少,那么就会减少编程时间,提高效率。
比如,为防止把aUserNameTmp误作为sUserNameTmp或sUserNameTemp这样的bug,可以把[选项]对话框的[编辑]属性页的[变量强制声明]选中。
根据OptionExplicit声明,VisualBasic会要求所有使用的变量都必须事先声明。
对于变量,名字要加上表时数据类型的前缀。
特别是党程序的规模变得很大时,可以用前缀识别出变量的数据类型。
3.12变量的数据类型
为表示变量的数据类型,可以使用以下的前缀
数据类型
前缀
例
布尔型(Boolean)
bln
blnFound
字节型(Byte)
byt
bytRasterData
Collection对象
col
colWidgets
通货型(Currency)
cur
curRevenue
日期型(Date)
dtm
dtmStart
双精度浮点型(Double)
dbl
dblTolerance
错误值
err
errOrderNum
整形(Integer)
int
intQuantity
长整形(Long)
lng
lngDistance
对象类型(Object)
obj
objCurrent
单精度浮点型(Single)
sng
sngAverage
字符串(String)
str
strFName
用户自定义类型
udt
udtEmployee
Variant类型
vnt
vntCheckSum
3.13说明变量和过程用途的名字
变量和过程名字的主体部分用大写和小写字母书写。
另外变量的名字应该象InitNameArray和CloseDialogIn一仰泳动词开头。
频繁使用的单词或长的单词,可以考虑使用缩写的形式,以缩短变量名字长度。
一般来说变量名的长度超过32个字符,用VGA显示的话,阅读起来就会很困难。
使用省略形式,必须在整个应用程序内统一使用。
比如,在工程内Cnt和Count两种表示方法时,就有可能产生混淆。
3.14用户自定义类型
在多数使用用户自定义类型的大规模工程中,对各个类型使用固有的三个字母的前缀时方便的。
这个前缀的开头如果是”u”、在处理用户自定义数据类型使就很容易看出来。
例如ucli就可以作为用户自定义的client类型的前缀使用。
3.15代码编写规约
除了命名规约以外,也规定代码的注释和缩进等待代码写规约,代码的阅读和理解就更容易了。
3.16代码注释规约
在过程和函数的开头,记述说明各自的功能(做什么的过程)的简单注释。
该注释不是详细的记述过程或函数是怎样实现的。
对于实现方法用函数或方法内的inline注释来记述。
党项过程传递的参数的功能难以理解时,必须对参数注释说明。
函数的返回值,全局变量在过程内被改变以及特殊的参数以引用形式传递的场合,必须在各个过程的开头处注释说明。
关于过程的头注释,参照下表的说明。
Sectionhead
注释内容
目的
过程的功能(不记述实现方法)。
前提条件
外部变量,控件,打开的文件,其他难以理解的要素一覧说明。
结果
可能改变的外部变量,控件、文件一览,以及改变的结果(难以理解的场合)的说明。
输入参数
难以理解的参数的说明。
返回值
函数返回值的说明。
注意以下几点:
Ø重要的变量声明,变量的使用方法要注释说明。
Ø变量,过程名要使用容易理解的名字。
3.17代码的形式
现在虽然实用VGA的编程者已经很多了、但也要尽可能考虑画面的空间,同时也要考虑程序的逻辑结构和缩进的代码形式。
以下是参考项目:
Ø用标准的TAB键作一个缩进,一个TAB四个空格长度。
具体如下例:
'********************************************************************************************
'目的说明:
strUserList检索数组,取第一个符合要求的
':
目的用户
'输入参数:
'strUserList():
检索用户一览
'strTargetUser:
检索用户的名字
'返回值:
'n(n>0):
strUserList数组中第一个与strTargetUser相同的项的索引值
'-1:
如果没有发现目的用户,返回-1
'********************************************************************************************
FunctionfintFindUser(strUserList()AsString,strTargetUserAsString)AsInteger
DimintIdxAsInteger'循环变量
DimblnFoundAsBoolean'目的数据发现标志
fintFindUser=-1
intIdx=0
WhileintIdx<=Ubound(strUserList)andNotblnFound
IfstrUserList(intIdx)=strTargetUserThen
blnFound=True
fintFindUser=intIdx
EndIf
intIdx=intIdx+1
Wend
EndFunction
注:
象上面例子一样,为了区别函数名和变量名,在函数名的前面加一个’f’前缀。
3.18常量的分组化
为了不使变量合用胡子定义的常量分布在各个领域和文件中,按机能别分组。
VisualBasic公用的常量分组化以后,定义在一个模块文件中,与其他的应用程序固有的声明分开。
3.19&运算符和+运算符
字符串联结使用&运算符,数值相加使用+运算符。
字符串联结时如果使用+运算符,2个variant类型的数据操作时就会产生问题。
例:
vntVar1="10.01"
vntVar2=11
vntResult=vntVar1+vntVar2'vntResult=21.01
vntResult=vntVar1&vntVar2'vntResult=10.0111
3.20MsgBox、InputBox、以及SQL查询字符串的作成
长的代码书写时,用下划线(_)换行。
这样的话复数行代码的阅读和调试都变得容易。
使用这种方法,在消息框(MsgBox)和输入框(InputBox)中表示消息,以及SQL字符串做成时特别方便。
次に例を挙げます。
DimMsgAsString
Msg="这是在消息框中"_
&"表示的段落。
"_
&"数行分开写时,读起来容易,"_
&"调试也容易。
"
MsgBoxMsg
DimQRYAsString
QRY="SELECT*"_
&"FROMTitles"_
&"WHERE[YearPublished]>1988"
TitlesQry.SQL=QRY
.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 源代码 编写 规范 VB 版本