huaqiangli 2020-05-14
在我们的日常软件开发工作当中,随着项目时间变长,开发人员编写的代码量也会越来越多。
长此以往,会面临代码量庞大,却无法横量整体代码质量?若是要优化,也不知道如何优化。
针对这些问题,出现了各种各样的工具,比如:
java语言的Checkstyle,FindBugs,PMD,Jtest等,帮助检测代码编写规范上存在的问题和漏洞
python语言的Pyflakes,Pylint,pep8等。
C#语言的FxCop、StyleCop等。
通过这些工具扫描的结果分析后,根据结果来优化代码问题,以提高代码质量。
以上这些工具都是 代码的静态扫描分析 工具。
所谓静态代码分析,就是针对开发人员编写的源代码,在不运行的情况下,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷。
在单独使用以上这些工具时,我们会面临:
1、需要一个平台,能够汇总呈现不同语言的项目、不同工具的扫描结果
2、需要一个平台,可以友好的呈现或者追溯,一段时间内每一次扫描的结果的差异。
sonarQube就是这样的一个平台,
1)支持多种语言的静态代码扫描。
2)多维护呈现项目代码的质量状态。
1、代码质量和安全扫描和分析平台。
2、多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、测试覆盖率等。
3、支持25+编程语言的代码扫描和分析,包含java\python\C#\javascript\go\C++等。
4、涵盖了编程语言的静态扫描规则: 代码编写规范+安全规范。
5、能够与代码编辑器、CI/CD平台完美集成。
6、能够与SCM集成,可以直接在平台上看到代码问题是由哪位开发人员提交。
7、帮助程序猿写出更干净、更安全的代码。
静态扫描主要针对开发人员编写的源代码。
通过定义好的 代码质量和安全规则,对开发人员编写的代码进行扫描和分析。
将分析的结果多维护的呈现出来,以方便开发人员进行代码的优化和规范编写。
sonar静态代码扫描由2部分组成:sonarQube平台,sonar-scanner扫描器。
sonarQube: web界面管理平台。
? 1)展示所有的项目代码的质量数据。
? 2)配置质量规则、管理项目、配置通知、配置SCM等。
sonarScanner: 代码扫描工具。
? 专门用来扫描和分析项目代码。支持20+语言。
? 代码扫描和分析完成之后,会将扫描结果存储到数据库当中,在sonarQube平台可以看到扫描数据。
sonarQube和sonarScanner之间的关系:
扫描数据流向: