zoukankan      html  css  js  c++  java
  • 静态代码检查工具简介

    静态代码检查工具简介

    在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。传统的代码复审、同行评审,通过人工方式来检查缺陷仍然是一件耗时耗力的事情。Java 静态代码分析(static code analysis)工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题。

    下面简要介绍几款可用于Java静态代码分析的工具。介绍的顺序与工具所占市场份额无关。

    1  阿里巴巴Java开发代码检测IDE插件

    2017年10月,阿里推出了《阿里巴巴Java开发手册(终极版)》,并在持续更新中。该开发手册以Java开发者为中心视角,从编程规约、异常日志、单元测试、安全规约、工程结构、MySQL数据库六个维度,分别给出了相应的开发要求。相应地,阿里在10月份的杭州云栖大会上正式发布了Java代码检测IDE插件(支持与Eclipse、MyEclipse等工具的集成),供大家免费下载使用。个人感觉,阿里的插件对于MyEclipse的支持不够友好,需要倒腾很久,不过最终还是成功了。

    2  FindBugs

    官网地址:http://findbugs.sourceforge.net/

    FindBugs 是由马里兰大学提供的一款开源 Java 静态代码分析工具。FindBugs 通过检查类文件或 JAR 文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析。FindBugs 既提供可视化 UI 界面,同时也可以作为 Eclipse/MyEclipse 插件使用。Findbugs规则比较简单实用,不注重样式与格式,属于轻量级的工具。

    个人感觉,FingBugs对于MyEclipse的支持也不够友好,倒腾了很久,试验了很多方法,但在MyEclipse中还是未能安装成功,只能通过命令行模式来运行,极其不爽。虽然这个工具目前在业界的使用范围很广,从csdn在2016年所做的调查问卷来看,FindBugs的使用占比57%,但是,还是觉得现实很不美好。

    3  Checkstyle

    官网地址:http://checkstyle.sourceforge.net/

    Checkstyle 是 SourceForge 的开源项目,通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范。Checkstyle 提供了支持大多数常见 IDE 的插件,例如Eclipse。Checkstyle 对代码进行编码风格检查,并将检查结果显示在 Problems 视图中,开发人员可通过在 Problems 视图中查看错误或警告详细信息。有关Checkstyle的使用可阅读:代码规范工具-Checkstyle使用手册

    4  PMD

    官网地址:https://pmd.github.io/

    PMD 是由 DARPA 在 SourceForge 上发布的开源 Java 代码静态分析工具。通过其内置的编码规则对 Java 代码进行静态检查,主要包括对潜在的 bug,未使用的代码,重复的代码,循环体创建新对象等问题的检验。PMD 提供了和多种 Java IDE 的集成,例如 Eclipse,IDEA,NetBean 等。

    5  Sonar

    Sonar是一个代码质量管理开放平台,能对不同规模和种类的工程进行代码质量管理,可以集成不同类型的工具一起工作。Sonar主要用于代码质量管理。该工具目前在业界的使用范围很广,从csdn在2016年所做的调查问卷来看,Sonar的使用占比41%。有关Sonar的使用可阅读:使用Sonar进行代码质量管理

    6  CodeAnalyzer

    官网:http://www.spasvo.com/Products/CodeAnalyzer.asp

    CodeAnalyzer简称CA,是上海泽众软件有限公司自主研发的代码审查工具,用于实现静态分析、代码走查、代码规范检查以及代码潜在错误分析。该工具并非开源,不过,可以在官网填写基本信息后申请获取试用版。

    7  其他

    Java静态代码分析工具不止上述这些,要了解更多资料可阅读如下文章。

    (1)常用Java静态代码分析工具的分析与比较

    (2)静态代码分析工具列表分析---代码分析工具列表(30款工具)

    (3)静态代码分析工具清单:开源片(各语言)

  • 相关阅读:
    查看CLOUD系统级IIS日志
    采购订单设置采购部门为缺省值
    单据头数据复制到单据体
    CLOUD设置过滤方案不共享
    BZOJ 4773: 负环 倍增Floyd
    LOJ #539. 「LibreOJ NOIP Round #1」旅游路线 倍增floyd + 思维
    BZOJ 4821: [Sdoi2017]相关分析 线段树 + 卡精
    一些常用公式/技巧
    BZOJ 4517: [Sdoi2016]排列计数 错排 + 组合
    BZOJ 3162: 独钓寒江雪 树的同构 + 组合 + 计数
  • 原文地址:https://www.cnblogs.com/ningjing-zhiyuan/p/7928911.html
Copyright © 2011-2022 走看看