您的当前位置:首页正文

编码规范VB

2021-09-13 来源:易榕旅网
密级:内部公开

文档编号:NTT_CMMI_SD_BCGFVB 版本号:V1.0

编码规范VB

惠州市新思为电子科技有限公司

编制: 生效日期: 审核: 批准: --------------------------------------------------------------------- 惠州市新思为电子科技有限公司对本文件资料享受著作权及其它专属权利,未经书面许可,不得将该等文件资料(其全部或任何部分)披露予任何第三

方,或进行修改后使用。

VB编程规范V1.2

文件更改摘要:

日期 2008-01-17 2008-03-25 版本号 V0.1 V1.0 创建 正式版本 修订说明 修订人 审核人 批准人 惠州市新思为电子科技有限公司 ® 版权所有© 第 2 页 共 17 页

VB编程规范V1.2

目录

一、 一般代码规则 ..................................................... 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 五、 文件名 .......................................................... 13 六、 模块化 .......................................................... 13 七、 用户界面(GUI)设计规范 ......................................... 13

1.用户界面(GUI)设计的一般原则 ......................................................................... 13 2. GUI设计参考 .......................................................................................................... 15

惠州市新思为电子科技有限公司 ® 版权所有© 第 3 页 共 17 页

VB编程规范V1.2

一、 一般代码规则

 可读性原则,这是评价程序质量的首选指标,宁可不要一些技巧也要保证程序的易读特

性,不要因过分追求技巧而牺牲程序的可读性。

 功能独立性原则。每一程序块只完成一个独立的功能,反过来,每一独立的功能只在一

程序块内完成,尽量低耦合、高内聚。

 少用及慎用全局变量原则,除非为了大幅度简化参数接口或增加程序可读性.。如果使用

了全局变量,则全局变量必须能够反映全局意义且在引用处必须注释清除,局部变量避免与全局变量重名,不要显式返回全局变量(如return),全局变量最好不作为函数或过程的输入/输出参数,若确实有必要,应尽量将全局变量封装到结构或类中,减少其独立出现次数。

二、 常量变量的命名规则:

原则上一定要申请变量,即在模块头加入:Option Explicit

变量的命名应遵从 变量名=作用域+变量类型+变量含义

2.1 变量范围前缀

随着工程大小的增长,划分变量范围的工作也迅速增加。在类型前缀的前面放置单字母范围前缀标明了这种增长,但变量名的长度并没有增加很多。

范围 全局 类成员或模块级 本地到过程 前缀 G M 无 例子 gstrUserName mblnCalcInProgress dblVelocity 如果一个变量在标准模块或窗体模块中被声明为 Public,那么该变量具有全局范围。如果一个变量在标准模块或窗体模块中被分别声明为 Private,那么该变量有模块级范围

2.2常量

常量名的主体是大小写混合的,每个单词的首字母大写。尽管标准 Visual Basic 常量不包含数据类型和范围信息,但是象 i、s、g 和 m 这样的前缀对于理解一个常量的值和范围还是很有用的。对于常量名,应遵循与变量相同的规则。例如:

惠州市新思为电子科技有限公司 ® 版权所有© 第 4 页 共 17 页

VB编程规范V1.2

mintUserListMax '对用户列表的最大限制

'(整数值,本地到模块)

gstrNewLine '新行字符

'(字符串,应用程序全局使用)

2.3变量数据类型

用下列前缀来指明一个变量的数据类型。 Data type Boolean Byte Prefix bln byt Example blnFound bytRasterData colWidgets curRevenue dtmStart dblTolerance errOrderNum intQuantity lngDistance objCurrent sngAverage strFName udtEmployee vntCheckSum Collection object col Currency Date (Time) Double Error Integer Long Object Single String cur dtm dbl err int lng obj sng str User-defined type udt Variant

vnt 2.4描述变量和过程名

变量或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。而且,函数名应该以一个动词起首,如 InitNameArray 或 CloseDialog。

对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。一般来说,超过 32 个字符的变量名在 VGA 显示器上读起来就困难了。

惠州市新思为电子科技有限公司 ® 版权所有© 第 5 页 共 17 页

