<代码整洁之道>第四章 注释 笔记

本章主要介绍的是如何正确的使用注释,并写出高质量高标准的注释。但是作者开篇之初的“注释总是一种失败”的观点我是不敢苟同的,但本着求同存异以及学习的心态,本章中好多观点还是值得我去学习和借鉴的。

作者开篇指出,“注释总是一种失败”。这句话,其实很容易让人误解,但结合作者上下文的内容,你又会发现该观点也不无道理。实际上作者并不反对注释,作者只是反对滥用注释。为什么这么说。主要有以下几点:

  1. 给糟糕的代码添加注释,不如写出整洁而有力的代码。
  2. 添加注释没有统一的规范和标准,被开发人员滥用。
  3. 添加的注释往往并不准确,表意并不清楚。
  4. 后期开发人员往往只维护代码,而忽略注释的同步维护与更新,导致注释最后词不达意,甚至到后期与被注释的代码所表达的意思完全是南辕北辙。
  5. 整洁而高质量的代码,如果做到了所见即所得,并不需要太复杂或者过于详细的注释。
  6. 开发人员往往给“烂”代码,添加注释,以来矫正,而忽略的代码的高质量才是根本。
  7. 过多的注释,尤其是大部分注释,均被滥用,不规范、词不达意、过期、多余、冗余、具有误导性、存在开发人员个人特质,造成代码繁琐混乱、质量低下,也完全违背了代码整洁的原则。

个人认为,代码是需求另一种形式的阐述。如果说被编译后的代码(往往被编译成客户端,网站,PC客户端,手机APP)是面向客户的,供客户使用;那么未被编译的代码(通常指项目源码)就是面对开发人员的,供开发人员阅读和使用。客户在使用软件的时候,往往需要说明书或者相关引导;那么开发人员,在使用源码的时候同样也需要说明书或者相关引导。那么开发人员究竟需要什么样的说明书或引导呢,在我看来包含两点:详细设计文档和代码注释。详细设计不在此讨论范围内,暂且不提。所以,在我看来代码注释是必不可少的。注释不仅能够让开发人员,尤其是后来开发人员(可能是新人,也可能是其他不熟悉的内部开发人员),快速了解该部分代码的功能,还能在一定程度上了解需求,尤其是在这个提倡敏捷开发、小步快跑的互联网年代,在一定的程度上能够提升开发人员的开发效率,提升代码可读性,也能够降低后来人熟悉代码的要求,加快后来人熟悉业务和代码的效率,帮助后来人尽快进入到开发阶段,进而降低开发成本,提高团队整体开发效率,于团队、于公司来讲都是有益的。我们真正要面对的是如何使用好注释。下面是结合本章内容以及个人经历的几点看法:

  1. 统一代码注释规范,统一代码注释风格。
  2. 注释要精简,表意要清楚,不可冗余,不可啰嗦,更不要带有个人色彩,要与代码表意保持一致。
  3. 注释要注意词意语意,不可二义性,避免产生歧义,造成误导。
  4. 注释要伴随代码的更新和维护,同步得到更新和维护。
  5. 当发现需要大量注释,才能解释清代码的时候,应停止添加注释,而是回头整理和调整代码逻辑,对代码进行合理有效的细化和拆分。
  6. 通过正确而恰当的命名,尽量让变量名、参数名、函数名、类名、包名等做到命名所见即所得,降低注释的复杂度,甚至可以因此而省略注释。
  7. 注释尽量围绕,是什么,做什么,什么做什么以来得到什么,为了防止什么要(不要)做什么,要做到简洁性,概括性。
  8. 删除不必要的注释,冗余(尤其废话特别多的)注释,修正错误以及误导性注释,简洁和调整必要注释。
  9. 对于开发阶段的,调试注释,日志注释,FIX\TODO注释,诸如类似的注释要及时清理和删除。
  10. 过期的代码和注释也要及时或者定期删除。
  11. 建议暴露给外部的公共属性或者方法一定要添加注释,特别是框架类的代码库。内部私有不外漏的代码,要根据相关逻辑复杂度,酌情添加注释,但是一定要精简,具备概括性,这里特别建议回头看看第四点。
  12. 对于业务逻辑复杂的部分代码,添加简洁的概括性的注释的同时,可以关联相关需求文档或者详细设计文档。
  13. 编写功能模块相关开发文档,尤其是特别复杂的功能模块,该文档至少要包括设计思路,实现方案,注意事项,具体细节可根据具体情况酌情介绍。相当于将该功能模块的注释更详细化细节化,然后在代码模块中关联该开发文档。

可加群一起交流共同学习:801216530。

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

推荐阅读更多精彩内容

  • 代码整洁之道 Clean Code 第一章 整洁代码 代码的重要性我们永远抛不掉代码,因为代码呈现了需求的细节。在...
    Pengzh1阅读 1,184评论 0 1
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,813评论 0 5
  • 前言 这本书的封面写道,“细节之中自有天地,整洁成就卓越代码”,便是本书的精髓所在。对于软件开发,设计不仅存在于界...
    含笑小基石阅读 474评论 0 0
  • 一、整洁代码 A.混乱的代价 1.有些团队在项目初期进展迅速,但有那么一两年的时间却慢去蜗行。对代码的每次修改都影...
    ZyBlog阅读 2,012评论 0 2
  • 整洁代码 Leblanc : Later equals never.(勒布朗法则:稍后等于永不) 对代码的每次修改...
    foever_f1eb阅读 785评论 0 0