注释

作者: 小焲 | 来源:发表于2017-08-27 00:49 被阅读0次

“别给糟糕的代码加注释——重新写吧。”
                          ——Brian W.Kernighan 与 P.J.Plaugher

注释的恰当用法是弥补我们在用代码表达意图时遭遇的失败。所以注释并不是一种好东西,当我们要写注释时,应想办法找找能不能翻盘,从而使我们不通过注释就能表达清晰意图。

注释不能美化糟糕代码

我们写注释的动机之一是糟糕代码的存在。想通过注释来使之表意清晰。
但是请记住,带有少量注释的整洁而有表达力的代码,要比代有大量注释的零碎而复杂的代码像样的多。所以与其花时间为糟糕的代码写注释。不如花时间将它重构。

用代码来阐述

// check to see if the employee is eligible for full benefits
if ( (employee.flags & HOURLY_FLAG) && (employee.age > 65) )
//VS
if (employee.isEligibleForFullBenefits())

我们看上面两个指令:一个通过注释来表达意图,而另一个创建了一个函数,但表达了相同的意思,而我们只需思考几秒

好注释

有些注释时好的,也是有利的。下面是一些比较值得写的注释。但是请记住,真正好的注释时想办法不去写的注释。

  1. 法律信息
    公司代码规范要求编写的与法律相关的注释。
    如果可以,这种注释应指向一份标准许或其他外部文档,而不是把条款放在注释中
  2. 提供信息的注释
    有时用注释来提供基本信息也有其作用
  3. 对意图的解释
    注释不仅提供了有关实现的有用信息,而且提供了某个决定后面的意图。
  4. 阐释
    注释把某些晦涩难明的参数或返回值的意义翻译为某种可读形式。
  5. 警示
    用于警告别的程序员会出现某种后果的注释。
  6. TODO注释
    TODO是一种程序员认为应该做,但由于某些原因目前还未做的工作。
    TODO要定期查看,删除不需要的
  7. 放大
    注释可以用来放大某种看起来不合理之物的重要性。
  8. 公共API的Javadoc

坏注释

通常,坏注释都是糟糕代码的支撑或借口,或者对错误决策的修正。

  1. 喃喃自语
    只是觉得应该添加或者过程需要就加注释。
  2. 多余的注释
    不要让读注释的时间比读代码的时间还长。
  3. 误导性注释
    虽然初衷是好的,但是写的不够精确地注释。
  4. 循规式注释
    为函数或者变量加注释是愚蠢和可笑的。
  5. 日志式注释
    记录每次修改的日志
  6. 废话注释
    顾名思义,纯粹在讲废话的注释
  7. 可怕的废话
    不知道干什么,只是随意的复制粘贴
  8. 能用函数名或变量时就别用注释
  9. 位置标记
    用于标记某个特殊位置
  10. 括号后面的注释
    适用于深度嵌套结构的长函数,不适用于短小、封装的函数。
  11. 归属与署名
    源代码控制系统非常善于记住是谁在何时添加了什么。所以不比较自己增加签名
    12.注释掉的代码
    没用的代码直接删掉,而不是注释。不然别人都不知道这段代码到底有没有用。
    13.HTML注释
  12. 非本地信息
  13. 信息过多
  14. 不明显的联系
  15. 函数头
  16. 非公共代码中的javadoc

相关文章

  • 奇葩注释整理

    注释 1 注释 2 注释3 注释4 注释5 注释6 注释7 注释8 注释9 注释10 注释11 注释12 注释13...

  • complexheatmap学习——注释

    单个注释 使用注释函数进行注释 空白注释 分组注释 点的注释 线条注释 柱状图注释 箱式图注释 条形图注释 密度图...

  • 2017-05-10

    单行注释、多行注释与文档注释的合理使用 单行注释、多行注释与文档注释的合理使用 单行注释:// 注释内容 多行注释...

  • Java语言基础

    代码注释 单行注释在注释前加上"//" 多行注释在注释前使用/*在注释后使用*/ 文档注释注释前后/***/ 变量...

  • iOS 注释规范

    iOS注释规范&&提高注释效率 iOS注释主要分为以下几种:属性注释、方法集注释、方法注释、普通注释(单行注释)。...

  • Java基础(1)

    注释 单行注释 //注释内容 多行注释/*注释内容 */ 文档注释/**注释内容 */ 注释在编程中是一个好习惯...

  • Java基础

    注释 单行注释 //注释内容 多行注释/*注释内容 */ 文档注释/**注释内容 */ 注释在编程中是一个好习惯...

  • iOS开发:代码规范

    一、注释规范 iOS注释主要分为以下几种:属性注释、方法集注释、方法注释、普通注释(单行注释)、类注释。 1、属性...

  • Java(第一周)

    一、注释 1.单行注释://注释内容2.多行注释:/注释内容 /3.文档注释:/注释内容 */ =========...

  • 代码注释

    注释形式单行注释,多行注释,方法注释,方法集注释(配合代码块实现快速注释) 1. 单行注释 使用 // 注释单行代...

网友评论

      本文标题:注释

      本文链接:https://www.haomeiwen.com/subject/hrzvdxtx.html