讲师中心 微信公众号
AI工具推荐 视频效率加速

2025 年 Go 生态系统:框架、工具与开发者做法的主要趋势

落婷大大_8531

落婷大大_8531

发布时间:2025-12-13 16:12:21

|

904人浏览过

|

来源于php中文网

原创

今年是 go 诞生 16 周年。 为庆祝这一里程碑,jetbrains 深入地探究了最新开发者生态系统调查结果,并回顾了 go 生态系统在过去五年的发展历程。

JetBrains Data Playground 数据显示,220 万专业开发者将 Go 作为主要编程语言,这一数字是五年前的两倍。如果算上将 Go 作为次要语言的专业开发者,这一数字将超过 500 万。

根据 2025 开发者生态系统现状报告,Go 仍是开发者优先选用的编程语言,11% 的软件开发者计划在未来 12 个月内采用 Go。 与去年一样,Go 在 JetBrains 语言前景指数中位列第四,仅次于 TypeScript、Rust 和 Python。

Go 开发者通常可以分为两类,部分人兼具这两种角色:

  • 从事涉及微服务的 Web 应用程序开发工作的 Web 后端开发者。
  • 管理 IT 基础架构平台(Kubernetes 或 Serverless 架构)的 DevOps 或站点可靠性工程师。 他们通常从事 Kubernetes 集群 Operator、相关 Go Web 微服务和以 Go、Python 或 Bash 编写的 CLI 实用工具开发工作,以及基础架构即代码和服务支持方面的工作。

塑造 Go 生态系统的库

标准库

Go 秉承“自带电池”的设计理念,Go 标准库是该语言的一大核心优势,通常能够满足大部分需求。 Go 以其清晰、可靠、安全、高性能、简单的特点受到广大开发者的青睐。 在 Go 文化中,“stdlib 优先”是默认准则;引入第三方库主要是为了方便,而非出于必需。

不过,随着 Go 应用程序的使用范围不断扩大,其生态系统也在不断演进,一批可靠且推荐用于特定用例的工具相继涌现并被广泛采用。

主流 Web 框架和路由器

自 2020 年以来 Go 框架和 Go 路由器的受欢迎程度发生了哪些变化。

2025 年 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这类内置工具分析和衡量性能。

2025 年 Go 生态系统:框架、工具与开发者做法的主要趋势

(注:由于这是一个多选题,各数值的总和超过 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 库,这些库按应用领域进行了分组。

后端服务

  • 日志记录:

    • 对于追求尽可能减少依赖项数量的新建项目而言,log/slog(Go 1.21 及更高版本中由 stdlib 提供的结构化日志记录组件)无疑是最佳选择。

    • logrus是一款结构化日志记录库,对于必须支持 GO 1.21 以下版本的项目,推荐使用该库。 虽然目前处于维护模式,但它仍然稳定并被广泛使用。

    • 对于高性能日志记录,zap是热门之选,zerolog的热度稍低。

  • 数据库:

    • database/sql(stdlib) 针对 SQL(或类 SQL)数据库提供了通用接口。

      Ainative Git Workflow
      Ainative Git Workflow

      Git 提交、PR 与分支规范,对 AI 归属零容忍。适用于创建提交、编写提交信息、创建 Pull Request。

      下载
    • sqlx在 database/sql 的基础上增加了提升开发体验的增强功能。 它与驱动无关,特别适合使用多个数据库的用例。

    • pgx专为 Postgres 而设计,常因可以提供一流的 PostgreSQL 支持和性能而被使用。

    • GORM、ent等 ORM(对象关系映射器)可以帮助将 Go 结构体映射到数据库表,让您能够以更加面向对象或声明式方式使用数据库。 对于高度抽象的用例(迁移、架构建模等),推荐使用这些库。

  • 配置:

    • viper

    • cleanenv

  • 验证:

    • validator

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 和编辑器

2025 年 Go 生态系统:框架、工具与开发者做法的主要趋势

数据表明,由 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 编码助手、智能体和代码编辑器。

2025 年 Go 生态系统:框架、工具与开发者做法的主要趋势

(注: 这是一个多选题。 结果已进行筛选,仅包含已指明将 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 生态系统的未来展望

2025 年的 Go 生态系统仍然保持健康、稳定且成熟的发展态势。 该语言仍是后端、基础架构和云原生系统的首选。 Go 重视效率、安全性和简洁性,这可以确保其持续保持实用性,并为未来几年的进一步发展奠定良好的基础。

源码地址:点击下载

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

相关专题

更多
TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

292

2026.02.13

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

500

2026.02.25

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

351

2026.03.13

TypeScript 全栈开发进阶指南
TypeScript 全栈开发进阶指南

面向有 JavaScript 基础的开发者,深入讲解 TypeScript 的类型系统与全栈开发实践。

266

2026.06.03

TypeScript Node.js 全栈工程化与Monorepo架构实践
TypeScript Node.js 全栈工程化与Monorepo架构实践

本专题围绕 TypeScript 在 Node.js 全栈开发中的工程化实践展开,系统讲解 Monorepo 架构设计、包管理策略、模块复用机制以及服务端与前端统一类型系统的构建方法。通过真实项目案例,帮助开发者提升大型全栈项目的可维护性与协作效率。

538

2026.06.16

C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全

C++系统编程中的内存管理是指 对程序运行时内存的申请、使用和释放进行精细控制的机制,涵盖了栈、堆、静态区等不同区域,开发者需要通过new/delete、智能指针或内存池等方式管理动态内存,以避免内存泄漏、野指针等问题,确保程序高效稳定运行。它核心在于开发者对低层内存有完全控制权,带来灵活性,但也伴随高责任,是C++性能优化的关键。

86

2025.12.22

Rust异步编程与Tokio运行时实战
Rust异步编程与Tokio运行时实战

本专题聚焦 Rust 语言的异步编程模型,深入讲解 async/await 机制与 Tokio 运行时的核心原理。内容包括异步任务调度、Future 执行模型、并发安全、网络 IO 编程以及高并发场景下的性能优化。通过实战示例,帮助开发者使用 Rust 构建高性能、低延迟的后端服务与网络应用。

258

2026.02.11

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

602

2026.03.05

C++运算符基础入门
C++运算符基础入门

本专题详细讲解了C++运算符的类型、语法与使用方法,涵盖算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符及其他特殊运算符,并通过代码示例解析优先级与结合性。

0

2026.10.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn