概述
Java代码的质量评估主要包括代码的可维护性、健壮性、以及在运行时能达到既定的性能目标,可维护性主要包括代码的可读性、在关键的代码上提供详细注释、在设计类、方法以及代码逻辑时符合设定的编码规范,健壮性主要包括编写代码时应使用常用的设计模式、在代码发生异常时能提供合理的容错性,代码运行的性能目标主要包括代码能高效地运行、代码在执行计算的过程中应合理地使用内存资源、处理器资源以及其他系统资源。
本文主要描述Eclipse IDE的集成开发工具提供的相关插件,这些插件主要包括阿里云的P3C、CheckStyle、PMD、FindBugs、SourceMonitor、Sonar,使用这些插件对项目工程代码执行静态扫描,从而输出代码存在的问题,研发人员可以根据这些问题初步评估代码的质量,然后,修改以及优化这些代码问题,这些插件的功能与作用如下所示:
阿里云的P3C P3C是阿里云提供的编程规范的插件,支持Eclipse IDE或者其他IDE,其提供的编程规约包括命名规范、常量定义、代码格式、OOP规约、集合处理、并发处理、控制语句、注释规约以及其他规约 |
CheckStyle Check Style是一款开发工具,开发者可以使用该工具检查代码是否符合既定的标准规范,其提供的检查范围包括类设计问题、方法设计问题、代码编写格式或者布局问题、其他问题,其支持Eclipse IDE或者Maven插件
|
PMD PMD是一款静态代码分析工具,使用该工具检查代码可以帮助开发者发现的问题包括未被使用的变量、无用或者空的代码块、多余被创建的类对象、其他问题,其支持Eclipse IDE或者Maven插件
|
FindBugs FindBugs是一款专用于Java语言的代码安全审计的工具,其提供的代码检查功能包括发现代码类型安全问题、发现传输协议数据安全问题,其支持OWASP标准以及CWE标准的安全性检查,其提供Eclipse IDE或者Maven插件
|
SourceMonitor SourceMonitor是一款用于统计代码行数、检查代码圈复杂度的工具,代码圈复杂度能直接反映出代码算法的计算效率的问题,复杂度越高,则代码算法的执行效率越低
|
Sonar Sonar提供三种方式的代码检查工具,包括Eclipse IDE插件本地代码检查、支撑企业内开发团队的代码检查平台、在DevOps CI/CD领域中提供有效的工具集成到云环境
|
阿里云的P3C
https://github.com/alibaba/p3c/ |
如上所示,git上下载P3C源代码到本地开发环境
https://p3c.alibaba.com/plugin/eclipse/update |
如上所示,在Eclipse IDE中,输入P3C的插件网络地址即可安装
如上所示,Alibaba Code Guidelines代码检查插件安装成功
如上所示,使用Alibaba Code Guidelines代码检查插件对Java项目工程代码执行扫描,输出代码存在的问题,开发人员可以根据这些问题及时修复以及优化代码
CheckStyle
https://checkstyle.org/index.html https://maven.apache.org/plugins/maven-checkstyle-plugin/usage.html |
如上所示,在Eclipse IDE的Maven工程中配置Maven checkstyle插件
如上所示,在Eclipse IDE执行Maven的命令生成代码检查报告
如上所示,在项目构建的目标目录site中,输出checkstyle的报告
如上所示,checkstyle.html页面中可以查看代码存在的问题
PMD
https://docs.pmd-code.org/latest/pmd_userdocs_tools_maven.html |
如上所示,在Eclipse IDE项目工程中配置Maven的pom.xml
如上所示,在Eclipse IDE中运行Maven的命令执行PMD对代码的分析
如上所示,在项目工程的构建目录中输出pmd.html的代码分析报告
FindBugs
https://find-sec-bugs.github.io/ |
如上所示,在Eclipse IDE项目工程中配置Maven的pom.xml
mvn compile mvn spotbugs:spotbugs mvn spotbugs:gui |
如上所示,在Eclipse IDE中运行Maven命令,执行findbugs的代码分析
如上所示,findbugs提供的分析工具显示代码存在的问题
SourceMonitor
https://www.derpaul.net/SourceMonitor/ |
如上所示,下载安装SourceMonitor工具、对Java代码工程执行圈复杂度的分析、输出分析报告
Sonar
https://docs.sonarsource.com/sonarlint/eclipse/ |
如上所示,在Eclipse IDE插件市场中搜索安装SonarLint
如上所示,在Eclipse IDE中使用SonarLint对Java项目工程执行代码分析
如上所示,SonarLint对Java项目工程执行代码分析,输出分析报告