Sonar
官方信息
- https://www.sonarqube.org/
- https://www.sonarqube.org/downloads/
https://docs.sonarqube.org/display/SONAR/Installing+the+Server
- Documentation:https://docs.sonarqube.org/display/SONAR/Documentation/
Plugin Library:https://docs.sonarqube.org/display/PLUG/Plugin+Library
简介
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量。
通过插件机制(Plugin Library)支持绝大多数主流编程语言的代码质量管理与检测
可以与不同的测试、代码分析、CI、IDE等工具进行集成,例如Maven、Jenkins等
对代码质量分析结果数据进行再加工处理,通过量化的方式来度量,并且能够定制化地展示
使用SonarQube可以从七个维度检测代码质量
- 复杂度分布(complexity):代码复杂度过高将难以理解、难以维护;
- 重复代码(duplications):重复严重的代码是质量低下的表现;
- 单元测试(unit tests):统计并展示单元测试覆盖率;
- 编码规范(coding rules):通过Findbugs,PMD,CheckStyle等代码规则检测工具规范代码编写;
- 注释(comments):缺少或者过多的注释都会严重影响代码可读性;
- 潜在的Bug(potential bugs):通过Findbugs,PMD,CheckStyle等代码规则检测工具检测潜在的bug
- 结构与设计(architecture & design):检测依赖、耦合等关系
一些说明
任何引入到软件里的变更将导致系统复杂性的提高以及混乱程度的加深。系统的混乱程度被称为“技术债”。每当新代码被引入到系统时,技术债就会相应增加。
如果技术债长期不受重视的话,得到控制权的可能性将变得越来越渺茫,毕竟越来越多的功能在紧迫的期限内堆积过来。而这将会对软件的生产力和可维护性产生负面影响。
迭代开发方法,将测试的执行自动化,以及使用CI来监控每一次签入的技术债,这些是保证技术债在可控范围内的不二法门。
使用类似SonarQube的(分辨代码质量和跟踪技术债的开源平台),可以轻松地集成到任何CI服务器,并为用户提供团队技术债实时数据的展示。
SonarQube作为一款非常实用的工具,能够在一个友好的web界面上展示它的分析结果,有助于管理和其他相关的非技术人员观测。