注释

“别给糟糕的代码加注释——重新写吧。”
                          ——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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容