IDEA 插件推荐 —— 让你写出好代码的神器!

门

概述

今天介绍的插件主要是围绕编码规范的。有追求的程序员,往往都有代码洁癖,要尽量减少代码的「坏味道」。

代码静态检查是有很多种类,例如圈复杂度、重复率等。业界提供了很多静态检查的插件来识别这些不合规的代码,帮助提高项目的质量。比较知名的一个产品是 SonarQube,它提供了一个「门禁」平台,集成了很多静态检查检查。下次有机会介绍一下该平台的搭建。

本文主要介绍 IDEA 中对于 Java 语言静态检查的好插件:

Alibaba Java Coding Guidelines

阿里巴巴 Java 编码指南插件支持。

首先说说阿里的 p3c 项目,它的 Github 主页地址是://github.com/alibaba/p3c 阿里之前开源过一份 Java 开发手册。手册从编程规约、异常日志、单元测试、MySQL 数据库、工程结构、设计规约等角度,介绍了阿里的 Java 开发规范,这个对于 Java 新手帮助挺大的,能够学到不少东西。有一些坑可能老司机也会翻车。

泰山版-图片来PDF 文档,侵删

开发人员 Coding 时,可能就忘记规范了,写出来的代码还是会有『坏味道』。这时候Alibaba Java Coding Guidelines 插件就派上用场了。它会根据上面的 Java 开发规范对你的代码进行检查,不符合规范的代码会有提示,并给出修改建议。阿里作为国内 Java 大厂,基于成千上万的工程师总结出来的踩坑经验,我相信给出的规范建议还是比较可靠的。

上个栗子:

  String str = "hello";
  for (int i = 0; i < 100; i++) {
      str = str + "world!";
  }

先不要往下看,试着分析一下这段代码哪里可以优化?

错误示例

其实,插键扫描的结果不仅有这个问题,还有『魔法数字』的问题。插件的用法,见下面的截图。

示例

除此以外,建议在 IDEA 进行代码提交时,勾选上它提供的检查项按钮,这样如果有不合规的代码进行提交,就会提醒你修改:

commit-checks-job

CheckStyle-IDEA

插件

项目主页://github.com/jshiell/checkstyle-idea

安装好之后,进入设置,勾选上你要选用的默认检查规范:

kl0L2s

大厂往往都有自己的语言规范,可以导入选用:

导入规则

右键菜单,选择 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 //findbugs.sourceforge.net/bugDescriptions.html

看懂结果

除了上面右键菜单启动检查之外,还可以在相应文件夹右键菜单中启动:

选中检查

针对检查的严格程度,其实是可以调节的,建议修改为 low,这样会尽可能的扫描出有潜在 Bug 的代码片段:

严格程度

总结

以上是目前工作中经常用到的静态代码检查插键,虽然不是用了它们就真的能写出好代码,但是这些工具的确能够让你能够在前人的肩膀上少踩一些坑。比如阿里的那个检查插键,你可以按照它的提示,对照着他们的 Java 开发手册查看,分析一下,为何他们会有如此的规约。高楼大厦不都是一砖一瓦砌成的嘛?小知识点的基础打扎实了,才能走得更高!

关注

由于国内网络问题,我提前将最新版的《阿里巴巴 Java 开发手册(泰山版).pdf》上传至云盘了,有需要的小伙伴公众号后台回复 泰山版 即可获得下载链接。

一言

上周的写的一篇文章分享到微信群里,群友有人指出来标题有错别字,真是有点尴尬!其实,我写文章也比较随意,也是最近才开始坚持每周至少输出一篇分享的。但想想既然写了,就要尽量保证质量。引以为戒,以后要认真点才行!

目前分享的内容主要是开发环境、效率工具等。自己一直对这方面的文章比较感兴趣,因此之前就有相关积累。今后希望能通过阅读带来一些读书总结的分享,也希望关注的同学后台多留言,给出你的建议,感谢~

生命不息,折腾不止!关注 「Coder魔法院」,祝你 Niubilitiy !

参考

Tags: