zoukankan      html  css  js  c++  java
  • IDEA 插件推荐 —— 让你写出好代码的神器!

    摘自:https://www.cnblogs.com/michael-xiang/p/13019603.html

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

     

    门

    概述#

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

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

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

    Alibaba Java Coding Guidelines#

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

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

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

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

    上个栗子:

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

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

    错误示例

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

    示例

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

    commit-checks-job

    CheckStyle-IDEA#

    插件

    项目主页:https://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 http://findbugs.sourceforge.net/bugDescriptions.html

    看懂结果

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

    选中检查

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

    严格程度

    总结#

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

    关注

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

    一言#

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

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

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

    参考#

    作者: Michael翔

    出处:https://www.cnblogs.com/michael-xiang/p/13019603.html

    版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。

     
    分类: Tools-Dev
     
  • 相关阅读:
    164-268. 丢失的数字
    163-20. 有效的括号
    Sword 30
    Sword 29
    Sword 27
    Sword 25
    Sword 24
    Sword 22
    Sword 21
    Sword 18
  • 原文地址:https://www.cnblogs.com/xichji/p/13023480.html
Copyright © 2011-2022 走看看