2025 年 Go 生态系统:框架、工具与开发者做法的主要趋势
今年是 Go 诞生 16 周年。 为庆祝这一里程碑,我们更深入地探究了最新开发者生态系统调查结果,并回顾了 Go 生态系统在过去五年的发展历程。
JetBrains Data Playground 数据显示,220 万专业开发者将 Go 作为主要编程语言,这一数字是五年前的两倍。 如果算上将 Go 作为次要语言的专业开发者,这一数字将超过 500 万。
根据 2025 开发者生态系统现状报告,Go 仍是开发者优先选用的编程语言,11% 的软件开发者计划在未来 12 个月内采用 Go。 与去年一样,Go 在 JetBrains 语言前景指数中位列第四,仅次于 TypeScript、Rust 和 Python。
Go 开发者通常可以分为两类,部分人兼具这两种角色:
- 从事涉及微服务的 Web 应用程序开发工作的 Web 后端开发者。
- 管理 IT 基础架构平台(Kubernetes 或无服务器架构)的 DevOps 或站点可靠性工程师。 他们通常从事 Kubernetes 集群 Operator、相关 Go Web 微服务和以 Go、Python 或 Bash 编写的 CLI 实用工具开发工作,以及基础架构即代码和服务支持方面的工作。
塑造 Go 生态系统的库
标准库
Go 秉承“自带电池”的设计理念,Go 标准库是该语言的一大核心优势,通常能够满足大部分需求。 Go 以其清晰、可靠、安全、高性能、简单的特点受到广大开发者的青睐。 在 Go 文化中,“stdlib 优先”是默认准则;引入第三方库主要是为了方便,而非出于必需。
不过,随着 Go 应用程序的使用范围不断扩大,其生态系统也在不断演进,一批可靠且推荐用于特定用例的工具相继涌现并被广泛采用。
主流 Web 框架和路由器
我们来探讨一下 2020 年以来 Go 框架和 Go 路由器的受欢迎程度发生了哪些变化。

注:由于这是一个多选题,各数值的总和超过 100%。
net/http 软件包属于标准库路由器,是 Go 开发者最常选择的路由工具。 它性能稳定,且不依赖任何依赖项。
近年来,chi 一直是构建 Go HTTP 服务的热门替代方案。 自 2020 年以来,其使用率小幅增长,目前约有 12% 的开发者选择使用。 chi 是一款符合 Go 语言习惯的轻量级路由器,完全兼容 net/http,文档详尽且得到积极维护。
曾经最常用且功能强大的 HTTP 路由器 gorilla/mux 已于 2023 年归档。 自那时起,许多项目已迁移到 chi 或标准库,特别是 Go 1.22 在 http.ServeMux 中引入模式路由之后。 据报告,截至 2025 年,17% 的 Go 开发者会经常使用 gorilla/mux,这一数字较 2020 年的 36% 有所下降。 由于遗留项目的存在,它仍占有不小的比例,但预计未来这一数字会进一步下降。
2025 年最热门的 Go Web 框架是 Gin、Echo 和 Fiber。
Gin 的使用率稳步增长,2025 年已有近半数 (48%) 的 Go 开发者在使用它,而 2020 年这一数字为 41%。 虽然 Go 没有具体的“最佳”Web 框架,但 Gin 作为速度最快、最成熟、最受推荐的选项稳居第一梯队。
2020 年推出的 Fiber 侧重于速度和简洁性,它同样赢得了大家的青睐。 现在有 11% 的 Go 开发者在使用 Fiber,这一数字接近 Echo 的使用率 (16%),且超过了热度持续下降的 Beego (4%)。
测试框架和性能工具
Go 拥有深厚的测试与基准测试文化,这源于其设计理念,即测试应简洁、一致,并且应当是日常开发的一部分,而非事后补救措施。 这一理念体现在语言本身:标准库包含 testing 软件包,该软件包支持单元测试、基准测试、示例测试和模糊测试。 Go 开发者应使用 pprof 这类内置工具分析和衡量性能。

