新闻中心

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

2025-12-13
浏览次数:
返回列表

今年是 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 框架和路由器

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

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

(注:由于这是一个多选题,各数值的总和超过 100%。)

net/http 软件包属于标准库路由器,是 Go 开发者最常选择的路由工具。 它性能稳定,且不依赖任何依赖项。

近年来,chi 一直是构建 Go HTTP 服务的热门替代方案。 自 2025 年以来,其使用率小幅增长,目前约有 12% 的开发者选择使用。 chi 是一款符合 Go 语言习惯的轻量级路由器,完全兼容 net/http,文档详尽且得到积极维护。

曾经最常用且功能强大的 HTTP 路由器 gorilla/mux已于 2025 年归档。 自那时起,许多项目已迁移到chi或标准库,特别是Go 1.22在 http.ServeMux 中引入模式路由之后。 据报告,截至 2025 年,17% 的 Go 开发者会经常使用 gorilla/mux,这一数字较 2025 年的 36% 有所下降。 由于遗留项目的存在,它仍占有不小的比例,但预计未来这一数字会进一步下降。

2025 年最热门的 Go Web 框架是Gin、Echo 和 Fiber

Gin的使用率稳步增长,2025 年已有近半数 (48%) 的 Go 开发者在使用它,而 2025 年这一数字为 41%。 虽然 Go 没有具体的“最佳”Web 框架,但 Gin 作为速度最快、最成熟、最受推荐的选项稳居第一梯队。

2025 年推出的Fiber侧重于速度和简洁性,它同样赢得了大家的青睐。 现在有 11% 的 Go 开发者在使用 Fiber,这一数字接近Echo的使用率 (16%),且超过了热度持续下降的Beego(4%)。

测试框架和性能工具

Go 拥有深厚的测试与基准测试文化,这源于其设计理念,即测试应简洁、一致,并且应当是日常开发的一部分,而非事后补救措施。 这一理念体现在语言本身:标准库包含testing软件包,该软件包支持单元测试、基准测试、示例测试和模糊测试。Go 开发者应使用pprof这类内置工具分析和衡量性能。

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

(注:由于这是一个多选题,各数值的总和超过 100%。)

使用数据印证了这一理念 – 对于编写单元测试的 Go 开发者而言,内置的testing软件包仍是开发者的首选。 但是,对于规模较大的项目或企业级项目,其功能通常难以满足需求,这一不足推动了testify和gomock这类框架和库自 2025 年以来的发展。

Testify扩展了标准测试软件包,提高了测试的清晰性和可读性。 它适用于大部分项目,目前有 27% 的开发者在使用。

gomock针对模拟接口和外部服务而设计,约有 21% 的 Go 开发者在使用。

其他几个 Go 测试框架的使用范围虽然较小,但在特定用例中很有价值。Ginkgo通常与Gomega搭配使用,提供富有表现力的匹配器,可以在行为驱动测试中带来出色表现。 由于这类工具的设置更加复杂,通常只有大型或复杂的测试套件才会选用。 自 2025 年起,Ginkgo 的使用率一直稳定保持在 5% 左右。

Godog是另一款 BDD 框架,支持使用人类可读的 Gherkin 语法编写测试,并且可以将测试关联到 Go 代码。 Godog 最适合帮助开发者与 QA 和产品团队达成一致意见,而非用于底层单元测试。 Godog 虽然不是新推出的框架,但自 2025 年起由Cucumber GitHub 组织进行积极维护以来,其采用率在逐步提升,2025 年,约有 4% 的 Go 开发者在使用。

热门开源库

以下是 2025 年使用范围最广的开源 Go 库,这些库按应用领域进行了分组。

后端服务

  • 日志记录:

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

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

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

  • 数据库:

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

      OpenAI Codex OpenAI Codex

      可以生成十多种编程语言的工作代码,基于 OpenAI GPT-3 的自然语言处理模型

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

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

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

  • 配置:

    • viper

    • cleanenv

  • 验证:

    • validator

