




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
为什么要进行编码约定?使用统一编码约定集的主要原因,是使应用程序的结构和编码风格标准化,以便于阅读和理解这段编码。好的编码约定可使源代码严谨、可读性强且意义清楚,与其它语言约定相一致,并且尽可能的直观。最小编码约定一组通用目的的编码约定应该定义完成上述目的所必需的、能让程序员自由地创建程序逻辑和功能流程的最小的要求。最小编码约定的目的是使程序易于阅读和理解,而不是用过份的约束和绝对的限制来束缚程序员本身的创造性。所以,该附录中提出的约定是简洁和建意性的。这些约定中没列出每一个可能的对象或控件,也没列出每种有用的信息注释。根据工程及机构的特殊要求,也许希望扩充这些准则,以包含附加的元素,如: 对于在家庭中开发的或从第三方厂商购买的特定对象及组件的约定。 描述机构的商业活动或设备的变量。 工程或企业认为对清楚性和可读性很重要的任何其它元素。 详细信息 关于对过程、变量及常量命名的限制的详细信息,请参阅“编程基础”中的“编码基础”。对象命名约定应该用一致的前缀来命名对象,使人们容易识别对象的类型。下面列出了 Visual Basic 支持的一些推荐使用的对象约定。推荐使用的控件前缀控件类型前缀例子3D Panel pnlpnlGroupADO DataadoadoBiblioAnimated buttonanianiMailBoxCheck boxchkchkReadOnlyCombo box, drop-down list boxcbocboEnglishCommand buttoncmdcmdExitCommon dialog dlgdlgFileOpenCommunications comcomFaxControl (当特定类型未知时,在过程中所使用的)ctrctrCurrentDatadatdatBiblioData-bound combo boxdbcbodbcboLanguageData-bound griddbgrddbgrdQueryResultData-bound list boxdblstdblstJobTypeData combodbcdbcAuthorData griddgddgdTitlesData listdbldblPublisherData repeaterdrpdrpLocationDate pickerdtpdtpPublishedDirectory list boxdirdirSourceDrive list boxdrvdrvTargetFile list boxfilfilSourceFlat scroll barfsbfsbMoveFormfrmfrmEntryFramefrafraLanguageGaugegaugauStatusGraphgragraRevenueGridgrdgrdPricesHierarchical flexgridflexflexOrdersHorizontal scroll barhsbhsbVolumeImageimgimgIconImage comboimgcboimgcboProductImageListilsilsAllIconsLabellbllblHelpMessageLightweight check boxlwchklwchkArchiveLightweight combo boxlwcbolwcboGermanLightweight command buttonlwcmdlwcmdRemoveLightweight framelwfralwfraSaveOptionsLightweight horizontal scroll barlwhsblwhsbVolumeLightweight list boxlwlstlwlstCostCentersLightweight option buttonlwoptlwoptIncomeLevelLightweight text boxlwtxtlwoptStreetLightweight vertical scroll barlwvsblwvsbYearLinelinlinVerticalList boxlstlstPolicyCodesListViewlvwlvwHeadingsMAPI messagempmmpmSentMessageMAPI sessionmpsmpsSessionMCImcimciVideoMenumnumnuFileOpenMonth viewmvwmvwPeriodMS ChartchchSalesbyRegionMS Flex gridmsgmsgClientsMS Tab mstmstFirstOLE containeroleoleWorksheetOption buttonoptoptGenderPicture boxpicpicVGAPicture clipclpclpToolbarProgressBarprgprgLoadFileRemote DatardrdTitlesRichTextBoxrtfrtfReportShapeshpshpCircleSlidersldsldScaleSpinspnspnPagesStatusBarstastaDateTimeSysInfosyssysMonitorTabStriptabtabOptionsText boxtxttxtLastNameTimertmrtmrAlarmToolbartlbtlbActionsTreeViewtretreOrganizationUpDownupdupdDirectionVertical scroll barvsbvsbRate推荐使用的数据访问对象 (DAO) 的前缀用下列前缀来指示数据访问对象。数据库对象前缀例子ContainerconconReportsDatabasedbdbAccountsDBEnginedbedbeJetDocumentdocdocSalesReportFieldfldfldAddressGroupgrpgrpFinanceIndexixidxAgeParameterprmprmJobCodeQueryDef qryqrySalesByRegionRecordsetrecrecForecastRelationrelrelEmployeeDeptTableDeftbdtbdCustomersUserusrusrNewWorkspacewspwspMine一些例子:Dim dbBiblio As DatabaseDim recPubsInNY As Recordset, strSQLStmt As StringConst DB_READONLY = 4 设置常量。打开数据库。Set dbBiblio = OpenDatabase(BIBLIO.MDB) 为SQL 语句设置文本。strSQLStmt = SELECT * FROM Publishers WHERE _ State = NY 创建新的记录集对象。Set recPubsInNY = db.OpenRecordset(strSQLStmt, _ dbReadOnly)推荐使用的菜单前缀应用程序频繁使用许多菜单控件,对于这些控件具备一组唯一的命名约定很实用。除了最前面 mnu 标记以外,菜单控件的前缀应该被扩展:对每一级嵌套增加一个附加前缀,将最终的菜单的标题放在名称字符串的最后。下表列出了一些例子。菜单标题序列菜单处理器名称File OpenmnuFileOpenFile Send EmailmnuFileSendEmailFile Send Fax mnuFileSendFaxFormat CharactermnuFormatCharacterHelp ContentsmnuHelpContents当使用这种命名约定时,一个特定的菜单组的所有成员一个接一个地列在 Visual Basic 的“属性”窗口中。而且,菜单控件的名字清楚地表示出它们所属的菜单项。为其它控件选择前缀对于上面没有列出的控件,应该用唯一的由两个或三个字符组成的前缀使它们标准化,以保持一致性。只有当需要澄清时,才使用多于三个字符的前缀。例如,对于派生的或修改的控件象上述那样扩展其前缀,使得在真正使用了哪一个控件的问题上避免混淆。对于第三方控件,应该把制造商的小写缩写名附加到前缀中。例如,从 Visual Basic Professional 3D 框架中创建的一个控件实例可以用 fra3d 这样的前缀,以避免混淆所使用的控件。常量和变量命名约定除了对象之外,常量和变量也需要良好格式的命名约定。本节列出了 Visual Basic 支持的常量和变量的推荐约定。并且讨论标识数据类型和范围的问题。变量应该总是被定义在尽可能小的范围内。全局 (Public) 变量可以导致极其复杂的状态机构,并且使一个应用程序的逻辑非常难于理解。全局变量也使代码的重用和维护更加困难。Visual Basic 中的变量可以有下列范围:范围声明位置可见位置过程级过程,子过程或函数过程中的 Private在声明它的过程中模块级窗体或代码模块(.frm、.bas )的声明部分中的 Private窗体或代码模块中的每一个过程全局代码模块(.bas)的声明部分中的 Public应用程序中的每一处在 Visual Basic 的应用程序中,只有当没有其它方便途径在窗体之间共享数据时才使用全局变量。当必须使用全局变量时,在一个单一模块中声明它们,并按功能分组。给这个模块取一个有意义的名称,以指明它的作用,如 Public.bas。较好的编码习惯是尽可能写模块化的代码。例如,如果应用程序显示一个对话框,就把要完成这一对话任务所需要的所有控件和代码放在单一的窗体中。这有助于将应用程序的代码组织在有用的组件中,并减小它运行时的开销。除了全局变量(应该是不被传递的),过程和函数应该仅对传递给它们的对象操作。在过程中使用的全局变量应该在过程起始处的声明部分中标识出来。此外,应该用 ByVal 将参数传递给 Sub 过程及 function 过程,除非明显地需要改变已传递的参数值。变量范围前缀随着工程大小的增长,划分变量范围的工作也迅速增加。在类型前缀的前面放置单字母范围前缀标明了这种增长,但变量名的长度并没有增加很多。范围前缀例子全局ggstrUserName模块级mmblnCalcInProgress本地到过程无dblVelocity如果一个变量在标准模块或窗体模块中被声明为 Public,那么该变量具有全局范围。如果一个变量在标准模块或窗体模块中被分别声明为 Private,那么该变量有模块级范围。注意 一致性是卓有成效地使用这种技术的关键;Visual Basic 中的语法检查器不会捕捉以 p. 开头的模块级变量。常量常量名的主体是大小写混合的,每个单词的首字母大写。尽管标准 Visual Basic 常量不包含数据类型和范围信息,但是象 i、s、g 和 m 这样的前缀对于理解一个常量的值和范围还是很有用的。对于常量名,应遵循与变量相同的规则。例如:mintUserListMax 对用户列表的最大限制 (整数值,本地到模块)gstrNewLine 新行字符 (字符串,应用程序全局使用)变量声明所有的变量将会节省编程时间,因为键入操作引起的错误减少了(例如,究竟是 aUserNameTmp,还是 sUserNameTmp,还是 sUserNameTemp)。在“选项”对话框的“编辑器”标签中,复选“要求变量声明”选项。Option Explicit 语句要求在 Visual Basic 程序中声明所有的变量。应该给变量加前缀来指明它们的数据类型。而且前缀可以被扩展,用来指明变量范围,特别是对大型程序。变量数据类型用下列前缀来指明一个变量的数据类型。数据类型前缀例子BooleanblnblnFoundeanBbytbytRasterDatanByteCollection ocolcolWidgetsection ocurcurRevenueon objectCudtmdtmStartectCurdbldblToleranceCurreerrerrOrderNumrencyDaintintQuantityyDatlnglngDistanceObjectobjobjCurrentectSinsngsngAverageSinglestrstrFNamegleStringUser-defudtudtEmployeeUser-devntvntCheckSum描述变量和过程名变量或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。而且,函数名应该以一个动词起首,如 InitNameArray 或 CloseDialog。对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。一般来说,超过 32 个字符的变量名在 VGA 显示器上读起来就困难了。当使用缩略语时,要确保它们在整个应用程序中的一致性。在一个工程中,如果一会儿使用 Cnt, 一会儿使用 Count,将导致不必要的混淆。用户定义的类型在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。如果这些前缀是以 u 开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。例如,ucli 可以被用来作为一个用户定义的客户类型变量的前缀。结构化编码约定除了命名约定外,结构化编码约定,可以极大地改善代码的可读性,如代码注释和一致性缩进。代码注释约定所有的过程和函数都应该以描述这段过程的功能的一段简明注释开始(这段例程干什么)。这种描述不应该包括执行过程细节(它是怎么做的),因为这常常是随时间而变的,而且这种描述会导致不必要的注释维护工作,甚至更糟成为错误的注释。代码本身和必要的嵌入注释将描述实现方法。当参数的功能不明显且当过程希望参数在一个特定的范围内时,也应描述传递给过程的参数。被过程改变的函数返回值和全局变量,特别是通过引用参数的那些,也必须在每个过程的起始处描述它们。过程头注释块应该包括下列节标题。关于例子,请参阅下节“格式化代码”。节标题注释描述目的该过程完成什么(而不是怎么完成)。假设列出每个外部变量、控件、打开文件或其它不明显元素。效果列出每个被影响的外部变量、控件、或文件及其作用(只有当它不明显时)。输入每一个可能不明显的参数。参数分别在单独的行上,并嵌入注释。返回函数返回值的说明。记住下列几点:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门卫岗前安全教育培训课件
- 门卫安全培训教育课件
- 镜片知识培训课件
- 2025年化工三基三严考试试题及答案
- 锻造生产线培训知识库课件
- 人教版初中生物八年级上册第二单元植物类群分类试卷及答案
- 锐器伤处理课件
- 脊柱软组织损伤课件
- 维修工程时间安排方案(3篇)
- 2025居间贷款居间合同
- 2025年海关关务测试题及答案
- (正式版)DB3302∕T 1180-2025 《高速公路建设韧性指标体系》
- 2025年8月广东深圳市光明区住房和建设局招聘一般专干5人备考练习题库及答案解析
- 中康科技腾讯健康:2024年消费者健康洞察呼吸系列报告-鼻炎鼻窦炎篇预览版
- 《煤矿安全规程(2025)》防治水新旧条文对照
- 2025年IT技术支持工程师招聘面试问题及答案解析
- GB 16807-2025防火膨胀密封件
- 挤压模具工特殊工艺考核试卷及答案
- 2025-2026学年外研版八年级英语上册教学计划及进度表
- 麻醉医生进修汇报课件
- (2025年标准)灵活用工协议书
评论
0/150
提交评论