注释规约

(三) 注释规约 Rule 1.【推荐】基本的注释要求 完全没有注释的大段代码对于阅读者形同天书,注释是给自己看的,即使隔很长时间,也能清晰理解当时的思路;注释也是给继任者看的,使其能够快速接替自己的工作。 代码将被大量后续维护,注释如果对阅读者有帮助,不要吝啬在注释上花费的时间。(但也综合参见规则2,3) 第一、能够准确反应设计思想和代码逻辑;第二、能够描述业务含义,使别的程序员能够迅速了解到代码背后的信息。 除了特别清晰的类,都尽量编写类级别注释,说明类的目的和使用方法。 除了特别清晰的方法,对外提供的公有方法,抽象类的方法,同样尽量清晰的描述:期待的输入,对应的输出,错误的处理和返回码,以及可能抛出的异常。 Rule 2. 【推荐】通过更清晰的代码来避免注释 在编写注释前,考虑是否可以通过更好的命名,更清晰的代码结构,更好的函数和变量的抽取,让代码不言自明,此时不需要额外的注释。 Rule 3. 【推荐】删除空注释,无意义注释 《Clean Code》建议,如果没有想说的,不要留着IDE自动生成的,空的@param,@return,@throws 标记,让代码更简洁。 反例:方法名为put,加上两个有意义的变量名elephant和fridge,已经说明了这是在干什么,不需要任何额外的注释。 /** * put elephant into fridge. * * @param elephant * @param fridge * @return */ public void put(Elephant elephant, Fridge fridge); Rule 4.【推荐】避免创建人,创建日期,及更新日志的注释 代码后续还会有多人多次维护,而创建人可能会离职,让我们相信源码版本控制系统对更新记录能做得更好。 Rule 5. 【强制】代码修改的同时,注释也要进行相应的修改。尤其是参数、返回值、异常、核心逻辑等的修改 Rule 6. 【强制】类、类的公有成员、方法的注释必须使用Javadoc规范,使用/** xxx */格式,不得使用//xxx方式 正确的JavaDoc格式可以在IDE中,查看调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。 Rule 7. 【推荐】JavaDoc中不要为了HTML格式化而大量使用HTML标签和转义字符 如果为了Html版JavaDoc的显示,大量使用<p\> <pre\>这样的html标签,以及&lt &quot 这样的html转义字符,严重影响了直接阅读代码时的直观性,而直接阅读代码的几率其实比看Html版的JavaDoc大得多。 另外IDE对JavaDoc的格式化也要求<p>之类的标签来换行,可以配置让IDE不对JavaDoc的格式化。 Rule 8. 【推荐】注释不要为了英文而英文 如果没有国际化要求,中文能表达得更清晰时还是用中文。 Rule 9. 【推荐】TODO标记,清晰说明代办事项和处理人 清晰描述待修改的事项,保证过几个月后仍然能够清楚要做什么修改。 如果近期会处理的事项,写明处理人。如果远期的,写明提出人。 通过IDE和Sonar的标记扫描,经常清理此类标记,线上故障经常来源于这些标记但未处理的代码。 正例: //TODO:calvin use xxx to replace yyy. 反例: //TODO: refactor it Sonar: Track uses of "TODO" tags Sonar: Track uses of "FIXME" tags Rule 10. 【推荐】合理处理注释掉的代码 如果后续会恢复此段代码,在目标代码上方用///说明注释动机,而不是简单的注释掉代码。 如果很大概率不再使用,则直接删除(版本管理工具保存了历史代码)。 Sonar: Sections of code should not be "commented out"