《代码大全》笔记 07 - 高质量的子程序
豆瓣:https://book.douban.com/subject/1477390/
《Code Complete》2d ed,CC2
创建子程序的正当理由
- 降低复杂度。
-
引入中间的、易懂的抽象。
-
避免代码重复。
-
支持子类化。方便在派生类中覆盖单一功能。
-
隐藏实现细节。
-
提高可移植性。
-
隔离复杂度。
-
提高代码重用。
在子程序层上设计
- 对子程序而言,内聚性是指子程序中各种操作之间联系的紧密程度。
-
内聚性的多个方面:功能、执行顺序、数据共享、临时集合的操作、按参数决定执行的逻辑分支。
-
对各种内聚性的的一般处理方法是,按其最小独立模块划分,进一步提高内聚性。
-
子程序的内部也可以只通过其他子程序进行来实现其功能,即,在子程序层上设计编码。
好的子程序名字
- 描述子程序所做的所有事情。
-
避免使用无意义的、模糊或表述不清的动词。
-
不要仅通过数字来形成不同的子程序名字。
-
使用合适的子程序名字,9 ~ 15 个字符为佳。
-
函数命名要对返回值有所描述。
-
对于过程类子程序使用动词加宾语的形式。
-
合适的情况使用对仗词。
如何使用子程序参数
- 按照输入-修改-输出的顺序排列参数。
-
把有类似参数的多个函数的参数保持一致的顺序。
-
把状态或出错变量放到最后。
-
不要把参数变量当做临时变量使用。
-
对参数有限定条件的情况需明确说明。注释、assert 等。
-
参数限制在 7 个以内。
-
采用命名前缀等方法标识参数的输入、修改、输出的属性。
-
参数的设计需配合子程序接口抽象定义的设计。
2019-12-29 - 廖杰良