VB编程规范V1.2

当使用缩略语时,要确保它们在整个应用程序中的一致性。在一个工程中,如果一会儿使用 Cnt, 一会儿使用 Count,将导致不必要的混淆。 变量含义:

接近变量含义的英文单词,如Meter 表示表底,Bill表示清单。若用个单词表示

各个单词应用大写字母打头,如 MeterValue 表示表底值。

根据以上命名规则,我们对变量mstrCallingNo应知道该变量是一个类的数据成员,该成员是零结尾的字符串,存储的是主叫号码。这样我们就能望文生义,知道该变量的作用域、类型和含义,便于以后的维护和实际的编程。

2.5用户定义的类型

在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。如果这些前缀是以 \"u\" 开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。例如,ucli 可以被用来作为一个用户定义的客户类型变量的前缀。 注:

对于非通用的变量,请在定义时加以注释说明,变量定义尽可能放在最开始处。

三、 VB中控件的命名:

应该用一致的前缀来命名对象,使人们容易识别对象的类型。下面列出了 Visual Basic 支持的一些推荐使用的对象约定。

3.1推荐使用的控件前缀

控件类型 3D Panel ADO Data Animated button Check box 前缀 pnl ado ani chk 例子 pnlGroup adoBiblio aniMailBox chkReadOnly cboEnglish cmdExit dlgFileOpen Combo box, drop-down list box cbo Command button Common dialog cmd dlg 惠州市新思为电子科技有限公司 ® 版权所有© 第 6 页 共 17 页

VB编程规范V1.2

Communications com comFax ctrCurrent Control (当特定类型未知时,ctr 在过程中所使用的) Data Data-bound combo box Data-bound grid Data-bound list box Data combo Data grid Data list Data repeater Date picker Directory list box Drive list box File list box Flat scroll bar Form Frame Gauge Graph Grid Hierarchical flexgrid Horizontal scroll bar Image Image combo ImageList dat dbcbo dbgrd dblst dbc dgd dbl drp dtp dir drv fil fsb frm fra gau gra grd flex hsb img imgcbo ils datBiblio dbcboLanguage dbgrdQueryResult dblstJobType dbcAuthor dgdTitles dblPublisher drpLocation dtpPublished dirSource drvTarget filSource fsbMove frmEntry fraLanguage gauStatus graRevenue grdPrices flexOrders HsbVolume ImgIcon ImgcboProduct IlsAllIcons 惠州市新思为电子科技有限公司 ® 版权所有© 第 7 页 共 17 页

VB编程规范V1.2

Label Lightweight check box Lightweight combo box Lightweight command button Lightweight frame Lightweight scroll bar lbl lwchk lwcbo lwcmd lwfra LblHelpMessage LwchkArchive LwcboGerman LwcmdRemove LwfraSaveOptions LwhsbVolume horizontal lwhsb Lightweight list box Lightweight option button Lightweight text box lwlst lwopt lwtxt LwlstCostCenters LwoptIncomeLevel LwoptStreet LwvsbYear Lightweight vertical scroll lwvsb bar Line List box ListView MAPI message MAPI session MCI Menu Month view MS Chart MS Flex grid MS Tab OLE container Option button Picture box Picture clip lin lst lvw mpm mps mci mnu mvw ch msg mst ole opt pic clp LinVertical LstPolicyCodes LvwHeadings MpmSentMessage MpsSession MciVideo MnuFileOpen MvwPeriod ChSalesbyRegion MsgClients MstFirst OleWorksheet OptGender PicVGA ClpToolbar 惠州市新思为电子科技有限公司 ® 版权所有© 第 8 页 共 17 页

VB编程规范V1.2

ProgressBar Remote Data RichTextBox Shape Slider Spin StatusBar SysInfo TabStrip Text box Timer Toolbar TreeView UpDown Vertical scroll bar prg rd rtf shp sld spn sta sys tab txt tmr tlb tre upd vsb PrgLoadFile RdTitles RtfReport ShpCircle SldScale SpnPages staDateTime sysMonitor tabOptions txtLastName TmrAlarm tlbActions treOrganization updDirection VsbRate 3.2推荐使用的数据访问对象 (ADO) 的前缀

