VB代码规范_第1页
VB代码规范_第2页
VB代码规范_第3页
VB代码规范_第4页
VB代码规范_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 1 页 共 13 页 编号:编号:YH-Q- 页号:页号:1/13 长沙长沙 XXXXXX 有限公司有限公司 软件开发标准 版次:版次:A 第第 0 次修改次修改 文件起草部门文件起草部门研发部研发部 批批 准准 人人 标题:标题: Visual Basic 编码标准 批批 准准 日日 期期2008.5.8 第一章第一章命名约定命名约定 .2 第二章第二章代码布局格式约定代码布局格式约定 .3 第三章第三章类型使用约定类型使用约定 .4 第四章第四章表达式约定表达式约定 .4 第五章第五章控制结构约定控制结构约定 .4 第六章第六章函数及操作符使用约定函数及操作符使用约定 .4 第七章第七章模块及访问约定模块及访问约定 .4 第八章第八章注释使用约定注释使用约定 .5 第九章第九章错误处理约定错误处理约定 .5 第十章第十章其它其它 .6 第 2 页 共 13 页 第一章第一章 命名约定命名约定 1虽然在 VB 中对字母大小写不敏感,本规定要求在程序设计编码过程中,一律按字 母大小写敏感处理。 2一律采用变量强制声明,即在“选项”对话框的“编辑器”标签中,复选“要求 变量声明”选项。Option Explicit 语句要求在 Visual Basic 程序中声明所有的变量。 3变量名命名约定 31变量名应符合 Visual Basic 的基本变量名命名规定。 它们必须以字母开头。 它们不可以包含嵌入的句号或者类型声明字符(规定数据类型的特殊字 符) 。 它们不能超过 255 个字符。控件、窗体、类和模块的名字不能超过 40 个字符。 它们不能和受到限制的关键字同名。 32变量名的定义应有意义,一律使用英文字母进行拼写,不用汉语拼音。 变量名=作用域_类型修饰词名词 33变量名使用混合大小写,并以小写字母开头。 如:Dim nTemp As Long 34如果变量名使用多个单词,将修饰词放在前面,并且尽量拼写完整增加可 读性。如:maxElement,currentFile 等。 35变量名大小应至少 23 个字母。(当作为循环变量时,可以使用单个字母。 如:i,j,k 等。) 36变量名中应有其类型的修饰前缀。 下表列出一些类型修饰前缀,其它依次类推。 子类型前缀示例 BooleanbbFound BytebytbytRasterData Date(Time)dtdtmStart DoubledbldblTolerance ErrorerrerrOrderNum IntegernintQuantity LongnlngDistance ObjectobjobjCurrent SinglesngsngAverage VariantvarvarMyData StringstrstrFirstName CurrencycrrcrrTotal 37变量生存期(作用域)前缀的使用按下表所示。 范围范围前缀前缀例子例子 全局全局g_g_strUserName 模块级模块级m_m_bCalcInProgress 本地到过程本地到过程无dblVelocity 第 3 页 共 13 页 38尽量不使用 Variant 类型变量。 39对于用户定义类型,应给每种类型一个它自己的三个字符的前缀。并且这 些前缀是以 u 开始的,例如,ucli 可以被用来作为一个用户定义的客 户类型变量的前缀。 310常量名全部使用大写,当常量名是用多个单词表示时单词之间应用下划线 连起来。如:BUFFER_SIZE,FILE_SIZE 等。 4对象名命名约定 41所有对象名必须以小写字母开头,其后每一个单词都以大写字母开头 如:dlgFileOpen,mnuFileOpen。 42应该用一致的前缀来命名对象,使人们容易识别对象的类型。 附件 1 列出了 Visual Basic 支持的一些推荐使用的控件对象前缀。 附件 2 列出了 Visual Basic 支持的推荐使用的数据访问对象 (DAO) 的 前缀。 对于表中没有列出的对象依次类推。 5函数名或过程名命名约定 51所有函数名或过程名必须以大写字母开头,尽量采用组合词表示其功能 而且,函数名应该以一个动词起首。 如: CloseDialog,GetValue. 52对于函数名来说,最好能在其名字中包含其返回的类型。 如:IsEmpty 返回类型是布尔值(Boolean)。 第二章第二章 代码布局格式约定代码布局格式约定 1语句块之间至少空一行。 2 同一层的语句应对齐。 3 下一层的语句应缩进四个空格。 4 一行只做一件事情。如:一行只定义一个变量,其余部分用于注释。 5 对于较长的代码行应分行书写,续行应缩进四个空格。 例如产生一个 SQL 字符串时,代码可写成如下形式: Dim strQuery As String strQuery = SELECT * _ & FROM Titles _ & WHERE Year Published 1988 rdoQuery.SQL = strQuery 第 4 页 共 13 页 第三章第三章 类型使用约定类型使用约定 1 尽量不使用 Integer,single;而使用 Long,Double。 2任何时候不使用缺省声明 第四章第四章 表达式约定表达式约定 1提倡多使用圆括号,尽量使读者在 30 秒内理解表达式的意思。 2 避免在表达式使用混合类型。 3循环终止判断条件尽量容易满足。 第五章第五章 控制结构约定控制结构约定 1 尽量避免使用 goto 语句。 2 结构嵌套不超过 7 层。 第六章第六章 函数及操作符使用约定函数及操作符使用约定 1避免使用 MSDN 文档中,已标明过时了(obsolete)的函数。 2优先使用值调用,然后考虑使用地址调用。 3尽量使用常数作为实参。 第七章第七章 模块及访问约定模块及访问约定 1 一个模块只做一件事。 2 模块名应能反映模块的功能。 3 模块的组织应能体现面向对象技术。譬如为了体现封装性,较好的编码习惯是尽 可能写模块化的代码。例如,如果应用程序显示一个对话框,就把要完成这一对 话任务所需要的所有控件和代码放在单一的窗体中。这有助于将应用程序的代码 组织在有用的组件中,并减小它运行时的开销。 4 模块中声明的变量的生存期应尽量短。在 Visual Basic 的应用程序中,只有当没 有其它方便途径在窗体之间共享数据时才使用全局变量。当必须使用全局变量时, 在一个单一模块中声明它们,并按功能分组。给这个模块取一个有意义的名称, 以指明它的作用,如 Public.bas。 第 5 页 共 13 页 第八章第八章 注释使用约定注释使用约定 1 每一模块文件的开头,都应该有一段注释(banner),用于说明该模块的版权,文件 名,项目名称,作者名,复审者名,开始编写日期,最后一次修改日期,简单功 能描述,改动描述等。具体样板见附件 3。 2 所有的过程和函数都应该以描述这段过程的功能的一段简明注释开始(这段例程 干什么) 。这种描述不应该包括执行过程细节(它是怎么做的) ,因为这常常是随 时间而变的,而且这种描述会导致不必要的注释维护工作,甚至更糟-成为错误 的注释。代码本身和必要的嵌入注释将描述实现方法。 3 当参数的功能不明显且当过程希望参数在一个特定的范围内时,也应描述传递给 过程的参数。被过程改变的函数返回值和全局变量,特别是通过引用参数的那些, 也必须在每个过程的起始处描述它们。 4 过程头注释块应该包括下列标题。具体样板见附件 4。 标 题 注 释 描 述 目的该过程完成什么(而不是怎么完成) 。 假设列出每个外部变量、控件、打开文件或其它不明显元素。 效果列出每个被影响的外部变量、控件、或文件及其作用(只有当它 不明显时) 。 输入每一个可能不明显的参数。参数分别在单独的行上,并嵌入注释。 返回函数返回值的说明。 5 每一个重要变量的声明应该包括一个嵌入注释,来描述该变量的使用。 6 .Bas 模块包含工程的 Visual Basic 一般常量声明,在其起始处,应该包括描述应 用程序的综述,列举主要数据对象、过程、算法、对话、数据库及系统需求。 具体例子见附件 5。 7 函数(过程)代码中每一功能块应注释说明。 8 select case 语句的每一入口块(case),应加注释说明;并且必须包含 Case Else 语句 来处理不可预见的情况。 9 在对象的定义或声明处应注释说明定义或声明该对象的目的。 10 对于易产生误解的代码行,应单独加以注释。 11 对关键性代码行,必须单独注释详细说明。 12 对于注释掉的代码段,在其前面应额外加注释来说明注释掉的原因。如果重用 该代码段,应去掉前面的注释说明。 第九章第九章 错误处理约定错误处理约定 错误处理程序是应用程序中捕获和响应错误的例程。对于预感可能会出错的任 何过程(应该假定任何 Basic 语句都可能导致错误,除非确知情况并非如此) ,均 要对这些过程添加错误处理程序。附件 6 给出具体例子。 第 6 页 共 13 页 第十章第十章 其它其它 1文件中注释和代码的比例至少为 4 :5。 2代码行中的注释应占代码块的 20%左右。 3一个函数(过程)的代码行尽量不要超过 80 行。 4一个模块文件尽量不要超过 500 行。 5模块嵌套尽量不超过 7 层。 6在不违背以上规范的情况下,如果能优化代码尽量优化它。 如:使用 For Each.Next 替代 For.Next。 7至于是否使用 Unicode 字符集另行规定。 8在一个工程文件集中,应有一个 readme 文本文件,文件中应包含每个模块文件的 说明。 第 7 页 共 13 页 附件附件 1 控 件 类 型 前 缀 例 子 3D Panel pnlpnlGroup ADO DataadoadoBiblio Animated buttonani aniMailBox Check box chk chkReadOnly Combo box, drop-down list box cbocboEnglish Command buttoncmdcmdExit Common dialogdlgdlgFileOpen CommunicationscomcomFax Control (当特定类型未 知时,在过程中所使用的) ctrctrCurrent DatadatdatBiblio Data-bound combo boxdbcbodbcboLanguage Data-bound griddbgrddbgrdQueryResult Data-bound list boxdblstdblstJobType Data combodbcdbcAuthor Data griddgddgdTitles Data listdbldblPublisher Data repeaterdrpdrpLocation Date pickerdtpdtpPublished Directory list boxdirdirSource Drive list boxdrvdrvTarget File list boxfilfilSource Flat scroll barfsbfsbMove FormfrmfrmEntry FramefrafraLanguage GaugegaugauStatus GraphgragraRevenue GridgrdgrdPrices Hierarchical flexgridflexflexOrders Horizontal scroll barhsbhsbVolume ImageimgimgIcon Image comboimgcboimgcboProduct ImageListilsilsAllIcons LabellbllblHelpMessage Lightweight check boxlwchklwchkArchive Lightweight combo boxlwcbolwcboGerman Lightweight command button lwcmdlwcmdRemove Lightweight framelwfralwfraSaveOptions Lightweight horizontal scroll bar lwhsblwhsbVolume Lightweight list boxlwlstlwlstCostCenters Lightweight option buttonlwoptlwoptIncomeLevel Lightweight text boxlwtxtlwoptStreet Lightweight vertical scroll bar lwvsblwvsbYear LinelinlinVertical List boxlstlstPolicyCodes 第 8 页 共 13 页 ListViewlvwlvwHeadings MAPI messagempmmpmSentMessage MAPI sessionmpsmpsSession MCImcimciVideo MenumnumnuFileOpen Month viewmvwmvwPeriod MS ChartchchSalesbyRegion MS Flex gridmsgmsgClients MS TabmstmstFirst OLE containeroleoleWorksheet Option buttonoptoptGender Picture boxpicpicVGA Picture clipclpclpToolbar ProgressBarprgprgLoadFile Remote DatardrdTitles RichTextBoxrtfrtfReport ShapeshpshpCircle SlidersldsldScale SpinspnspnPages StatusBarstastaDateTime SysInfosyssysMonitor TabStriptabtabOptions Text boxtxttxtLastName TimertmrtmrAlarm ToolbartlbtlbActions TreeViewtretreOrganization UpDownupdupdDirection Vertical scroll barvsbvsbRate 对于上面没有列出的控件,应该用唯一的由两个或三个字符组成的前缀使它们标 准化,以保持一致性。只有当需要澄清时,才使用多于三个字符的前缀。 例如,对于派生的或修改的控件象上述那样扩展其前缀,使得在真正使用了哪一 个控件的问题上避免混淆。对于第三方控件,应该把制造商的小写缩写名附加到前 缀中。例如,从 Visual Basic Professional 3D 框架中创建的一个控件实例可以用 fra3d 这样的前缀,以避免混淆所使用的控件。 第 9 页 共 13 页 附件附件 2 数据库对象 前 缀 例 子 Container conconReports DatabasedbdbAccounts DBEnginedbedbeJet DocumentdocdocSalesReport FieldfldfldAddress GroupgrpgrpFinance IndexixidxAge ParameterprmprmJobCode QueryDefqryqrySalesByRegion RecordsetrecrecForecast RelationrelrelEmployeeDept TableDeftbdtbdCustomers UserusrusrNew WorkspacewspwspMine 第 10 页 共 13 页 附件附件 3 * TOP GROUP INC.* Copyright (c) 1999 TOP GROUP INC. All rights reserved. No part of this program or publication may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into any language or computer language, in any form or by any means, electronic, mechanical, magnetic, optical, chemical, biological, or otherwise, without the prior written permission of: Tel:(028) 7986206 Fax:(028) 7986206 Add: TuoPu Da Dao , HongGuang, ChengDu, SiChuan, China P.C610730 * * * Source File Name:文件名 Project Name:项目名称 Author:作者名 Inspector:复审者名 Date Generated:开始编写日期 Last Revision Date:最后一次修改日期 Brief Description:简单功能描述 Change Description:每次改动描述 * 第 11 页 共 13 页 附件附件 4 * 目的: 在用户列表数组中找出 一个指定用户的第一次出现位置。 输入: strUserList(): 被搜索的用户列表。 strTargetUser: 要搜索的用户名。 返回: 在 rasUserList 数组中 rsTargetUser 的第一次出现的索引。 如果目标用户没找到,返回-1。 * Function intFindUser (strUserList() As String, strTargetUser As _ String)As Integer Dim i As Integer 循环计数器。 Dim blnFound As Integer 目标寻找标志。 intFindUser = -1 i = 0 While i = Ubound(strUserList) and Not blnFound If strUserList(i) = strTargetUser Then blnFound = True intFindUser = i End If Wend End Function 第 12 页 共 13 页 附件附件 5 Option Explicit 这个模块演示了 Visual Basic 为每个线程 创建一个独立的全局数据实例。 那么,glngGlobalData 变量 对于每个线程的 Visual Basic 开始, 将有独立的值。 这个事实用于保存每个线程上的 Coffee 对象的数:在 Coffee 对象的初始化事件中,它添加一个到 glngGlobalData;在它的终止事件中, 他减少一个。 任何 Coffee 对象都可以通过测试 glngGlobalData 来了解有多少个 Coffee 对象在它的线程中。客户也 可以通过调用由 glngGlobal

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论