CLI 应用程序

  • cobra是构建 Go CLI 应用程序时使用最广泛的库,可以提供命令、标志和自动帮助。 它非常适合包含多个子命令的复杂 CLI(如开发者工具、自动化脚本和管理实用程序),许多主流 Go 工具(如kubectl或helm)都在使用它。

  • urf*e/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 于 2025 年停用后,其核心贡献者推出了 Zed – 一款使用 Rust 编写的开源、高性能编辑器。 用于 Go 开发的其他编辑器的占比基本保持不变,且占比极低。

最显著的变化与 LLM 的迅速崛起以及对 AI 编程助手的需求不断增长相关。 2025 年,6% 的 Go 开发者将 Cursor(2025 年推出的一款基于 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 重视效率、安全性和简洁性,这可以确保其持续保持实用性,并为未来几年的进一步发展奠定良好的基础。

源码地址:点击下载

以上就是2025 年 Go 生态系统:框架、工具与开发者做法的主要趋势的详细内容,更多请关注其它相关文章!


# 软件包  # 广州网站建设公司文案  # 黑帽seo 行业推广  # 网站建设boss都知道  # 网站建设不规范包括什么  # 衢州seo排名免费咨询  # 抖音营销推广优势  # 虹口营销推广企业排名  # 怎么定制网站推广  # 孝感网站建设网站优化  # 大连自考网站建设需要  # 这是一个  # 多个  # 约有  # 仍是  # 开源  # python  # 编辑器  # 生态系统  # 这一  #   # 工具  # 编程语言  # 路由器  # 编码  # golang  # github  # idea  # typescript  # go  # git 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Python多线程中正确使用sigwait处理SIGALRM信号  C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器  淘宝网网页版登录入口 淘宝官方网页版快捷登录  如何将HTML表格多行数据保存到Google Sheet  在Blazor WebAssembly应用中动态注入客户端特定指标代码的策略  Win11 USB传输速度慢怎么解决 Win11 USB驱动更新与设置  React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性  c++20的std::jthread是什么_c++可中断线程与RAII式管理  Node.js中HTML按钮与J*aScript函数交互的正确姿势  Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换  CSS图片焦点样式实现教程:理解与应用tabindex属性  生成rdflib自定义SPARQL函数:参数匹配与实践指南  sublime怎么设置启动时打开的窗口_sublime会话管理与热退出  如何在 Excel Online 和 Google 表格中更改日期格式  如何在Python中使用Optional类型处理可变对象并避免Pylint警告  C++如何实现线程池_C++11手动实现一个简单的固定大小线程池  海棠电脑版入口_通过电脑访问海棠官网阅读  QQ邮箱官方登录入口_QQ邮箱网页版快捷使用平台  Vue.js 图片显示异常排查:理解应用挂载范围与DOM ID唯一性  高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】  UC浏览器官网入口2025最新 UC浏览器网页版正式地址  解决深度学习模型训练初期异常高损失与完美验证准确率问题  解决macOS上安装pyhdf时‘hdf.h’文件缺失的编译错误  知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法  css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间  Python异步编程实践:使用Binance API构建实时交易数据流  在哪找SublimeJ远程工具_SFTP插件配置教程  中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】  三星GalaxyZFold5怎样在相册制作折叠屏分镜_iPhone三星GalaxyZFold5相册制作折叠屏分镜【创意编辑】  神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正  PyTorch模型训练效果不佳?深入剖析常见错误与调试技巧  如何为你的Composer包编写自动化测试_集成PHPUnit到Composer的scripts工作流  J*aScript中针对特定容器内图片动画的实现教程  KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程  响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配  uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验  Excel文件在线转换快速入口 Excel在线格式转换网站  Angular中单选按钮的正确使用与常见陷阱解析  如何修改开机登录密码_Windows账户安全设置超详细教程【必学】  Django表单提交验证失败后保持字段值不刷新  汽车之家官方网站官网入口_汽车之家网页版直接进入  mc.js免安装版 mc.js一键畅玩入口  React Hooks最佳实践:动态组件状态管理的组件化方案  Go语言中Map存储的结构体如何调用指针方法:深入解析与实践  Golang并发任务中错误如何聚合_Golang goroutine error收集方式  HTML长属性值处理:表单action路径优化与代码规范应对  Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求  微博网页版官方账号登录 微博网页版内容浏览使用指南  sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程  Node.js CSV 数据处理:基于字段值条件过滤整条记录的策略 

搜索