第五章 该写什么样的注释
关键思想:注释的目的是尽量帮助读者了解得和作者一样多。
当你写代码时,你的脑海里会有很多有价值的信息。当其他人阅读你的代码时,这些信息已经丢失----他们所见的只是眼前的代码。要知道什么时候应该把你脑海中的信息记录下来。
1.什么不需要注释
关键思想:不要为那些从代码本身就能快速推断的事实写注释。
不要为了注释而注释
不要给不好的名字加注释--应该把名字改好 好代码>坏代码+好注释
2.记录你的思想
对于为什么代码写成这样而不是那样的内在理由("指导性批注")
为代码中的瑕疵写注释
标记 | 通常意义 |
TODO: | 我还没有处理的事情 |
FIXME: | 已知的无法运行的代码 |
HACK: | 对于一个问题不得不采用的比较粗糙的解决方案 |
XXX: | 危险!这里有重要的问题。 |
给常量加注释--常量背后的故事,为什么是这个值
3.站在读者的立场思考
预料到代码中哪些部分会让读者说:“啊?”并且给他们加上注释;
为普通读者意料之外的行为加上注释;
在文件/类的级别上使用“全局观”注释来解释所有的部分是如何一起工作的;
用注释来总结代码块,使读者不致迷失在细节中。
克服“作者心理阻滞”
1.不管心里想什么,先把它写下来;
2.读一下这段注释,看看有没有什么地方可以改进;
3.不断改进。
第六章 写出言简意赅的注释
关键思想:注释应当有很高的信息/空间率。
如何把更多的信息装入更小的空间:
当像“it”和“this”这样的代词可能指代多个事物时,避免使用它们;润色粗糙的句子;让注释保持紧凑;
尽量精确地描述函数的行为;
在注释中用精心挑选的输入/输出例子进行说明;
声明代码的高层次意图,而非明显的细节;
用嵌入的注释(如Function(/*arg=*/...))来解释难以理解的函数参数;
用含义丰富的词来使注释简洁。