您的位置:  首页 > 技术杂谈 > 正文

2022 最佳代码审查工具——调查结果

2022-01-21 16:00 https://my.oschina.net/u/5494143/blog/5407410 JetBrains中国 次阅读 条评论

 

代码审查是软件开发流程的重要组成部分。 这项工作让我们可以在实现之前指出代码问题、减少修正错误的时间,并使开发者专注于更有意义的工作。

虽然代码审查对工作流的益处显而易见,但目前的代码审查工具种类繁多,要找到合适的工具可能并不容易。 许多代码审查工具功能相似,但支持的工作流和集成却大不相同。 那么,面对如此庞杂的选择,怎样才能为项目找到最合适的审查工具?

在 JetBrains 最近发布的《2021 开发者生态系统现状》报告中,超过 31,000 名开发者对软件开发各方面的相关问题给出了答案。 随同科技行业的最新趋势,这项研究确定了今年最常用的代码审查工具,我们很高兴在此分享结果。

  • 查看完整报告:https://www.jetbrains.com/zh-cn/lp/devecosystem-2021/

接下来,您将了解 2022 年最流行的代码审查工具,并找出最能帮助自己提高产品开发质量和效率的选项。

 

 目录 

  • 什么是代码审查工具?

  • 有哪些代码审查工具?

  • 2021 最佳代码审查工具

  • 如何选择代码审查工具?

  • 为什么使用自定义代码审查工具?

  • 如何使用工具改进代码审查流程?

 

什么是代码审查工具?

代码审查是一种质量保证技术,采用这种技术时,代码作者会在其代码加入代码库之前要求另一位开发者对代码进行检查。 给身旁的同事解释工作内容就足以算作非正式的代码审查,而结构化的代码审查可能需要多轮记录的反馈和质量门来确保代码满足合并前的特定标准。

代码审查工具可以帮助开发团队协同处理代码,确保代码质量和一致性。 这些工具可以为审查提供清晰的结构,进而向更大的开发工作流整合, 还可以提供流程记录,让参与者更轻松地跟踪待完成的工作,简化各方之间的沟通。

 

有哪些代码审查工具?

代码审查工具有多种形式。 下文简单概述了选择合适工具时应纳入考量的一些关键差异。

1. 捆绑工具与独立工具

某些代码审查工具与更全面的服务或套件(例如 GitHub、Azure DevOps 或 JetBrains Space)捆绑,而其他的则是独立资源。 在这方面,需要重点考虑的是解决方案与已有资源的集成程度。

2. VCS 支持

尽管 Git 是目前最主要的版本控制系统之一(93% 的受访开发者使用 Git),但代码审查工具也可以通过支持的 VCS 来区分:

  • Git(绝大多数支持 Git)

  • Mercurial(Review Board、Crucible)

  • Apache Subversion(RhodeCode、Collaborator)

3. 工作流

代码审查工具支持不同的开发工作流,这可能会影响您的最终选择:

  • 拉取/合并请求(GitHub、GitLab、BitBucket、Space)

  • 提交 (Space)

  • 补丁/差异(Gerrit、Phabricator)

4. 自动化功能

某些代码审查工具可以通过提供静态分析或与 CI/CD 工具的集成来自动执行部分审查流程。 自动执行部分流程可减少审查者的繁重工作,使其专注于提供有意义的反馈,不必在细枝末节上浪费时间。 以下是一些可以简化代码审查流程的功能:

  • 代码导航 (GitLab Code Intelligence)

  • 与 CI/CD 工具集成 (Space)

  • 安全检查

  • 检测和修正代码问题(SonarQube、BitBucket)

多样的功能、集成以及支持的 VCS 和工作流意味着也许某一种工具有能力满足任何团队的需求。 我们在这里列出 2021 最佳代码审查工具名单,帮助您轻松找出最合适的工具。

根据《开发者生态系统现状》报告选出的

最佳代码审查工具

1. GitHub https://github.com/features/code-review/

在 GitHub 上,代码审查工具内置在拉取请求中。 您可以请求审查、提出更改建议、跟踪版本和保护分支,提高代码质量。

  • 定价:提供免费方案;付费方案从每位用户每月 4 美元起。

 

2. GitLab

https://about.gitlab.com/stages-devops-lifecycle/code-review/

