1.Alibaba Java开发手册 & 代码规范插件
项目地址:https://github.com/alibaba/p3c
看清楚,点击,README.md 文件有详细教程,这里不多说;
检测结果分为三个等级:
等级 | 严重程度 | 备注 |
BLOCKER | 严重的 | 有明显问题,影响性能,功能等(尽量修改,个人看法) |
CRITICAL | 危险的 | 一般问题,遵循的标准(日常习惯,养成良好习惯) |
MAJOR | 主要的 | 多为建议(可以不改) |
扫描结果:
2.SonarQube 与 SonarLint插件
项目地址:https://www.sonarqube.org/
SonarQube是一种自动代码审查工具,支持多种语言,可检测代码中的错误,漏洞和代码异味等。并且能够生成代码审查报告,它能够集成单元测试,统计单元测试覆盖率等。它还能很好与现有的DevOps结合,例如,在Java方面支持Maven插件,并且能够与Jenkins集成,实现自动化分析、测试,生成报告等。
三种问题类型
TYPE | 类型 | 备注 |
BUG | bug | 代码bug,影响程序运行(必须修改) |
VULNERABILITY | 漏洞 | 漏洞,有可能被攻击(必须修改) |
CODESMELL | 代码异味 | 可以优化,影响代码的可维护性 |
五个问题等级
SEVERITY | 严重性 | 备注 |
BLOCKER | 阻断 | 影响程序正常运行 |
CRITICAL | 严重 | 可能会影响程序运行,安全等 |
MAJOR | 主要 | 影响开发效率,代码质量 |
MINOR | 次要 | 可能会影响开发效率,代码质量 |
INFO | 提示 | 建议 |
扫描结果:
安装教程,参考另一篇博客;
介绍完这两个插件,那么应该如何选择呢?
这两个插件的侧重点不同:
- Alibaba代码规范插件比较关心的是代码规范,编码风格上的,例如,命名规范,注释,代码行数等
- SonarLint比较关心代码正确性,存在的问题,风险,漏洞等,例如,重复代码,空指针,安全漏洞等
所以,我建议结合使用,使用前者来规范代码,使用后者来提前发现代码的问题,配合起来提高工程整体的代码质量,并且能够在编码阶段规避风险,提高程序的健壮性。