代码检测工具

2021-01-13

gitlab 代码审查, web版本的代码审查页面当将近两万行时, 页面卡顿, 需要寻找更好的办法. https://about.gitlab.com/partners/#gui-git-clients

SonarQube(sonar)是一个开源平台,用于管理源代码的质量。 SonarQube不只是一个质量数据报告工具,更是代码质量管理平台。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。 SonarQube可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。

(1) 不遵循代码标准 SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。 (2) 潜在的缺陷 SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。 (3) 糟糕的复杂度分布 文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。 (4) 重复 显然程序中包含大量复制粘贴的代码是质量低下的,SonarQube可以展示 源码中重复严重的地方。 (5) 注释不足或者过多 没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。 (6) 缺乏单元测试 SonarQube可以很方便地统计并展示单元测试覆盖率。 (7) 糟糕的设计 通过SonarQube可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过SonarQube可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合。

eslint: 是一个开源的、可配置、可扩展的JavaScript代码审查工具

stylelint: 是一个针对CSS / SCSS / LESS的代码审查工具。基于JavaScript,所以比起Ruby开发的scss-lint速度更快

jscpd: 检测代码重复率,其重复率判定依据为一定长度标识符的MD5值是否相同,支持文件格式广泛,如java、oc、js、jsx、vue、ts、less等

jsinspect: 检测代码重复率,判定依据为抽象语法树,可以检测出结构类似的代码块,支持js和jsx格式的文件

copyright ©2019-2024 shenzhen
粤ICP备20041170号-1