GitLab 允许通过异步审查和注释在分布式团队之间审查代码、讨论变更、分享知识和识别代码中的缺陷。GitLab 可以自动执行、跟踪和报告代码审查。

  • 定价:提供免费方案;付费方案从每位用户每月 19 美元起。

 

3. Bitbucket

https://bitbucket.org/product/features/code-review

Atlassian 的 Bitbucket 代码审查是代码优先界面,允许用户查看较大的差异、查找错误、展开协作以及合并拉取请求。

  • 定价:提供免费方案;付费方案从每位用户每月 3 美元起。

 

4. Azure DevOps

https://azure.microsoft.com/en-us/services/devops/#overview

Microsoft 的 Azure DevOps 代码审查内置在其 Azure Repos 中,并支持拉取请求审查工作流, 提供以线索组织的讨论和持续集成。

  • 定价:基本方案对五人团队免费,后续每位额外用户每月 6 美元。

 

5. Crucible

https://www.atlassian.com/software/crucible

Atlassian 的 Crucible 是一款轻量型代码审查工具,具有以线索组织的讨论,并且可与 Jira Software 和 Bitbucket 集成。

  • 定价:最多五位用户一次性支付 10 美元,大型团队则为 1,100 美元。

 

6. Gerrit

https://www.gerritcodereview.com/

Gerrit 是适用于基于 Web 的代码审查的开源工具,具有支持 Git 的 SSH 和 HTTP 服务器。Gerrit 的补丁导向审查流程建立在 Git VCS 之上,支持开源项目的典型工作流。

  • 定价:免费使用。

 

7. Upsource

https://www.jetbrains.com/zh-cn/upsource/

JetBrains Upsource 提供提交后代码审查、拉取请求和分支审查以及项目分析。 静态代码分析和代码感知导航等代码洞察功能使您可以自动执行代码审查流程的重要部分。

  • 定价:一次性付款,25 人团队 1,300 美元起。

将 Upsource 作为独立代码审查工具开发后,JetBrains 长期致力于开发更现代化的代码审查解决方案。依据代码审查的最新趋势和最佳做法,我们已为软件团队将此解决方案整合到更大的平台。 全新的 JetBrains Space 涵盖了 Upsource 的大量核心功能,并以其为基础进行了扩展,可为整个软件开发管道提供支持。

 

8. JetBrains Space

https://www.jetbrains.com/zh-cn/space/

JetBrains Space 代码审查允许您在有或没有正式规则的情况下建立可自定义和集成式代码审查流程。 您可以更轻松地与同事协作编写代码、创建合并请求并使用自定义质量门保护主分支。

Space 的回合制代码审查让作者和审查者尽可能清楚地了解审查代码的过程。 您可以在将代码合并到主分支之前或合并提交之后在分支中审查代码。Space 与 JetBrains IDE(例如 IntelliJ IDEA)的集成使您可以使用 IDE 导航功能审查和注释代码,无需离开 IDE 即可管理您的合并请求与代码审查。

Space 不仅限于代码审查。 它是一个统一平台,涵盖了整个软件开发管道,包括托管 Git 仓库、自动执行 CI/CD、发布软件包和编排云开发环境以及管理问题、文档和聊天。

  • 定价:提供免费方案;付费方案从每位用户每月 8 美元起。

 

9. Review Board

https://www.reviewboard.org/

Review Board 是一个可扩展工具,除了纯代码审查之外,它还支持演示文稿、PDF 和图像等多种文件类型的审查。

  • 定价:付费方案从每 10 位用户每月 29 美元起。

 

10. AWS Code Commit

https://aws.amazon.com/codecommit/

AWS CodeCommit 是一种源控制服务,托管私有 Git 仓库并提供对拉取请求的内置支持。 它与基于 Git 的工具兼容,这样一来,无需对工具或工作流进行重大调整即可轻松采用。

  • 定价:提供最多五个用户的免费方案;付费方案从每位额外用户每月 1 美元起。

 

11. Phabricator(已被弃用)

https://www.phacility.com/phabricator/

虽然 Phabricator 是 2021 年可用的代码审查软件之一,有 3% 的开发者生态系统调查受访者将其选为所用工具,但它已无法被新用户采用。 自 2021 年 6 月 1 日起,Phabricator 已被弃用,无法创建新实例。

  • 价格:不再提供。

 

12. Gogs/Gitea

https://gogs.io/    https://gitea.io/zh-cn/

Gitea 和 Gogs 是开源项目,旨在提供轻量级且易于设置的自托管 Git 服务。 这些项目主要为 Go 用户提供服务,支持用于代码审查的标准拉取请求工作流。

  • 定价:免费使用。

 

13. Collaborator

https://smartbear.com/product/collaborator/overview/

SmartBear 的 Collaborator 是一种对等代码和文档审查工具,可与各种 IDE 和托管服务集成。 它拥有可自定义的工作流,能够无缝融入已有工作流程。

  • 定价:付费方案从每年 529 美元起 – 在五个订阅下最多支持 25 个用户。

 

14. Helix Swarm

https://www.perforce.com/products/helix-swarm

Helix Swarm 是适用于 Helix Core VCS 的基于 Web 的代码审查工具。 它与整个 Perforce 工具套件集成,为使用 Helix Core 的团队提供了一系列协作资源。

  • 定价:免费使用。

 

如何选择代码审查工具?

我们在《2021 开发者生态系统现状调查》结果中发现的一大最明显趋势是,内置在更大生态系统中的代码审查工具越来越受欢迎。 事实上,到目前为止,大多数受访者使用的代码审查资源要么附于更全面的解决方案(例如 GitHub 或 GitLab),要么与更大的套件(例如 Atlassian 或 JetBrains)集成。 这表明,开发者选择代码审查工具时,优先考虑的是其是否符合现有工作流以及能否与软件开发管道其他阶段的解决方案无缝集成。

JetBrains 的开发者对如何选择代码审查工具是这么看的:

 

 

    “我认为导航功能非常有用,这让我不必为了审查代码而去克隆整个合并请求。

 

 

 

– Pasha Finkelshteyn

JetBrains 技术布道师

 

 

 

 

 

 

 

 

显然,只有透彻了解团队和组织的运作方式才有可能选出正确的工具。审查的是什么?审查者是谁?谁签署代码审查?选择一种与开发流程兼容的工具,或者可以根据工作流进行适当自定义的工具。

首先问一问为什么:为什么要进行代码审查?是为了找错误?分享实现知识?还是在合并到主要分支之前设立一个质量门?无论如何,工具都应该能够回答团队的“为什么”,并有助于讨论代码、支持持续集成挂钩以自动验证代码,等等。

 

– Maarten Balliauw

JetBrains 技术布道师

 

 

 

为什么使用自定义代码审查工具?

如果需要完全调整工作流才能将新的代码审查工具整合到开发流程,那么这样的选择似乎并不理想。 同样,如果要为了执行代码审查而来回切换工具,考虑到耗费的时间和对注意力的干扰,最终也是得不偿失。

对兼容现有工作流的工具的需求,可能是使用自定义代码审查解决方案的受访者数量惊人的原因 —— 9% 的软件专业人士表示使用的是自定义代码审查工具。

 

如何使用工具改进代码审查流程?

在寻找要采用的解决方案时,您可能需要考虑所选工具能否自动执行部分代码审查流程。 例如,在代码审查中提供静态代码分析或代码洞察的资源可以显著减少审查者的认知负担。 这既能加快流程,又能提高最终结果的质量。同样,与 IDE 集成的代码审查解决方案将允许您使用已经熟悉的导航和洞察功能。JetBrains Space 具有一流的 JetBrains IDE 集成,可让您通过 IDE 导航的强大功能审查和注释代码。 您可以直接在喜爱的 IDE 中管理合并请求和代码审查,无需更改上下文。

Space 是可以完善软件开发管道的统一平台,支持多种工作流,并提供与所有开发流程必备服务(例如 CI/CD 和 Git 托管)的集成。

 

结论

代码审查是确保开发流程产生高质量结果的关键技术,选择代码审查工具时应谨慎考量。《2021 开发者生态系统现状》报告列出了最受欢迎的代码审查解决方案,是您寻找合适工具的绝佳起点。 合适的工具不一定是最受欢迎的工具,重要的是解决方案提供的集成和功能最适合您自己的开发流程。

您认为代码审查工具中最重要的是什么? 在后台留言告诉我们吧!

 

本文英文原作者:Evgenia Verbina

 

相关阅读《2021 开发者生态系统现状》

 

本文分享自微信公众号 - JetBrains(JetBrainsChina)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接