《代码大全》笔记 07 - 高质量的子程序

豆瓣:https://book.douban.com/subject/1477390/

《Code Complete》2d ed,CC2

创建子程序的正当理由

  • 降低复杂度。
  • 引入中间的、易懂的抽象。

  • 避免代码重复。

  • 支持子类化。方便在派生类中覆盖单一功能。

  • 隐藏实现细节。

  • 提高可移植性。

  • 隔离复杂度。

  • 提高代码重用。

在子程序层上设计

  • 对子程序而言,内聚性是指子程序中各种操作之间联系的紧密程度。
  • 内聚性的多个方面:功能、执行顺序、数据共享、临时集合的操作、按参数决定执行的逻辑分支。

  • 对各种内聚性的的一般处理方法是,按其最小独立模块划分,进一步提高内聚性。

  • 子程序的内部也可以只通过其他子程序进行来实现其功能,即,在子程序层上设计编码。

好的子程序名字

  • 描述子程序所做的所有事情。
  • 避免使用无意义的、模糊或表述不清的动词。

  • 不要仅通过数字来形成不同的子程序名字。

  • 使用合适的子程序名字,9 ~ 15 个字符为佳。

  • 函数命名要对返回值有所描述。

  • 对于过程类子程序使用动词加宾语的形式。

  • 合适的情况使用对仗词。

如何使用子程序参数

  • 按照输入-修改-输出的顺序排列参数。
  • 把有类似参数的多个函数的参数保持一致的顺序。

  • 把状态或出错变量放到最后。

  • 不要把参数变量当做临时变量使用。

  • 对参数有限定条件的情况需明确说明。注释、assert 等。

  • 参数限制在 7 个以内。

  • 采用命名前缀等方法标识参数的输入、修改、输出的属性。

  • 参数的设计需配合子程序接口抽象定义的设计。

《代码大全》笔记 07 - 高质量的子程序

2019-12-29 - 廖杰良