sonar 代码质量分析平台,可以对项目进行代码行数量/重复率统计、代码逻辑缺陷扫描(如空指针)、口令/密钥泄漏风险扫描、坏味道检测,并给出对应详细的报告与修复评估。
代码审查是高质量软件开发过程中不可缺少的重要环节,能帮助开发者及时发现代码中的 Bug,提升代码质量、可维护性。
代码审查的维度包括语言规范
、代码风格
、设计合理
等。人工检查这些事项,会消耗大量的精力和时间。代码质量分析工具为此而生,帮助开发者从重复、繁琐地审查中解脱出来,聚焦于功能设计和实现。代码格式、语法规范、程序 Bug 等审查都交给代码质量分析工具。
(资料图片仅供参考)
对于在 Github 等公网上托管的项目,有大量可用的 SaaS 服务,例如,Code Climate、Codacy。通常,它们与 Github 直接打通,提供免费的代码质量分析服务。
但是在企业内网中,没有外网,代码敏感,我们需要支持私有化部署的代码质量分析工具。SonarQube 就是一个开源、可私有化部署的代码质量分析工具。
SonarQube 是一个开源的代码质量管理系统。特征:
支持超过25种编程语言,Java、C/C++、C#、PHP、Flex、Groovy、JavaScript、Python、PL/SQL、COBOL 等
提供重复代码、编码标准、单元测试、代码覆盖率、代码复杂度、潜在 Bug、注释和软件设计报告
提供了指标历史记录
支持与 Maven、Ant、Gradle 、Atlassian Bamboo、Jenkins、Hudson 等集成
支持 IDE 集成
支持 JIRA、Mantis、LDAP、Fortify 等外部工具集
支持扩展插件
SonarQube是Sonar的服务端,相当于一个web服务器中的tomcat,用来发布应用,在线浏览分析等。
Bug(缺陷)指的是代码中的一个已知或潜在的缺陷或错误,它将在不久的将来爆发出来,它需要立即修复
。缺陷可以是语法错误、安全漏洞、规范违规、代码重复等问题。SonarQube 平台通过扫描代码并应用定义的规则来发现这些缺陷。除了发现问题,SonarQube 还可以提供解决方案和指导,告诉开发人员如何修复这些缺陷。
漏洞指的是代码中的一个安全问题或漏洞。它可以包括反射性 XSS、SQL 注入、LDAP 注入、远程代码执行等安全问题。 SonarQube 平台通过扫描代码并应用定义的规则来发现这些漏洞。除了发现问题,SonarQube 还可以提供解决方案和指导,告诉开发人员如何修复这些安全问题。
异味指的是代码中的一些潜在问题。异味可以包括不必要的注释、代码复杂性、未使用的变量、未捕获的异常等问题。 SonarQube 平台通过扫描代码并应用定义的规则来发现这些问题。除了发现问题,SonarQube 还可以提供解决方案和指导,告诉开发人员如何修复这些问题。
安全热点是指软件中的部分代码(如字符串拼接或访问数据库等操作),出于安全原因,需要进行专门的代码审计。
技术债务是指修复所有可维护性问题/代码味道所需的估计时间。