第三十二章 自说明代码

外部文档

  • 单元开发文件夹;
    • 是一种非正式文档,其中包含了供开发者在变成期间使用的记录;
  • 详细设计文档;
    • 是低层次设计文档,描述在类层或子程序层的设计决定,曾考虑过其他方案,以及采用所选方案的理由。

编程风格文档

核对表:自说明代码

子程序

数据名

数据组织

控制

布局

设计

高效注释之关键

注释种类

  • 重复代码;
  • 解释代码;
  • 代码标记;
  • 概述代码;
  • 代码意图说明;
  • 传达代码无法表述的信息;

高效注释

  • 采用不会打断或抑制修改的注释风格;
  • 用伪代码编程法减少注释时间;
  • 将注释集成到你的开发风格中;
  • 性能不是逃避注释的好借口。

注释技术

注释单行

对于好的代码,很少需要注释单条语句。要注释一行代码,有两种可能的理由:

  1. 该行代码太复杂,因而需要解释;
  2. 改行语句出过错,你想记下这个错。

关于单行注释,下面有些指导原则:

  • 不要随意添加无关注释;

行尾注释及其问题

  • 不要对单行代码做行尾注释;
  • 不要对多行代码做行尾注释。

何时使用行尾注释

  • 行尾注释用于数据声明;
  • 避免用行尾注释存放维护注记;
  • 用行尾注释标记块尾。

注释代码段

  • 注释应表达代码的意图;
  • 代码本身应尽力做好说明;
  • 注释代码段时应注重“为何做”而不是“怎么做”;
  • 用注释为后面的内容做铺垫;
  • 让每个注释都有用;
  • 说明非常规做法;
  • 别用缩略语;
  • 将主次注释区分开;
  • 错误或语言环境独特点都要加注释;
  • 给出违背良好编程风格的理由;
  • 不要注释投机取巧的代码,应重写之。

注释数据声明

  • 注释数值单位;
  • 对数值的允许范围给出注释;
  • 注释编码含义;
  • 注释对输入数据的限制;
  • 注释“位标志”;
  • 将与变量有关的注释通过变量名关联起来;
  • 注释全局数据。

注释控制结构

  • 应在每个if、case、循环或者代码段前面加上注释;
  • 应在每个控制结构后加上注释;
  • 将循环结束处的注释堪称时代码太复杂的征兆。

注释子程序

  • 注释应靠近其说明的代码;
  • 在子程序上部用一两句话说明之;
  • 在声明参数处注释这些参数;
  • 利用诸如Javadoc之类的代码说明工具;
  • 分清输入和输出数据;
  • 注释接口假设;
  • 对子程序的局限性作注释;
  • 说明子程序的全局效果;
  • 记录所用算法的来源;
  • 用注释标记程序的各部分;

注释类、文件和程序

标注类的一般原则

  • 说明该类的设计方法;
  • 说明局限性、用法假设等;
  • 注释类接口;
  • 不要在类接口处说明实现细节。

注释文件的一般原则

  • 说明各文件的意图和内容;
  • 将姓名、电子邮件及电话号码放到注释块中;
  • 包含把版本控制标记;
  • 请在注释块中包含法律通告;
  • 将文件命名为与其内容相关的名字。

程序注释以书本为范例

检查表:好的注释技术

一般问题

语句和段落

数据声明

控制结构

子程序

文件、类和程序

要点

  • 该不该注释是个需要认真对待的问题。差劲的注释指挥浪费时间,帮倒忙;好的注释才有价值;
  • 源代码应当含有程序大部分的关键信息。只要程序依然在用,源代码比其他资料都能保持更新,故而将重要信息融入diamagnetic是很有用处的;
  • 好代码本身就是最好的说明。如果代码太糟,需要大量注释,应先试着改进代码,直至无需过多注释为止;
  • 注释应该说出代码无法说出的东西——例如概述或用意等信息;
  • 有的注释风格需要许多重复性劳动,应舍弃之,改用易于维护的注释风格。
posted @ 2019-10-02 15:25  Liam-Ji  阅读(258)  评论(0编辑  收藏  举报