核对表:自说明代码

来源:互联网 发布:惠勒延迟实验知乎 编辑:程序博客网 时间:2024/06/04 19:42

自说明代码是代码可读性的最高水准。

  1. 你的类接口体现出某种一致的抽象吗?
  2. 你的类名有意义吗,能表明其中心意图吗?
  3. 你的类对于如何使用该类显而易见吗?
  4. 你的类能抽象到不需考虑其实现过程吗?能把类看成是黑盒吗?

子程序

  1. 你的每个子程序名都能准确地指示该子程序确切干些什么吗?
  2. 你的各子程序的任务明确吗?
  3. 若各子程序自成一体后更有用,你都将其各自独立出来了吗?
  4. 每个子程序的接口都清晰明了吗?

数据名

  1. 类型名描述有助于说明数据声明吗?
  2. 你的变量名有意义吗?
  3. 变量只用在其名字所代表的场合吗?
  4. 你的循环变量名能给出更多信息,而不是 i , j , k 之类的吗?
  5. 你用了名字有意义的枚举类型,而非临时拼凑的标识或者布尔变量吗?
  6. 用具名常量代替神秘数值或者字符串了吗?
  7. 你的命名规范能区分类型名,枚举类型,具名常量,局部变量,类变量以及全局变量吗?

数据组织

  1. 你根据编程清晰的需要,使用了额外变量来提高清晰度吗?
  2. 你对某变量的引用集中吗?
  3. 数据类型简化到了最低复杂度吗?
  4. 你是通过抽象访问子程序(抽象数据类型)来访问复杂数据吗?

控制

  1. 代码中的正常执行路径很清晰吗?
  2. 相关语句放在一起了吗?
  3. 相对独立的语句组打包为子程序了吗?
  4. 正常情况的处理位于 if 语句之后,而非在 else 子句中吗?
  5. 控制结构简单明了,以使复杂度最低吗?
  6. 每个循环完成且仅完成一个功能,是像定义良好的子程序那么做吗?
  7. 嵌套层次是最少吗?
  8. 逻辑表达式通过额外添加布尔变量,布尔函数和功能表简化了吗?

布局

  1. 程序的布局能体现出其逻辑结构吗?

设计

  1. 代码直截了当吗?是不是避免了自作聪明或新花样?
  2. 实现细节尽可能隐藏了吗?
  3. 程序尽可能采用问题领域的术语,而非按照计算机科学或者编程语言的术语编写吗?