【代码大全】第7章 高质量的子程序

来源:互联网 发布:叮当软件制作组件 编辑:程序博客网 时间:2024/04/30 04:19

7章 高质量的子程序

创建子程序的理由:降低复杂度,引入中间、易懂的抽象,避免代码重复,支持子类化,隐藏顺序,隐藏指针操作,提高可移植性,简化复杂的布尔判断,改善性能,隔离复杂度,隐藏实现细节,限制变化所带来的影响,隐藏全局数据,形成中央控制点,促成可重用的代码,达到重构目的。

内聚性:功能内聚(一个子程序只执行一项操作),顺序上的内聚性(子程序包含有需要按特定顺序执行的操作,操作要共享数据),通信上的内聚性,临时的内聚性,过程上的内聚性,逻辑上的内聚性,巧合的内聚性。

好的子程序的名字:描述要做的事情,避免使用无意义的、模糊不清的动词,不要仅通过数字来形成不同的子程序的名字,根据需要确定名字长度,对返回值有所描述,给过程起名用语气强烈的动词加宾语,准确使用对仗,为常用操作确立命名规则

子程序最好50~150行代码,复杂的算法可以是100~200行。

使用子程序参数的原则:按照输入-修改-输出的顺序排列,考虑自己创建inout关键字,如果几个程序都用了类似的一些参数,应该让这些参数的排列一致,使用到所有的参数,把状态或出错变量放在最后,不要把子程序的参数用作工作变量,在接口中对参数的假定予以说明,参数限制在7个以内,考虑对参数采用某种输入、修改、输出的命名规则,为子程序传用以维护其接口抽象的变量或对象,使用具名变量,确保实参和形参匹配。

函数与过程的区别主要是语义的区别,而不是语法的区别。如果一子程序的主要用途就是返回指定的返回值,那就用函数,否则就用过程。

设置函数的返回值:检查所有可能的返回路径,不要返回局部数据的引用或指针。

宏子程序和内联子程序:吧宏表达式整个包含在括号里,宏的命名遵从子程序,尽量少用内联,它违反了封装原则。

原创粉丝点击