sonar介绍

  1. sonar是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言;
  2. 而且能够集成在IDE、Jenkins、Git等服务中,方便随时查看代码质量分析报告;
  3. sonar通过配置的代码分析规则,从可靠性、安全性、可维护性、覆盖率、重复率等方面分析项目,风险等级从A~E划- 分为5个等级;
  4. sonar设置了质量门,通过设置的质量门评定此次提交分析的项目代码是否达到了规定的要求;
  5. sonar可以集成pmd、findbugs、checkstyle等插件来扩展使用其他规则来检验代码质量;

使用sonar目的

对于团队而言,编写干净的代码对于维护健康的代码至关重要。 代码是否健康主要由以下四个指标来判断:

  1. 可读性:代码是否可读易读,对于一个团队来说,编码标准是否一致,编码风格是否一致;
  2. 功能性:代码正确得实现了业务逻辑;
  3. 可维护性:代码逻辑是有层次的,是容易修改的;
  4. 高效性:代码实现在时间和空间的使用上是高效的; 团队成员可能每个人对于代码的标准及风格不同,即使通过eslint等约束也不一定能从多个维度保证代码质量,只能检测基础语法等代码质量问题。 所以引入一个可以保证团队成员代码标准一致,质量稳定,风格稳定的工具也许是有必要的。

sonar功能

它是从 Architecture Design(架构设计) , Coding Rule(编码规则), Potential Bugs(潜在错误), Duplications(重复代码), Comments(注释), Unit Tests(单元测试), Complexity(复杂度) 7个维度检查代码质量的。 相比lint工具检测维度比较全面, 有可视化的友好展示代码缺陷的界面,结合CI/CD工具,可以不依赖手工检查,定时清查代码。

sonarlint可以结合IDEA作为开发约束, sonarQube可以结合自动化构建工具检查分析代码质量,并输出代码检测可视化界面。

sonar使用

sonarlint -- 开发进行时的idea分析工具

以vscode举例,在扩展里面安装sonarlint,可以在写代码的时候在编辑器内或控制台给出提示;