用下列前缀来指示数据访问对象。 数据库对象 Connection Recordset Command Parameter Error Property 前缀 cn rs AdoCmd AdoPrm AdoErr AdoPro 例子 CnAccounts rsForecast AdoCmdReports AdoPrmJobCode AdoErr dbeJet AdoProSalesReport 惠州市新思为电子科技有限公司 ® 版权所有© 第 9 页 共 17 页

VB编程规范V1.2

Field

AdoFld AdoFldAddress 3.3推荐使用的菜单前缀

应用程序频繁使用许多菜单控件,对于这些控件具备一组唯一的命名约定很实用。除了最前面 \"mnu\" 标记以外,菜单控件的前缀应该被扩展:对每一级嵌套增加一个附加前缀,将最终的菜单的标题放在名称字符串的最后。下表列出了一些例子。

菜单标题序列 File Open File Send Email File Send Fax 菜单处理器名称 mnuFileOpen mnuFileSendEmail mnuFileSendFax Format Character mnuFormatCharacter Help Contents mnuHelpContents 当使用这种命名约定时,一个特定的菜单组的所有成员一个接一个地列在 Visual Basic 的“属性”窗口中。而且,菜单控件的名字清楚地表示出它们所属的菜单项。

3.4为其它控件选择前缀

对于上面没有列出的控件,应该用唯一的由两个或三个字符组成的前缀使它们标准化,以保持一致性。只有当需要澄清时,才使用多于三个字符的前缀。

例如,对于派生的或修改的控件象上述那样扩展其前缀,使得在真正使用了哪一个控件的问题上避免混淆。对于第三方控件,应该把制造商的小写缩写名附加到前缀中。例如,从 Visual Basic Professional 3D 框架中创建的一个控件实例可以用 fra3d 这样的前缀,以避免混淆所使用的控件

四、 代码规范

1.在具体编程时两个不同功能的程序段之间应用一空行隔开以示区别,并且在该功能段前加上该功能段的功能说明,在重要的语句前也要加上说明,提高程序的可读性和可维护性。。 2.在编制函数时要在该函数前加上该函数的说明,包括函数名称、功能描述、参数说明、返回值说明、修改日志,如下示例:

在函数开头,用如下格式注释:

惠州市新思为电子科技有限公司 ® 版权所有© 第 10 页 共 17 页

VB编程规范V1.2

‘*************************************************** ‘函数名:Function DelStringFrom() string ‘功能说明:

‘ 从一个String删除另一个String。 ‘ 输入参数:strByDelete,strToDelete

‘ strByDelete: 被删除的字符串(原来的字符串) ‘ strToDelete: 要从上个字符串中删除的字符串。 ‘ 返回:找到并删除返回0,否则返回-1. ‘ 修改日志:

‘ 日期 修改原因 修改人 ‘-------------------------------------------------- ‘ 01/09/20 新建 ‘************************************************* 注:

   

功能说明描述的是该过程完成什么的简要说明,不必要说明是怎么完成。 每一个重要变量的声明应该包括一个嵌入注释,来描述该变量的使用。

变量、控件及过程的命名应该足够清楚,使得只有复杂的执行细节才需要嵌入注释。 .Bas 模块包含工程的 Visual Basic 一般常量声明,在其起始处,应该包括描述应用程序的综述,列举主要数据对象、过程、算法、对话、数据库及系统需求。有时,一段描述算法的伪码可能会有所帮助。

3.Sub and Function 通常的命名格式: SUB formattedroutinename; //命名易读性差 SUB ReadableRoutineName; //命名易读性好

方法名/过程名通常使用动宾短语代表一定操作,建议使用英文。 例如,procedure FormatHardDrive;

如果方法/过程无参数,通常使用set 作方法名前缀。 例如,procedure SetUserName;

得到一个值的方法/过程,通常使用get 作方法名前缀 例如,function GetUserName: string; 4.不同类型的函数或过程应归类存放

惠州市新思为电子科技有限公司 ® 版权所有© 第 11 页 共 17 页

VB编程规范V1.2

5.模块文件\\类文件\\控件文件的文件头注释

在文件开头注释以下内容:

’********************************************** ’

’Project: 文件所在的项目名,如:eForum

’By: 作者、修改者、...,如:xiaobo、qyz......... ’Discription: 说明文件的功能。

’**********************************************

6.严格采用梯形层次对应好各层次,间隔为一个TAB(四个空格),增强程序的可读性 7.函数内各功能模块,如:循环、流程的各分支等,尽可能多的加以注释。 8.注意错误处理

编程中要考虑函数的各种执行情况,尽可能处理所有流程情况。 将函数分两类:

一类为与屏幕的显示无关, 二类为与屏幕的显示有关。

对于与屏幕显示无关的函数,函数通过返回值来报告错误。

对于与屏幕显示有关的函数,函数要负责向用户发出警告,并进行错误处理。 错误处理代码一般放在函数末尾,如下: ........

On Error Goto errHandle ....... Exit Sub

errHandle: Select Case Err Case 1: .... Case 2: .... Case Else: .... End Select End Sub

对于通用的错误处理,可建立通用的错误处理函数,处理常见的通用的错误。

惠州市新思为电子科技有限公司 ® 版权所有© 第 12 页 共 17 页

VB编程规范V1.2

五、 文件名

    

窗体文件名加前缀\"Frm\" 模块文件名加前缀“Mdl” 类模块文件名加前缀\"Cls\" 用户控件文件名加前缀\"uCtl\" 资源文件名加前缀\"Res\"

六、 模块化

某一功能,如果重复实现三遍以上,即应考虑模块化,将它写成通用函数。并向小组成员发布。同时已要尽可能利用其它人的现成模块。模块化的一些注意事项:

1. 设计好模块接口,用面向对象的观点看,包括:函数接口和变量接口。

2. 定义好接口以后不要轻易改动,并在模块开头(文件的开头或函数的开头)加以说

明。

3. 不要在外部使用接口以外的其它函数或变量。 4. 注意全局变量也是一种接口。

5. 接口即是罗列出一个模块的所有的与外部打交道的变量、函数等。

七、 用户界面(GUI)设计规范

1.用户界面(GUI)设计的一般原则

1.1 连贯一致性原则

 一个好的用户界面,在画面上的布置及功能设置上应保持连贯。不同项目的相同功能应

该分别有相同的工作方式,以使用户不会与一个给定的对象交互时发生混乱。

 对于标准菜单和控制,应该努力使之在整个程序中保持外观和位置的一致。这很重要,

例如,有多处出现‘确定’和‘取消’按钮,则应该使之在相同的位置上出现,用户就容易找到它们;又如,所有的菜单中都包含‘文件’和‘编辑’两项,用户就知道在‘文件’菜单中有‘退出’命令而‘剪切’和‘粘贴’命令应该在‘编辑’菜单中。  执行同一类型的功能和交互的用户界面,应保持一致。例如,每个模块都有一个‘登录’

窗口,则该‘登录’窗口应该是一样的;又如,程序中的日期输入编辑框的日期输入格式应保持一致,而不要用户去猜测WINDOWS的日期格式是什么;再有,如果一个屏幕上按‘ALT+O’可以激活‘确定’按钮,那么就应该保证在所有的屏幕上使用这一组合键激活‘确定’按钮。

 对于图标的使用,应该标准化,与操作系统用的一样,如:‘保存’ 图标为:

,而打印图标为: 等

在一个应用程序中,所有这些都应该是连贯一致的。

惠州市新思为电子科技有限公司 ® 版权所有© 第 13 页 共 17 页

VB编程规范V1.2

1.2 提示性原则

程序正在处理一个计算过程,需要很长的时间,却又不向用户提供任何线索让他知道正在做什么,那将使用户感到极大的烦恼。让用户有效地理解应用程序正在做什么是十分重要的。

当程序发生错误或完成一个重要功能时,应给予信息提示。例如,用户按下‘删除’按钮后,应给出消息框以确认是否真的要删除;执行一个功能需要一定的等待时,建议显示一状态表示,如对一般的任务(3-15秒)时间完成的用沙漏光标,如果需要更长的时间的,最好显示一个进度表等。 1.3 简洁性原则

