注释规约与其它


其它相关文章
Java 编码规范1(编程规约-命名风格)
Java 编码规范2(编程规约-常量定义)
Java 编码规范3(编程规约-代码格式)
Java 编码规范4(编程规约-OOP规约)
Java 编码规范5(编程规约-集合处理)
Java 编码规范6(编程规约-并发处理)
Java 编码规范7(编程规约-控制语句)
Java 编码规范8(编程规约-注释规约与其它)
Java 编码规范9(异常日志)
Java 编码规范10(单元测试)
Java 编码规范11(安全规约)
Java 编码规范12(MySQL-建表规约)
Java 编码规范13(MySQL-索引规约)
Java 编码规范14(MySQL-SQL语句与ORM映射)
Java 编码规范15(工程结构)


  1. [强制] 类属性类方法的注释必须使用Javadoc规范,使用/**内容*/格式,不得使用// xxx方式。

    • 说明:在IDE编辑窗口中,Javadoc方式会提示相关注释,生成Javadoc可以正确输出相应注释;在IDE中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。
  2. [强制] 所有的抽象方法(包括接口中的方法)必须要用Javadoc注释,除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。

    • 说明:对子类的实现要求,或者调用注意事项,请一并说明。
  3. [强制] 所有的类都必须添加创建者和创建日期。

  4. [强制] 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释,注意与代码对齐。

  5. [强制] 所有的枚举类型字段必须要有注释,说明每个数据项的用途。

  6. [强制] 与其“半吊子”英文来注释,不如用中文注释把问题说清楚。专有名词与关键字保持英文原文即可。

    • 反例:“TCP连接超时”解释成“传输控制协议连接超时”,理解反而费脑筋。
  7. [推荐] 代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、异常、核心逻辑等的修改。

    • 说明:代码与注释更新不同步,就像路网与导航软件更新不同步一样,如果导航软件严重滞后,就失去了导航的意义。
  8. [参考] 谨慎注释掉代码。在上方详细说明,而不是简单地注释掉。如果无用,则删除。

    • 说明:代码被注释掉有两种可能性:

      • 后续会恢复此段代码逻辑。
      • 永久不用。前者如果没有备注信息,难以知晓注释动机。后者建议直接删掉(代码仓库保存了历史代码)。
  9. [参考] 对于注释的要求:

    1. 能够准确反应设计思想和代码逻辑;
    2. 能够描述业务含义,使别的程序员能够迅速了解到代码背后的信息。
      • 完全没有注释的大段代码对于阅读者形同天书,注释是给自己看的,即使隔很长时间,也能清晰理解当时的思路
      • 注释也是给继任者看的,使其能够快速接替自己的工作。
  10. [参考] 好的命名、代码结构是自解释的,注释力求精简准确、表达到位。避免出现注释的一个极端:过多过滥的注释,代码的逻辑一旦修改,修改注释是相当大的负担。

    • 反例:

      // put elephant into fridge
      put(elephant, fridge);
      • 方法名put,加上两个有意义的变量名elephant和fridge,已经说明了这是在干什么,语义清晰的代码不需要额外的注释。
  11. [参考] 特殊注释标记,请注明标记人与标记时间。注意及时处理这些标记,通过标记扫描,经常清理此类标记。线上故障有时候就是来源于这些标记处的代码。

    • 待办事宜(TODO):( 标记人,标记时间,[预计处理时间])

      • 表示需要实现,但目前还未实现的功能。
      • 这实际上是一个Javadoc的标签,目前的Javadoc还没有实现,但已经被广泛使用。只能应用于类,接口和方法(因为它是一个Javadoc标签)。
    • 错误,不能工作(FIXME):(标记人,标记时间,[预计处理时间])
      • 在注释中用FIXME标记某代码是错误的,而且不能工作,需要及时纠正的情况。
  12. [强制] 在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。

    • 不要在方法体内定义:Pattern pattern = Pattern.compile(规则);
  13. [强制] velocity调用POJO类的属性时,建议直接使用属性名取值即可,模板引擎会自动按规范调用POJO的getXxx(),如果是boolean基本数据类型变量(boolean命名不需要加is前缀),会自动调用isXxx()方法。

    • 注意如果是Boolean包装类对象,优先调用getXxx()的方法。
  14. [强制] 后台输送给页面的变量必须加$!{var}——中间的感叹号。

    • 如果var=null或者不存在,那么${var}会直接显示在页面上。
  15. [强制] 注意 Math.random() 这个方法返回是double类型,注意取值的范围 0≤x<1(能够取到零值,注意除零异常)。

    • 如果想获取整数类型的随机数,不要将x放大10的若干倍然后取整,直接使用Random对象的nextInt或者`nextLong方法。
  16. [强制] 获取当前毫秒数System.currentTimeMillis(); , 而不是new Date().getTime();

    • 如果想获取更加精确的纳秒级时间值,使用ystem.nanoTime()的方式。在JDK8中,针对统计时间等场景,推荐使用Instant类。
  17. [推荐] 不要在视图模板中加入任何复杂的逻辑。

    • 根据MVC理论,视图的职责是展示,不要抢模型和控制器的活。
  18. [推荐] 任何数据结构的构造或初始化,都应指定大小,避免数据结构无限增长吃光内存。

  19. [推荐] 及时清理不再使用的代码段或配置信息。

    • 说明:对于垃圾代码或过时配置,坚决清理干净,避免程序过度臃肿,代码冗余。
    • 正例:对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///)来说明注释掉代码的理由。

Java 编码规范8(编程规约-注释规约与其它)相关推荐

  1. Java 编码规范1(编程规约-命名风格)

    编程规约-命名风格 其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-O ...

  2. Java基础学习总结(92)——Java编码规范之排版、注释及命名

    为使开发人员养成良好的开发习惯,编写可读性强.易维护的程序,结合以往资料,现整理Java编码规范,将之作为开发人员的参照依据. 一.排版 1.相对独立的程序块之间必须加空行

  3. Google 出品的 Java 编码规范和编程指南!

    这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格. 与其它的编程风格指南一样,这里所讨论的不仅仅是 ...

  4. Java 编码规范15(工程结构)

    工程结构 其它相关文章 Java 编码规范1(编程规约-命名风格) Java 编码规范2(编程规约-常量定义) Java 编码规范3(编程规约-代码格式) Java 编码规范4(编程规约-OOP规约) ...

  5. 阿里巴巴对Java编程【注释规约】的规约

    转载自 阿里巴巴对Java编程[注释规约]的规约 注释规约 1. [强制]类.类属性.类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用//  xxx 方式. 说明:在 ID ...

  6. 公司让我编写一套自己的【Java 编码规范】作为员工季度考核标准?!参照Alibaba

    目录 一.编码规范 (一)命名风格 (二)常量定义 (三)代码格式 (四)OOP规范 (五)集合处理 (六)并发处理 (七)控制语句 (八)注释规范 (九)其它 二.SVN操作规范 三.异常日志 (一 ...

  7. Java编码规范相关-开发手册-IDEA插件-P3C-sonarLint-代码格式化

    编码规范 一.大厂的规范手册 1.阿里巴巴<Java开发手册(嵩山版)> 广为流传的手册,我基本每个开发机都会放一本,用来做参考,想起来就看一下,反思自己之前的瑕疵,完善和修正自己的编码习 ...

  8. java编码ppt_[2018年最新整理]Java编码规范.ppt

    [2018年最新整理]Java编码规范 制定编码规范的最主要的目的是为了对产出代码的长期维护.通常负责 维护代码的人大多都不是开发者本人,如果有一个统一的代码格式以及 说明就可以减少混淆提高理解速度. ...

  9. chinapay java_Chinapay应用技术部Java编码规范.docx

    Chinapay应用技术部Java编码规范 PAGE \* MERGEFORMAT 7 Chinapay技术部Java编码规范 (Version: 0.14) 版本变迁记录: 版本号 修改人 时间 修 ...

  10. Java编码规范V1.0

     Java编码规范V1.0 1 代码总体原则 1. 清晰第一 清晰性是易于维护.易于重构的程序必需具备的特征.代码首先 是给人读的,其次才给机器用来执行. 目前软件维护期成本占整个生命周期成本的 40 ...

最新文章

  1. 专家点评Nat Micro | 朱永群组首次发现特异地切割线性泛素链的全新去泛素化酶...
  2. ie 和谷歌浏览器在display的边框显示不一样的解决办法
  3. opencl track资料整理
  4. python将大于输出列表_python找出列表中大于某个阈值的数据段示例
  5. activeMQ高并发发送消息异常解决方法
  6. VS2005混合编译ARM汇编代码
  7. Selenium 屏幕截图
  8. 关系型数据库知识小结
  9. Apache RocketMQ 发布 v4.4.0,新添权限控制和消息轨迹特性
  10. C# socket编程TcpClient与TcpListener UdpClient
  11. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day26】—— Spring框架3
  12. 断点续传 scp rsync
  13. MySQL 分组后取最新记录
  14. erlang httpc
  15. 我的世界服务器清垃圾文件,我的世界:五大处理“垃圾”方法,我选择懒人方法,你会如何选?...
  16. 利用百度云流式计算进行大规模设备监控
  17. SQL开窗函数(窗口函数)详解
  18. JDBC模拟SQL注入和避免SQL注入
  19. 动易html在线编辑器 漏洞,动易网站管理系统vote.asp页面存在SQL注入漏洞
  20. 胜不骄 败不馁 心胸似大海宽广

热门文章

  1. matlab 2ask原理,基于Matlab对2ASK调制解调及其仿真设计
  2. 小学生c语言编程入门教程_学生编程语言
  3. ssm三个框架分别用来干什么_SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)
  4. MySQL工具【mysql 客户端连接工具】
  5. 三创赛优秀作品_创新藏在每一个细节里———记第三届3S杯全国大学生物联网技术与应用“三创”大赛一等奖获奖作品...
  6. 全网年份最全-中国环境统计年鉴 1998-2021年
  7. 笑哭了!日本网友求助如何卸载360浏览器,过程堪比“ 拆弹 ”...
  8. 苹果6s强制删除id锁_苹果ID锁安全神话破灭!2分钟就能解锁
  9. 关于另类BT下载的想法
  10. 精心整理Node.js入门---原理篇