注:由于这是一个多选题,各数值的总和超过 100%。
使用数据印证了这一理念 – 对于编写单元测试的 Go 开发者而言,内置的 testing 软件包仍是开发者的首选。 但是,对于规模较大的项目或企业级项目,其功能通常难以满足需求,这一不足推动了 testify 和 gomock 这类框架和库自 2020 年以来的发展。
Testify 扩展了标准测试软件包,提高了测试的清晰性和可读性。 它适用于大部分项目,目前有 27% 的开发者在使用。
gomock 针对模拟接口和外部服务而设计,约有 21% 的 Go 开发者在使用。
其他几个 Go 测试框架的使用范围虽然较小,但在特定用例中很有价值。 Ginkgo 通常与 Gomega 搭配使用,提供富有表现力的匹配器,可以在行为驱动测试中带来出色表现。 由于这类工具的设置更加复杂,通常只有大型或复杂的测试套件才会选用。 自 2020 年起,Ginkgo 的使用率一直稳定保持在 5% 左右。
Godog 是另一款 BDD 框架,支持使用人类可读的 Gherkin 语法编写测试,并且可以将测试关联到 Go 代码。 Godog 最适合帮助开发者与 QA 和产品团队达成一致意见,而非用于底层单元测试。 Godog 虽然不是新推出的框架,但自 2022 年起由 Cucumber GitHub 组织进行积极维护以来,其采用率在逐步提升,2025 年,约有 4% 的 Go 开发者在使用。
热门开源库
以下是 2025 年使用范围最广的开源 Go 库,这些库按应用领域进行了分组。
后端服务
- 日志记录:
- 数据库:
- database/sql (stdlib) 针对 SQL(或类 SQL)数据库提供了通用接口。
- sqlx 在 database/sql 的基础上增加了提升开发体验的增强功能。 它与驱动无关,特别适合使用多个数据库的用例。
- pgx 专为 Postgres 而设计,常因可以提供一流的 PostgreSQL 支持和性能而被使用。
- GORM、ent 等 ORM(对象关系映射器)可以帮助将 Go 结构体映射到数据库表,让您能够以更加面向对象或声明式方式使用数据库。 对于高度抽象的用例(迁移、架构建模等),推荐使用这些库。
- 配置:
- 验证:
CLI 应用程序
- cobra 是构建 Go CLI 应用程序时使用最广泛的库,可以提供命令、标志和自动帮助。 它非常适合包含多个子命令的复杂 CLI(如开发者工具、自动化脚本和管理实用程序),许多主流 Go 工具(如 kubectl 或 helm)都在使用它。
- urfave/cli 易于上手,并且能够生成更清晰的帮助和用法输出,非常适用于开发单命令或小型 CLI 工具。 它最常用于开发轻量级 CLI,或用于替代 DevOps/实用工具脚本。
- bubbletea 是一款现代 TUI(文本用户界面)框架,用于构建交互式或可视化 CLI 应用,如菜单、仪表板、进度条等。
Kubernetes
- k8s.io/client-go 是 Kubernetes API 的官方 Go 客户端库,提供客户端集、动态客户端、发现、通知器、列表器、REST 和身份验证功能。
- sigs.k8s.io/controller-runtime 封装了 client-go,可以提供管理器、协调器、缓存和 Web 挂钩等功能。
- Operator Framework 是一个高级基架框架,用于通过 Go 构建 Kubernetes Operator。 它的底层采用 controller-runtime,可以帮助生成代码、样板代码和 CRD(自定义资源定义)搭建。
- sigs.k8s.io/kubebuilder 是一个使用 CRD 构建 Kubernetes API 和 Operator 的框架。
IDE 和开发环境
IDE 和编辑器