应该使屏幕上没有任何一个多余的构件或控件。屏幕设置的形式取决于屏幕将要充当的角色。对于太多的一种构件或控件应将之分组或分成子类。每个构件或控件之间应该用一种连贯的方式,安排得尽量紧凑,合理,简洁明了。 1.4 合理性原则

给定什么任务使用什么构件或控件,切记不要使用一种构件或控件来适应所有的情况。例如,MDI(多文档界面)适用于用户打开多个自含窗口,且第一个窗口与不同的文档相连,如字处理软件或电子表格、报表程序等,而不适用于做C/S应用程序等(建议:但对MDI管理模式进行相应的约束,使其在使用过程中能提供SDI的管理模式在业务窗口上的易管理性,可在C/S结构应用系统尝试使用)。 1.5 习惯性原则

界面设计应该使大多数的操作顺序为从左到右,从上到下的通用方向流。注意设置控件操作的TAB次序。 1.6 易用性原则

易用性是程序设计的关键所在。易用性是通过设计流来反映。例如,对于使用率高的功能应以简单的热键就可以激活功能。如果操作要求使用键盘,就应使所有的操作都能从键盘上获得。一个普通的操作要求在鼠标和键盘之间来回切换是多余且不应该的。

屏幕布局应与过程流相一致。屏幕应设计成使任何处理过程从开始到结束的流程都按用户的要求进行。如图:‘客户姓名’和‘电话号码’必须录入,而‘地址’是可选的,则重要的域要放在前面(图中Form2)。

惠州市新思为电子科技有限公司 ® 版权所有© 第 14 页 共 17 页

VB编程规范V1.2

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 Enter 惠州市新思为电子科技有限公司 ® 版权所有© 第 15 页 共 17 页

VB编程规范V1.2

钮取消 命忽略 令 删除 所有 关闭 是 否 帮助 重试 Ese Alt + I Alt + D Alt + A Alt + C Alt + Y Alt + N Alt + H(F1) Alt + R 注:上表仅供参考。

另:在所有界面编辑框输入中,注意尽量都要支持键盘方式快捷地取得编辑框的输入焦点。 2,3 按钮使用参考

 按钮的大小参考

在同一个界面中应尽量使所有的按钮大小一致。普通按钮大小一般情况下缺省大小为Height:= 25;Width:= 75,快捷按钮缺省大小为25*25(95)、39*37(98)。  按钮的排列参考

相同的按钮在不同的界面中应尽量使其位置相同。按钮排列的优先顺序为:

1、确定、取消、退出、帮助

2、忽略、重试、取消、退出、帮助 3、确定、删除、取消、退出、帮助 4、是、否、帮助

按钮的排列位置参考如上图,(针对对话框、和弹出式窗口)

 按钮上的图标及文本

 在同一组按钮中应使用同一类型的按钮。  图标应该能尽可能地反映按钮的动作。  为保持界面的一致性,界面上如有一个图标按钮,则应使所有按钮都使用图标按钮。

不可混排(图标按钮都放在同一个ToolBar上的除外)。

 如果图标不能形象地反映按钮的动作,则应放弃使用图标而代以文本。  图标按钮都应该具有Hint提示(Tooltip提示)。  按钮上的热键应加上括号。

惠州市新思为电子科技有限公司 ® 版权所有© 第 16 页 共 17 页

VB编程规范V1.2

 既有图标又有文本的按钮,图标在左文本在右。 2.4 消息使用参考

文本消息,特别是消息框和警告对话框,必需适当地前后一致地反馈给用户。消息的使用以下几点是值得注意的:

 避免使用专用的技术术语,使用礼貌用语;

 消息语句要精练、简单扼要,但必需达意,限制2-3行;  避免在语气上有责备用户的语句;  避免使用缩写;

 多行消息左对齐排列;

 千万注意,消息中决不可有错别字或语法错误。

惠州市新思为电子科技有限公司 ® 版权所有© 第 17 页 共 17 页

因篇幅问题不能全部显示,请点此查看更多更全内容