【.com快译】众所周知,静态代码分析可以辅助开发者提高程序代码的质量。在DevOps实践中,我们通过将静态分析集成到正在进行的开发工作流程中,在开发的早期阶段解决代码质量问题。当然,这也为持续集成(CI)过程增加了一个额外的阶段——每当新代码产生合并请求时,CI服务器(或第三方服务)就会开始分析代码的质量并将结果放入合并提交者和代码审查者的请求。为了让审查者更专注于代码本身,我们通常需要与开发周期集成的自动化代码审查工具,即使新代码尚未合并到主代码库中,也可以执行代码审查。您可以根据实际项目中使用的技术栈,从以下七种工具中进行选择,无缝集成到现有的工作流程中。1.DeepSourceDeepSource是一个静态分析工具,可用于发现反模式、代码缺陷、运行性能等方面的问题。除了代码检测,DeepSource还生成和跟踪指标,例如:依赖项计数、文档覆盖率和更多的。DeepSource的自动修复功能提供各种修复建议,并使用户能够为常见问题创建拉取请求。目前,DeepSource可以很容易地与Bitbucket、GitHub或GitLab等帐户集成。此外,DeepSource还提供自动拉取请求,以方便分析器扫描更改的文件并将发现的问题直接报告给UI。主要特点它的分析器比其他工具检测到更多的缺陷。能够自动修复各种问题,以及格式化代码。提供更好的集成和开发人员体验。可确保误报率小于5%。可选择忽略某些未决问题。缺点不支持PHP语言。价格:DeepSource供开源组织、学生组织和非营利组织免费使用。它的价格为每位用户每月12美元。2.CodacyCodacy通过解决程序中的技术问题,协助开发者提高代码质量。它可以从代码复杂度、兼容性、易错性、安全性和代码风格等方面来衡量代码的质量。Codacy还可以根据要实现的项目目标,根据文件或类别提供要遵循的步骤和解决问题的建议。主要功能能够跟踪代码风格、安全性、错误倾向、性能和未使用代码等类别的问题。可以分析提交和拉取请求。能够自动对提交和拉取请求发表评论。缺点缺乏与其他SaaS服务的集成,包括:Sonatype、Blackduck、AWSAPIGateway提供的APIQOS指标,以及针对UI/E2E的各种SaaS测试服务。无法加密项目相关信息,或限制对UI源代码的访问。它的用户社区相对较小。价格:Codacy提供免费开源计划和高级计划,起价为每位用户每月15美元。3.CodeClimateCodeClimate既是一个代码覆盖工具,也是一个自动化的源代码审查器。通过与GitHub等平台集成,可以在持续集成过程中对代码库的重复、复杂度、风格等因素进行维护检查。同时,CodeClimate可以根据各种既定标准将目标代码环境的可维护性从A到F分级。主要功能为拉取请求提供代码审查级别的评论。能够为每个拉取请求生成测试覆盖率。使用CLI或IDE集成在本地执行分析。不可预测的API。不支持Objective-C。它的报告只包括带有源代码的标题,不提供所发现问题的详细描述。只能将所有问题显示为分页列表,无法搜索/过滤。价格:CodeClimate对最多10名用户的团队免费,入门版起价为449美元,企业版起价为649美元。4.Codebeat是一个自动代码审查工具。Codebeat可以将静态代码分析的结果收集到一份实时报告中,其中包括代码风格、安全漏洞和需要改进的代码等信息。与流行工具CodeClimate的A到F评分等级类似,Codebeat使用4.0评分系统。然而,与CodeClimate不同的是,Codebeat是通过算法来分析代码的复杂性。主要特点一个优秀的团队管理工具,它可以为项目中的移动人员分配不同的访问级别。能够与Slack、GitHub、Bitbucket和GitLab集成。缺点无法检测与安全相关的问题。不支持CSS/SCSS的分析。价格:Codebeat公共存储库是免费的,而私人存储库每月收费20美元(https://codebeat.co/pricing)。5.SonarcloudSonarcloud是一个基于云的代码质量工具和安全服务。它使用强大的静态代码分析功能来跟踪数以千计难以发现的错误和质量问题。同时,它还可以根据检测报告估计代码的覆盖率。Sonarcloud为分析器提供了大量规则,包括186种不同类型的关于代码风格、错误和漏洞的JavaScript规则。主要功能它能够在检测到特定的违规代码时阻止拉取请求。能够发送带有注释的分析报告。如果代码质量或安全性不符合要求,管道将设置为失败。缺点不提供编译语言的自动扫描。价格:Sonarcloud的社区版是免费和开源的。如果用户达到10万行代码(LOC),起始价格为每月10欧元。6、Embold作为静态分析平台,提供AI辅助代码测试,可以识别代码漏洞和漏洞,并提出相应的解决方案。它不仅提供云端和本地实例,还为IntellijIDEA提供免费插件,因此您可以使用它的快速扫描器来检测Java代码中潜在的错误、漏洞和代码风格,并提供实时反馈。通过其评分功能,用户可以一次性了解代码的整体质量,了解有问题的地方。主要特点其质量门功能允许用户设置存储库的质量阈值。它的推荐引擎(RecommendationEngine,测试版)可以在新代码提交之前,通过“学习”代码库中发现的问题,提前解决各种潜在问题。它的反模式可视化(AntipatternVisualization)功能可以用图形表示来解释各种反模式。缺点价格偏高。价格:Embold的基本版本是开源且免费的。如果用户达到50万行代码(LOC),起始价格为每月10欧元。7.CodePeerCodePeer是Ada和Java语言的代码审查工具。通过逐行分析代码,不仅可以找到运行时可能的故障点,还可以找到代码库无法访问的疑似冗余程序代码。此外,CodePeer能够在前置条件和后置条件的上下文中对每个子程序进行详细分析,以发现潜在的错误和漏洞。主要特点可以作为独立工具在Windows和Linux平台上运行。可用于集成测试和单元测试。附带额外的工具,如编码标准检查器(GNATcheck)、度量计算器/报告器(GNATmetric)等。缺点价格较贵。用户群体很小。定价:参见链接-https://www.adacore.com/pricing。小结综上所述,我们在选择一款自动化的持续代码审查工具时,需要综合考虑以下几个方面:是否可以对规则较多的静态代码进行分析。是否支持集成的类型和数量。有没有完整的文档。是否易于使用且灵活。各种更新策略。许可费。强大的客户支持。原标题:7个连续代码质量和自动化代码审查工具,作者:ShubhendraChauhan