数据表明,由 JetBrains 开发的 GoLand IDE 仍是 Go 开发的首选工具,47% 的受访者将其认定为自己的首选 IDE 或编辑器。 约有 6% 的 Go 开发者选择安装了 Go 插件的 IntelliJ IDEA,主要原因是后者的多语言支持。
VS Code 近期的使用率保持稳定,而编辑器的整体使用率则略有上升。 Neovim 作为 Vim 的现代化、开源且可扩展的替代者,已经获得关注。 在 Atom 于 2022 年停用后,其核心贡献者推出了 Zed – 一款使用 Rust 编写的开源、高性能编辑器。 用于 Go 开发的其他编辑器的占比基本保持不变,且占比极低。
最显著的变化与 LLM 的迅速崛起以及对 AI 编程助手的需求不断增长相关。 2025 年,6% 的 Go 开发者将 Cursor(2023 年推出的一款基于 VS Code 的 AI 赋能代码编辑器)作为自己的主要开发环境。
AI 编码辅助
AI 赋能的编码工具已对 Go 开发者的工作流产生重大影响。 调查数据表明,通常情况下,与使用其他语言的同事相比,Go 开发者会更早地开始采用 AI,并且他们会更广泛地将 AI 用于日常任务。 目前,70% 以上的 Go 开发者报告自己会定期使用至少一款 AI 助手、智能体或代码编辑器。
这种高采用率很大程度上是因为语言本身的性质。 即使是基本的 AI 赋能代码补全和测试生成,在处理使用 Go 语言编写的样板代码时也能带来重要价值。 语言的简洁性、结构和可预测性使其特别适合基于 LLM 的代码生成。
以下是 2025 年 Go 开发中常用的几款最热门的 AI 编码助手、智能体和代码编辑器。

注: 这是一个多选题。 结果已进行筛选,仅包含已指明将 Go 语言作为其主要编程语言的调受访者。 表仅列出了被超过 3% 的受访者报告为经常使用的工具。 AI 智能体市场正在快速发展;本文所呈现的数据于 2025 年 4 月到 6 月期间采集。
Lint 分析和静态分析
Go 的工具生态系统以其出色的静态分析和 Lint 分析支持而闻名。 除了 Go 工具链中包含的工具之外,还有多套广泛采用的解决方案常用于专业项目。
Golangci-lint 已成为标准的全功能 linter 运行器,适用于 CI/CD 管道和本地开发。 它会并行运行 linter,利用缓存提升速度,并具有高度可配置性。
默认包含 100 多个 linter,其中包括 gosec、govet、revive、errcheck、ineffasign 和 staticcheck(规则子集)等常用选项,许多团队更倾向于通过 golangci-lint 运行这些检查。
Golangci-lint 还与所有主流 IDE 集成,从而实现“左移方式”。 例如,GoLand 原生支持 golangci-lint,可以在您编码时实时运行 golangci-lint 检查,帮助尽早发现问题。
另一个著名的工具是 nilaway,此工具专为检测 Go 代码中潜在的 nil panic 而设计。 它可以在终端或 CI/CD 管道中离线使用。 为了在开发阶段更早地检测问题,GoLand 提供了用于检测 nil 指针取消引用的过程间分析。 nil 指针取消引用检测器基于数据流分析,并针对增量执行和延迟执行进行了优化,可以在编辑器内实时响应代码更改。
总结与 Go 生态系统的未来展望
正如我们在 4 月的博文 Go 语言仍在增长吗?中所强调的,2025 年的 Go 生态系统仍然保持健康、稳定且成熟的发展态势。 该语言仍是后端、基础架构和云原生系统的首选。 Go 重视效率、安全性和简洁性,这可以确保其持续保持实用性,并为未来几年的进一步发展奠定良好的基础。
调查方法和数据
本文呈现的研究结果基于 2025 开发者生态系统现状报告。 此处提供了调查方法详细信息和原始数据。 所有表已进行筛选,仅包含将 Go 语言作为其主要编程语言的受访者。
本博文英文原作者: