[敏捷开发培训] 代码质量检查之利器—SonarQube

代码质量检查之利器—SonarQube

打开SonarQube的官网,首先看到的就是一行英文Title:Code Quality and Security。SonarQube允许所有开发人员编写更干净、更安全的代码。(SonarQube empowers all developers to write cleaner and safer code.

SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持Java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测。

SonarQube特性

持续检查

  • 项目整体的健康程度

        项目的主页面会给出,项目整体的Bugs、Vulnerabilities、Code Smells

  • 专注于漏洞

       water-leak-paradigm可以有效的管理代码质量:新特性,增加的,改变的
     (water-leak-paradigm是sonarqube研究的一种代码管理方法)
       在项目监测报告中,需要密切关注:New Bugs、New Vulnerabilities

  • 实施质量阈值

       在团队项目中,可以设置质量阈值(Quality Gate),用于监管质量

  • 分支分析

       确保干净的代码才会被合并到主分支中

七个维度检测代码质量

  • 复杂度分布(Complexity):代码复杂度过高将难以理解
  • 重复代码(Duplications):程序中包含大量复制、粘贴的代码而导致代码臃肿,sonar可以展示源码中重复严重的地方
  • 单元测试统计(Unit Tests):统计并展示单元测试覆盖率,开发或测试可以清楚测试代码的覆盖情况
  • 代码规则检查(Coding Rules):通过Findbugs,PMD,CheckStyle等检查代码是否符合规范
  • 注释率(Comments):若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读
  • 潜在的Bug(Potential Bugs):通过Findbugs,PMD,CheckStyle等检测潜在的bug
  • 结构与设计(Architecture & Design):找出循环,展示包与包、类与类之间的依赖、检查程序之间耦合度

灵活的配置方式

  • 用户本地使用IDE的插件进行代码分析
  • 用户上传到源代码版本控制服务器
  • 持续集成,使用Sonar Scanner进行扫描
  • 将扫描结果上传到SonarQube服务器
  • SonarQube server将结果写入db
  • 用户通过web ui查看扫描结果
  • SonarQube导出结果到其他需要的服务

发布了619 篇原创文章 · 获赞 185 · 访问量 66万+

猜你喜欢

转载自blog.csdn.net/seagal890/article/details/100679686
今日推荐