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),用于监管质量
分支分析
确保干净的代码才会被合并到主分支中
监测棘手的问题
多语言
支持:ABAP、C/C++、C#、CSS、COBOL、Flex、Go、HTML、Java、JavaScript、Kotlin、Objective-C、PL/SQL、PL/I、PHP、Python、RPG、Ruby、Swift、T-SQL、TypeScript、VB.NET、VB6
XML
集成DevOps
集中质量
七个维度检测代码质量
复杂度分布(complexity):代码复杂度过高将难以理解
重复代码(duplications):程序中包含大量复制、粘贴的代码而导致代码臃肿,sonar可以展示源码中重复严重的地方
单元测试统计(unit tests):统计并展示单元测试覆盖率,开发或测试可以清楚测试代码的覆盖情况
代码规则检查(coding rules):通过Findbugs,PMD,CheckStyle等检查代码是否符合规范
注释率(comments):若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读
潜在的Bug(potential bugs):通过Findbugs,PMD,CheckStyle等检测潜在的bug
结构与设计(architecture & design):找出循环,展示包与包、类与类之间的依赖、检查程序之间耦合度