第六章编码规范之函数过程与审查编译讲述.pptx

第六章编码规范之函数过程与审查编译讲述.pptx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章编码规范之函数过程与审查编译讲述

程序设计语言编码规范 江苏微软技术中心 编码规范之函数过程与审查编译 第六章 教学内容 函数的编码规范。 审查与编译的编码规范。 函数规范 1.明确函数功能,精确(而不是近似)地实现函数设计。 按照详细设计,实现函数的功能。 函数规范 2. 方法的命名第一个单词一般是动词。第一个字母是小写,但是中间单词的第一个字母是大写。 函数规范 在同一项目组应明确规定对接口函数参数的合法性检查应由函数的调用者负责还是由接口函数本身负责,缺省是由函数调用者负责。 说明:对于模块间接口函数的参数的合法性检查这一问题,往往有两个极端现象,即:要么是调用者和被调用者对参数均不作合法性检查,结果就遗漏了合法性检查这一必要的处理过程,造成问题隐患;要么就是调用者和被调用者均对参数进行合法性检查,这种情况虽不会造成问题,但产生了冗余代码,降低了效率。 函数规范 防止将函数的参数作为工作变量。 说明:将函数的参数作为工作变量,有可能错误地改变参数内容,所以很危险。对必须改变的参数,最好先用局部变量代之,最后再将该局部变量的内容赋给该参数。 函数规范 函数的规模尽量限制在200行以内 说明:不包括注释和空格行。 函数规范 为简单功能编写函数 说明:虽然为仅用一两行就可完成的功能去编函数好象没有必要,但用函数可使功能明确化,增加程序可读性,亦可方便维护、测试。 示例:如下语句的功能不很明显。 value = ( a b ) ? a : b ; 改为如下就很清晰了。 int max (int a, int b) { return ((a b) ? a : b); } value = max (a, b); 函数规范 函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。 说明:如函数内部使用了全局变量或静态变量。当其它代码修改了该全局或静态变量时,该函数在内部运算时使用到该值发生改变,将不会得到预期的结果。 这是一个典型的在语法上是正确的。但是在应用中确不可使用的方法。 函数规范 避免设计多参数函数,不使用的参数从接口中去掉。 说明:目的减少函数间接口的复杂度。 函数规范 检查函数所有参数输入的有效性。 函数名应准确描述函数的功能。 函数规范 使用动宾词组为执行某操作的函数命名。如果是OOP方法,可以只有动词(名词是对象本身)。 示例:参照如下方式命名函数。 void print_record(int rec_ind ) ; 函数规范 在调用函数填写参数时,应尽量减少没有必要的数据类型转换或强制数据类型转换。 说明:因为数据类型转换或多或少存在危险。 函数规范 避免函数中不必要语句,防止程序中的垃圾代码。 程序中的垃圾代码不仅占用额外的空间,而且还常常影响程序的功能与性能,很可能给程序的测试、维护等造成不必要的麻烦。 函数规范 减少函数本身或函数间的递归调用。 说明:递归调用特别是函数间的递归调用(如A-B-C-A),影响程序的可理解性;递归调用一般都占用较多的系统资源(如栈空间);递归调用对程序的测试有一定影响。故除非为某些算法或功能的实现方便,应减少没必要的递归调用。 函数规范 当一个过程(函数)中对较长变量(一般是结构的成员)有较多引用时,可以用一个意义相当的宏代替。 说明:这样可以增加编程效率和程序的可读性。 示例:在某过程中较多引用TheReceiveBuffer[FirstSocket].byDataPtr  则可以通过以下宏定义来代替: # define pSOCKDATA TheReceiveBuffer[FirstScoket].byDataPtr 审查规范 1.在产品软件(项目组)中,要统一编译开关选项。 2.通过代码走读及审查方式对代码进行检查。 3.测试部测试产品之前,应对代码进行抽查及评审。 审查规范 4.单元测试要求至少达到语句覆盖。 5.单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。 6.正式版本上软件的任何修改都应有详细的文档记录。 本章总结 函数规范 精确实现功能 用动词(动宾)作方法名 参数检查 不要改变参数值 不超过200行 为简单逻辑功能编写函数 输出可预期 去掉无用参数 检查输入有效性 函数名应描述出功能 参数应减少类型转换 删除不必要的语句 减少递归 以宏定义长变量 审查规范 统一编译开关选项 要进行代码走读评审 单元测试每条语句都要测 单元测试要跟踪每一条语句 修改需有记录

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档