IDEA 插件推荐 —— 让你写出好代码的神器!
概述
今天介绍的插件主要是围绕编码规范的。有追求的程序员,往往都有代码洁癖,要尽量减少代码的「坏味道」。
代码静态检查是有很多种类,例如圈复杂度、重复率等。业界提供了很多静态检查的插件来识别这些不合规的代码,帮助提高项目的质量。比较知名的一个产品是 SonarQube,它提供了一个「门禁」平台,集成了很多静态检查检查。下次有机会介绍一下该平台的搭建。
本文主要介绍 IDEA 中对于 Java 语言静态检查的好插件:
- Alibaba Java Coding Guidelines 阿里基于他们 Java 规范提供的插件
- CheckStyle-IDEA 检查代码的格式是否符合规范
- FindBugs-IDEA 检查代码是否有常见的一些 Bug
Alibaba Java Coding Guidelines
阿里巴巴 Java 编码指南插件支持。
首先说说阿里的 p3c 项目,它的 Github 主页地址是:https://github.com/alibaba/p3c 阿里之前开源过一份 Java 开发手册。手册从编程规约、异常日志、单元测试、MySQL 数据库、工程结构、设计规约等角度,介绍了阿里的 Java 开发规范,这个对于 Java 新手帮助挺大的,能够学到不少东西。有一些坑可能老司机也会翻车。
开发人员 Coding 时,可能就忘记规范了,写出来的代码还是会有『坏味道』。这时候Alibaba Java Coding Guidelines
插件就派上用场了。它会根据上面的 Java 开发规范对你的代码进行检查,不符合规范的代码会有提示,并给出修改建议。阿里作为国内 Java 大厂,基于成千上万的工程师总结出来的踩坑经验,我相信给出的规范建议还是比较可靠的。
上个栗子:
String str = "hello";
for (int i = 0; i < 100; i++) {
str = str + "world!";
}
先不要往下看,试着分析一下这段代码哪里可以优化?
其实,插键扫描的结果不仅有这个问题,还有『魔法数字』的问题。插件的用法,见下面的截图。
除此以外,建议在 IDEA 进行代码提交时,勾选上它提供的检查项按钮,这样如果有不合规的代码进行提交,就会提醒你修改:
CheckStyle-IDEA
项目主页:https://github.com/jshiell/checkstyle-idea
安装好之后,进入设置,勾选上你要选用的默认检查规范:
大厂往往都有自己的语言规范,可以导入选用:
右键菜单,选择 Check Current File
即可检查当前文件是否符合编码规范:
检查结果:
如果不符合规范的写法有点多,整改起来就会很痛苦了,这时候该怎么办?有一个功能叫格式化代码(Reformat Code
),快捷键是:
- Mac:
Command+Option+L
- Win:
Ctrl+Shift+L
如果想按照你指定的规则进行格式化,可以按照如下方式进行自定义:
FindBugs-IDEA
FindBugs 是一款老牌 Java 静态检查插件了。它的功能和阿里 p3c 那个插件很像,只不过它历史悠久、国际化一点。它同样的可以扫描代码,发现一些可能会引入 Bug 的代码段,给出参考建议。
启动 FindBugs 的方式,右键菜单中,Findbugs 提供了好几个选项:
Analyze Current File
:检查当前文件Analyze Class uner Cursor
:检查光标处的类Analyze Package Files
:检查包文件Analyze Modul Files
:检查 Module 文件Analyze Project Files
:检查项目文件Analyze Scope Files
:检查指定范围内的文件Analyze All Modified Files
:检查所有修改过的文件Analyze changelist files
:检查变更列表中的文件
检查结果:
检查结果分为如下类别:
Bad practice
:不好的做法,代码违反了公认的最佳实践标准;Malicious code vulnerbility
:恶意的代码漏洞;Correctness
:可能不正确,比如错误的强制类型转换;Performance
:潜在的性能问题;Security
:安全性;Dodgy code
:糟糕的代码,FindBugs团队认为该类型下的问题代码导 Bug 的可能性很高;Experimental
:实验;Multithreaded correctness
:关注于同步和多线程问题;Internationalization
:国际化
扫描出来的结果怎么看懂,官网有专门的一页介绍 FindBugs Bug Description http://findbugs.sourceforge.net/bugDescriptions.html
除了上面右键菜单启动检查之外,还可以在相应文件夹右键菜单中启动:
针对检查的严格程度,其实是可以调节的,建议修改为 low
,这样会尽可能的扫描出有潜在 Bug 的代码片段:
总结
以上是目前工作中经常用到的静态代码检查插键,虽然不是用了它们就真的能写出好代码,但是这些工具的确能够让你能够在前人的肩膀上少踩一些坑。比如阿里的那个检查插键,你可以按照它的提示,对照着他们的 Java 开发手册查看,分析一下,为何他们会有如此的规约。高楼大厦不都是一砖一瓦砌成的嘛?小知识点的基础打扎实了,才能走得更高!
由于国内网络问题,我提前将最新版的《阿里巴巴 Java 开发手册(泰山版).pdf》上传至云盘了,有需要的小伙伴公众号后台回复
泰山版
即可获得下载链接。
一言
上周的写的一篇文章分享到微信群里,群友有人指出来标题有错别字,真是有点尴尬!其实,我写文章也比较随意,也是最近才开始坚持每周至少输出一篇分享的。但想想既然写了,就要尽量保证质量。引以为戒,以后要认真点才行!
目前分享的内容主要是开发环境、效率工具等。自己一直对这方面的文章比较感兴趣,因此之前就有相关积累。今后希望能通过阅读带来一些读书总结的分享,也希望关注的同学后台多留言,给出你的建议,感谢~
生命不息,折腾不止!关注 「Coder魔法院」,祝你 Niubilitiy !
参考
- 代码缺陷扫描神器——FindBugs:https://juejin.im/entry/591ad01ba22b9d005833903e