- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 3.4 准确使用对帐形式 准确对账使程序清楚 getData还是readData? * 46 * Get / Set Open / Close Show / Hide Read / Write Start / Stop Up / Down Add / Remove Insert / Delete Lock / Unlock Open / _close Create / Destroy … * 3.5 为常用操作确定命名规则 没有规则容易造成混乱 比如:对于获取对象的标识,可以有多种的命名方式,选择哪种? employee.id.Get() dependent.GetID() supervisor() candidate.id() … * 46 * * 4. 子程序可以写多长 现代的计算机程序通常由很多极短的子程序外加少量较长的子程序构成 现代程序 = 短子程序(多)+长子程序(少) 同学们认为子程序多长为好呢? 46 * * 4.1 子程序长短对程序的影响 1984年Basili和Perricone所做的一项研究发现,子程序的长度和错误量成反比 1985年Shen另一项研究发现,子程序的长度与错误量没有关联 1986年Card的一项研究发现,短小的子程序与更低成本或错误率无关,有证据表明,较长的子程序使得每行代码的成本更低 46 * * 4.2 子程序长短对程序的影响(续) 1986年,IBM公司Jones的一项研究发现,最容易出错的是那些超过500行代码的子程序,超过500行之后,子程序的出错率就会和长度成正比 1989年Lind的研究发现,平均长度为100行到150行代码的子程序需要被修改的几率最低 1991年Selby and Basili一项针对450个子程序所做的研究表明,短小的子程序(包括注视在内小于143行)中每行代码所含的错误数量要多23%,而长的程序的修改成本要高2.4倍 46 * * 4.3 多长的代码合适 数十年的经验表明,100至200行长度的子程序和短小的子程序一样不易出错 对于超过200行的程序,没有哪项研究发现它能降低成本或降低出错率,而且可读性也会变差 理论上认为子程序最佳最大长度通常是50~150行代码 46 * * 5. 如何使用子程序参数 子程序之间的接口是程序中最容易出错的部分之一 Basili和Perricone1984年所做的一项研究发现,程序中有39%的错误都是属于内部接口错误 46 * * 5.1 减少接口错误的指导原则 按照输入-修改-输出的顺序排列参数 如果几个子程序都使用了一些类似的参数,应该让这些参数的排列顺序保持一致 使用所有的参数 把状态或出错变量放在最后 不要把子程序的参数用做工作变量 在接口中对参数的假定加以说明 把子程序的参数个数限制在7个以内 46 * * 5.1.1按输入-修改-输出顺序排列参数 不要随机排列参数,按照子程序使用参数的顺序排列参数易于记忆和检查,不易出错 46 * Ada示例:按照输入-修改-输出的顺序排列参数 procedure InvertMatrix ( originalMatrix: in Matrix; resultMatrix: out Matrix }; … procedure ChangeSentenceCase ( desiredCase: in StringCase; sentence: int out Sentence }; … procedure PrintPageNumber( pageNumber: in Integer; status: out StatusType }; * 5.1.2 类似参数应该排列顺序保持一致 子程序的参数顺序可以产生记忆效应,不一致的顺序会让参数难于记忆 比如,在C语言中,fprintf()和printf()函数只相差一个文件参数,其余完全相同 strncpy ()和strcpy()函数也是如此 46 * * 5.1.3 使用所有的参数 原则上,传递到子程序中的每个参数都应该被使用到,如果不被使用则应该删除 1986年Card和Church的研究表明,不出现未被用到的变量的子程序中有46%没有错误,而含有超过一个未被用到的变量的子程序中则仅有17%~29%没有错误 46 * * 5.1.4 不要把子程序的参数用作工作变量 子程序的参数不要被当做工作变量 46 * Java示例:正确地使用输入参数 int Sample ( int inputVal ) {
文档评论(0)