最近在和团队的新同事一起协同开发的时候,发现有些代码写的真的不尽如人意,很多常规规范并没有遵循,在和同事沟通后,有感而发,小小总结一下代码规范,毕竟无规矩不成方圆,开发规范从小开始,养成良好的习惯。如果在公司开发过程中没有相应的强制代码规范工具,需要自我约束的同学,给大家推荐个好用的插件可以辅助自己规范编程。
一、Alibaba Java Coding Guidelines 在idea上安装使用教程
经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C是世界知名的反潜机,专门对付水下潜水艇,寓意是扫描出所有潜在的代码隐患。这个项目组是阿里巴巴开发爱好者自发组织形成的虚拟项目组,把《阿里巴巴Java开发规约》强制条目转化成自动化插件,并实现部分的自动编程。
阿里技术公众号于今年的2月9日首次公布《阿里巴巴Java开发规约》,瞬间引起全民代码规范的热潮,上月底又发布了PDF的终极版,大家踊跃留言,期待配套的静态扫描工具开放出来。
为了让开发者更加方便、快速将规范推动并实行起来,阿里巴巴基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,我们还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则实现了批量一键修复的功能,如此爽心悦目的功能是不是很值得拥有?提升代码质量,提高团队研发效能,插件将会一路同行。
插件下载地址:GitHub - alibaba/p3c: Alibaba Java Coding Guidelines pmd implements and IDE plugin
好了废话不多说了,如何安装IDEA插件?
你只需打开 Settings >> Plugins >> Browse repositories 输入 Alibaba 搜索,看到对应插件后即可安装。
如果是mac 则Preferences >> Plugins >> Browse repositories 输入 Alibaba 搜索,看到对应插件后即可安装。
安装后重启即可
扫描完的效果如下,挺好用的,当你接手一个新的项目,如果要做代码规约的话,用这个插件可以说是不二之选:
二、开发规范内容
包括Java规范插件的作用和使用方法,Java编码规范的多个方面,以及Java异常规范的处理
1.Java开发规范
2.常见的规范内容
其实在写代码的时候如果你前期开发不注意就会出现不规范的现象,所以开发规范从小开始,养成良好的习惯。
接下来看看不规范的集中典型:
2.1 finally里面不能写return
不能在finally块中使用return,finally块中的return返回后方法结束执行,不会再执行try块中的return语句。
像这样:
具体为什么可以看看这篇文章:https://blog.csdn.net/genffe880915/article/details/144158850
2.2 所有的覆写方法,必须加@Override注解。
重写方法的时候记得加这个
2.3 '" "' 应该作为方法 "equals()"的调用方,而不是参数
Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。
2.4 java中【HashMap】初始化时,尽量指定初始值大小
HashMap使用HashMap(int initialCapacity)初始化
initialCapacity = (需要存储的元素个数 / 负载因子) + 1。注意负载因子(即loader factor)默认为0.75, 如果暂时无法确定初始值大小,请设置为16(即默认值)。
Map<String, String> map =
new
HashMap<String, String>(
16
);
https://blog.csdn.net/u011429167/article/details/129719363
https://www.cnblogs.com/interdrp/p/16227828.html
2.5 常量命名应全部大写并以下划线分隔
常量命名应该全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长
2.6 枚举类型字段注释
所有的枚举类型字段必须要有注释,说明每个数据项的用途。
2.7 不使用魔法值
不允许任何魔法值(即未经定义的常量)直接出现在代码中
2.8 方法长度限制
单个方法的总行数不超过80行
2.9 及时清理不再使用的代码段或配置信息
2.10 注释的使用
- 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释。注意与代码对齐。
- 不要使用行尾注释
- 所有的类都必须添加创建者信息。
- 所有的抽象方法(包括接口中的方法)必须要用javadoc注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。
- 类、类属性、类方法的注释必须使用javadoc规范,使用/**内容*/格式,不得使用//xxx方式和/*xxx*/方式。
2.11 驼峰命名
类名使用UpperCamelCase风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO / BO / DTO / VO / DAO
先写这么多,后面有了继续更新。。。