编码规范VB.docx
- 文档编号:10592628
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:19
- 大小:185.97KB
编码规范VB.docx
《编码规范VB.docx》由会员分享,可在线阅读,更多相关《编码规范VB.docx(19页珍藏版)》请在冰豆网上搜索。
编码规范VB
密级:
内部公开
文档编号:
NTT_CMMI_SD_BCGFVB
版本号:
V1.0
编码规范VB
惠州市新思为电子科技有限公司
编制:
生效日期:
审核:
批准:
---------------------------------------------------------------------
惠州市新思为电子科技有限公司对本文件资料享受著作权及其它专属权利,未经书面许可,不得将该等文件资料(其全部或任何部分)披露予任何第三方,或进行修改后使用。
文件更改摘要:
日期
版本号
修订说明
修订人
审核人
批准人
2008-01-17
V0.1
创建
2008-03-25
V1.0
正式版本
目录
一、一般代码规则4
二、常量变量的命名规则:
4
2.1变量范围前缀4
2.2常量4
2.3变量数据类型5
2.4描述变量和过程名5
2.5用户定义的类型6
三、VB中控件的命名:
6
3.1推荐使用的控件前缀6
3.2推荐使用的数据访问对象(ADO)的前缀9
3.3推荐使用的菜单前缀10
3.4为其它控件选择前缀10
四、代码规范10
五、文件名12
六、模块化13
七、用户界面(GUI)设计规范13
1.用户界面(GUI)设计的一般原则13
2.GUI设计参考15
一、一般代码规则
●可读性原则,这是评价程序质量的首选指标,宁可不要一些技巧也要保证程序的易读特性,不要因过分追求技巧而牺牲程序的可读性。
●功能独立性原则。
每一程序块只完成一个独立的功能,反过来,每一独立的功能只在一程序块内完成,尽量低耦合、高内聚。
●少用及慎用全局变量原则,除非为了大幅度简化参数接口或增加程序可读性.。
如果使用了全局变量,则全局变量必须能够反映全局意义且在引用处必须注释清除,局部变量避免与全局变量重名,不要显式返回全局变量(如return),全局变量最好不作为函数或过程的输入/输出参数,若确实有必要,应尽量将全局变量封装到结构或类中,减少其独立出现次数。
二、常量变量的命名规则:
原则上一定要申请变量,即在模块头加入:
OptionExplicit
变量的命名应遵从变量名=作用域+变量类型+变量含义
2.1变量范围前缀
随着工程大小的增长,划分变量范围的工作也迅速增加。
在类型前缀的前面放置单字母范围前缀标明了这种增长,但变量名的长度并没有增加很多。
范围
前缀
例子
全局
G
gstrUserName
类成员或模块级
M
mblnCalcInProgress
本地到过程
无
dblVelocity
如果一个变量在标准模块或窗体模块中被声明为Public,那么该变量具有全局范围。
如果一个变量在标准模块或窗体模块中被分别声明为Private,那么该变量有模块级范围
2.2常量
常量名的主体是大小写混合的,每个单词的首字母大写。
尽管标准VisualBasic常量不包含数据类型和范围信息,但是象i、s、g和m这样的前缀对于理解一个常量的值和范围还是很有用的。
对于常量名,应遵循与变量相同的规则。
例如:
mintUserListMax'对用户列表的最大限制
'(整数值,本地到模块)
gstrNewLine'新行字符
'(字符串,应用程序全局使用)
2.3变量数据类型
用下列前缀来指明一个变量的数据类型。
Datatype
Prefix
Example
Boolean
bln
blnFound
Byte
byt
bytRasterData
Collectionobject
col
colWidgets
Currency
cur
curRevenue
Date(Time)
dtm
dtmStart
Double
dbl
dblTolerance
Error
err
errOrderNum
Integer
int
intQuantity
Long
lng
lngDistance
Object
obj
objCurrent
Single
sng
sngAverage
String
str
strFName
User-definedtype
udt
udtEmployee
Variant
vnt
vntCheckSum
2.4描述变量和过程名
变量或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。
而且,函数名应该以一个动词起首,如InitNameArray或CloseDialog。
对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。
一般来说,超过32个字符的变量名在VGA显示器上读起来就困难了。
当使用缩略语时,要确保它们在整个应用程序中的一致性。
在一个工程中,如果一会儿使用Cnt,一会儿使用Count,将导致不必要的混淆。
变量含义:
接近变量含义的英文单词,如Meter表示表底,Bill表示清单。
若用个单词表示各个单词应用大写字母打头,如 MeterValue 表示表底值。
根据以上命名规则,我们对变量mstrCallingNo应知道该变量是一个类的数据成员,该成员是零结尾的字符串,存储的是主叫号码。
这样我们就能望文生义,知道该变量的作用域、类型和含义,便于以后的维护和实际的编程。
2.5用户定义的类型
在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。
如果这些前缀是以"u"开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。
例如,ucli可以被用来作为一个用户定义的客户类型变量的前缀。
注:
对于非通用的变量,请在定义时加以注释说明,变量定义尽可能放在最开始处。
三、VB中控件的命名:
应该用一致的前缀来命名对象,使人们容易识别对象的类型。
下面列出了VisualBasic支持的一些推荐使用的对象约定。
3.1推荐使用的控件前缀
控件类型
前缀
例子
3DPanel
pnl
pnlGroup
ADOData
ado
adoBiblio
Animatedbutton
ani
aniMailBox
Checkbox
chk
chkReadOnly
Combobox,drop-downlistbox
cbo
cboEnglish
Commandbutton
cmd
cmdExit
Commondialog
dlg
dlgFileOpen
Communications
com
comFax
Control(当特定类型未知时,在过程中所使用的)
ctr
ctrCurrent
Data
dat
datBiblio
Data-boundcombobox
dbcbo
dbcboLanguage
Data-boundgrid
dbgrd
dbgrdQueryResult
Data-boundlistbox
dblst
dblstJobType
Datacombo
dbc
dbcAuthor
Datagrid
dgd
dgdTitles
Datalist
dbl
dblPublisher
Datarepeater
drp
drpLocation
Datepicker
dtp
dtpPublished
Directorylistbox
dir
dirSource
Drivelistbox
drv
drvTarget
Filelistbox
fil
filSource
Flatscrollbar
fsb
fsbMove
Form
frm
frmEntry
Frame
fra
fraLanguage
Gauge
gau
gauStatus
Graph
gra
graRevenue
Grid
grd
grdPrices
Hierarchicalflexgrid
flex
flexOrders
Horizontalscrollbar
hsb
HsbVolume
Image
img
ImgIcon
Imagecombo
imgcbo
ImgcboProduct
ImageList
ils
IlsAllIcons
Label
lbl
LblHelpMessage
Lightweightcheckbox
lwchk
LwchkArchive
Lightweightcombobox
lwcbo
LwcboGerman
Lightweightcommandbutton
lwcmd
LwcmdRemove
Lightweightframe
lwfra
LwfraSaveOptions
Lightweighthorizontalscrollbar
lwhsb
LwhsbVolume
Lightweightlistbox
lwlst
LwlstCostCenters
Lightweightoptionbutton
lwopt
LwoptIncomeLevel
Lightweighttextbox
lwtxt
LwoptStreet
Lightweightverticalscrollbar
lwvsb
LwvsbYear
Line
lin
LinVertical
Listbox
lst
LstPolicyCodes
ListView
lvw
LvwHeadings
MAPImessage
mpm
MpmSentMessage
MAPIsession
mps
MpsSession
MCI
mci
MciVideo
Menu
mnu
MnuFileOpen
Monthview
mvw
MvwPeriod
MSChart
ch
ChSalesbyRegion
MSFlexgrid
msg
MsgClients
MSTab
mst
MstFirst
OLEcontainer
ole
OleWorksheet
Optionbutton
opt
OptGender
Picturebox
pic
PicVGA
Pictureclip
clp
ClpToolbar
ProgressBar
prg
PrgLoadFile
RemoteData
rd
RdTitles
RichTextBox
rtf
RtfReport
Shape
shp
ShpCircle
Slider
sld
SldScale
Spin
spn
SpnPages
StatusBar
sta
staDateTime
SysInfo
sys
sysMonitor
TabStrip
tab
tabOptions
Textbox
txt
txtLastName
Timer
tmr
TmrAlarm
Toolbar
tlb
tlbActions
TreeView
tre
treOrganization
UpDown
upd
updDirection
Verticalscrollbar
vsb
VsbRate
3.2推荐使用的数据访问对象(ADO)的前缀
用下列前缀来指示数据访问对象。
数据库对象
前缀
例子
Connection
cn
CnAccounts
Recordset
rs
rsForecast
Command
AdoCmd
AdoCmdReports
Parameter
AdoPrm
AdoPrmJobCode
Error
AdoErr
AdoErrdbeJet
Property
AdoPro
AdoProSalesReport
Field
AdoFld
AdoFldAddress
3.3推荐使用的菜单前缀
应用程序频繁使用许多菜单控件,对于这些控件具备一组唯一的命名约定很实用。
除了最前面"mnu"标记以外,菜单控件的前缀应该被扩展:
对每一级嵌套增加一个附加前缀,将最终的菜单的标题放在名称字符串的最后。
下表列出了一些例子。
菜单标题序列
菜单处理器名称
FileOpen
mnuFileOpen
FileSendEmail
mnuFileSendEmail
FileSendFax
mnuFileSendFax
FormatCharacter
mnuFormatCharacter
HelpContents
mnuHelpContents
当使用这种命名约定时,一个特定的菜单组的所有成员一个接一个地列在VisualBasic的“属性”窗口中。
而且,菜单控件的名字清楚地表示出它们所属的菜单项。
3.4为其它控件选择前缀
对于上面没有列出的控件,应该用唯一的由两个或三个字符组成的前缀使它们标准化,以保持一致性。
只有当需要澄清时,才使用多于三个字符的前缀。
例如,对于派生的或修改的控件象上述那样扩展其前缀,使得在真正使用了哪一个控件的问题上避免混淆。
对于第三方控件,应该把制造商的小写缩写名附加到前缀中。
例如,从VisualBasicProfessional3D框架中创建的一个控件实例可以用fra3d这样的前缀,以避免混淆所使用的控件
四、代码规范
1.在具体编程时两个不同功能的程序段之间应用一空行隔开以示区别,并且在该功能段前加上该功能段的功能说明,在重要的语句前也要加上说明,提高程序的可读性和可维护性。
。
2.在编制函数时要在该函数前加上该函数的说明,包括函数名称、功能描述、参数说明、返回值说明、修改日志,如下示例:
在函数开头,用如下格式注释:
‘***************************************************
‘函数名:
FunctionDelStringFrom()string
‘功能说明:
‘从一个String删除另一个String。
‘输入参数:
strByDelete,strToDelete
‘strByDelete:
被删除的字符串(原来的字符串)
‘strToDelete:
要从上个字符串中删除的字符串。
‘返回:
找到并删除返回0,否则返回-1.
‘修改日志:
‘日期 修改原因修改人
‘--------------------------------------------------
‘01/09/20新建
‘*************************************************
注:
∙功能说明描述的是该过程完成什么的简要说明,不必要说明是怎么完成。
∙每一个重要变量的声明应该包括一个嵌入注释,来描述该变量的使用。
∙变量、控件及过程的命名应该足够清楚,使得只有复杂的执行细节才需要嵌入注释。
∙.Bas模块包含工程的VisualBasic一般常量声明,在其起始处,应该包括描述应用程序的综述,列举主要数据对象、过程、算法、对话、数据库及系统需求。
有时,一段描述算法的伪码可能会有所帮助。
3.SubandFunction通常的命名格式:
SUBformattedroutinename;//命名易读性差
SUBReadableRoutineName;//命名易读性好
方法名/过程名通常使用动宾短语代表一定操作,建议使用英文。
例如,procedureFormatHardDrive;
如果方法/过程无参数,通常使用set作方法名前缀。
例如,procedureSetUserName;
得到一个值的方法/过程,通常使用get作方法名前缀
例如,functionGetUserName:
string;
4.不同类型的函数或过程应归类存放
5.模块文件\类文件\控件文件的文件头注释
在文件开头注释以下内容:
’**********************************************
’
’Project:
文件所在的项目名,如:
eForum
’By:
作者、修改者、...,如:
xiaobo、qyz.........
’Discription:
说明文件的功能。
’**********************************************
6.严格采用梯形层次对应好各层次,间隔为一个TAB(四个空格),增强程序的可读性
7.函数内各功能模块,如:
循环、流程的各分支等,尽可能多的加以注释。
8.注意错误处理
编程中要考虑函数的各种执行情况,尽可能处理所有流程情况。
将函数分两类:
一类为与屏幕的显示无关,
二类为与屏幕的显示有关。
对于与屏幕显示无关的函数,函数通过返回值来报告错误。
对于与屏幕显示有关的函数,函数要负责向用户发出警告,并进行错误处理。
错误处理代码一般放在函数末尾,如下:
........
OnErrorGotoerrHandle
.......
ExitSub
errHandle:
SelectCaseErr
Case1:
....
Case2:
....
CaseElse:
....
EndSelect
EndSub
对于通用的错误处理,可建立通用的错误处理函数,处理常见的通用的错误。
五、文件名
●窗体文件名加前缀"Frm"
●模块文件名加前缀“Mdl”
●类模块文件名加前缀"Cls"
●用户控件文件名加前缀"uCtl"
●资源文件名加前缀"Res"
六、模块化
某一功能,如果重复实现三遍以上,即应考虑模块化,将它写成通用函数。
并向小组成员发布。
同时已要尽可能利用其它人的现成模块。
模块化的一些注意事项:
1.设计好模块接口,用面向对象的观点看,包括:
函数接口和变量接口。
2.定义好接口以后不要轻易改动,并在模块开头(文件的开头或函数的开头)加以说明。
3.不要在外部使用接口以外的其它函数或变量。
4.注意全局变量也是一种接口。
5.接口即是罗列出一个模块的所有的与外部打交道的变量、函数等。
七、用户界面(GUI)设计规范
1.用户界面(GUI)设计的一般原则
1.1连贯一致性原则
●一个好的用户界面,在画面上的布置及功能设置上应保持连贯。
不同项目的相同功能应该分别有相同的工作方式,以使用户不会与一个给定的对象交互时发生混乱。
●对于标准菜单和控制,应该努力使之在整个程序中保持外观和位置的一致。
这很重要,例如,有多处出现‘确定’和‘取消’按钮,则应该使之在相同的位置上出现,用户就容易找到它们;又如,所有的菜单中都包含‘文件’和‘编辑’两项,用户就知道在‘文件’菜单中有‘退出’命令而‘剪切’和‘粘贴’命令应该在‘编辑’菜单中。
●执行同一类型的功能和交互的用户界面,应保持一致。
例如,每个模块都有一个‘登录’窗口,则该‘登录’窗口应该是一样的;又如,程序中的日期输入编辑框的日期输入格式应保持一致,而不要用户去猜测WINDOWS的日期格式是什么;再有,如果一个屏幕上按‘ALT+O’可以激活‘确定’按钮,那么就应该保证在所有的屏幕上使用这一组合键激活‘确定’按钮。
●对于图标的使用,应该标准化,与操作系统用的一样,如:
‘保存’图标为:
,而打印图标为:
等
在一个应用程序中,所有这些都应该是连贯一致的。
1.2提示性原则
程序正在处理一个计算过程,需要很长的时间,却又不向用户提供任何线索让他知道正在做什么,那将使用户感到极大的烦恼。
让用户有效地理解应用程序正在做什么是十分重要的。
当程序发生错误或完成一个重要功能时,应给予信息提示。
例如,用户按下‘删除’按钮后,应给出消息框以确认是否真的要删除;执行一个功能需要一定的等待时,建议显示一状态表示,如对一般的任务(3-15秒)时间完成的用沙漏光标,如果需要更长的时间的,最好显示一个进度表等。
1.3简洁性原则
应该使屏幕上没有任何一个多余的构件或控件。
屏幕设置的形式取决于屏幕将要充当的角色。
对于太多的一种构件或控件应将之分组或分成子类。
每个构件或控件之间应该用一种连贯的方式,安排得尽量紧凑,合理,简洁明了。
1.4合理性原则
给定什么任务使用什么构件或控件,切记不要使用一种构件或控件来适应所有的情况。
例如,MDI(多文档界面)适用于用户打开多个自含窗口,且第一个窗口与不同的文档相连,如字处理软件或电子表格、报表程序等,而不适用于做C/S应用程序等(建议:
但对MDI管理模式进行相应的约束,使其在使用过程中能提供SDI的管理模式在业务窗口上的易管理性,可在C/S结构应用系统尝试使用)。
1.5习惯性原则
界面设计应该使大多数的操作顺序为从左到右,从上到下的通用方向流。
注意设置控件操作的TAB次序。
1.6易用性原则
易用性是程序设计的关键所在。
易用性是通过设计流来反映。
例如,对于使用率高的功能应以简单的热键就可以激活功能。
如果操作要求使用键盘,就应使所有的操作都能从键盘上获得。
一个普通的操作要求在鼠标和键盘之间来回切换是多余且不应该的。
屏幕布局应与过程流相一致。
屏幕应设计成使任何处理过程从开始到结束的流程都按用户的要求进行。
如图:
‘客户姓名’和‘电话号码’必须录入,而‘地址’是可选的,则重要的域要放在前面(图中Form2)。
2.GUI设计参考
2.1屏幕字体使用参考
屏幕上出现的所有文本都以操作系统的标准缺省字体及字号为准。
如在中文Windows95、98中系统的标准缺省字体为宋体字,字号为小五号(9号),颜色为黑色。
2.2快捷键使用参考
通用及常用命令快捷键,继承操作系统标准。
如下表:
命令
快捷键
菜单命令
文件
文件
Alt+F
新建
Ctrl+N
打开
Ctrl+O
保存
Ctrl+S或F2
打印预览
V
打印
Ctrl+P
退出
X
编辑
编辑
Alt+E
剪切
Ctrl+X
复制
Ctrl+C
粘贴
Ctrl+V
查找
Ctrl+P
帮助
帮助
Alt+H
目录和索引
C(F1)
关于
A
按钮命令
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编码 规范 VB