Go

分享:

这些问题仅向选择 Go 作为其三种主要编程语言之一的受访者显示。

您如何使用 Go?

64%
61%

工作

28%
28%

个人/编外项目

7%
8%

爱好

2%
3%

其他

您是否同时使用多个版本的 Go?

68%

77%

32%

23%

去年以来,同时使用多个 Go 版本的开发者数量有所增加。

您是否同时编辑多个 Go 项目?

只有大约三分之一的 Go 开发者一次处理一个项目,其余开发者均同时处理多个项目。

您使用哪种模板引擎进行 Go 开发?

25%

html/模板

16%

文本/模板

3%

Pongo2

1%

Plush

1%

其他

65%

您经常使用哪种(哪些)软件包管理器?

87%

86%

Go Modules

6%

5%

govendor

3%

4%

godep

3%

2%

gom

2%

5%

dep

Go Modules 仍然是最受欢迎的软件包管理器,其他部分软件包管理器(例如 godep 和 dep)的人气有所下降。

您是否使用 gopls?

仅当受访者对“您最常使用哪款 IDE/编辑器进行 Go 开发?”选择“Visual Studio Code”、“Vim”、“Sublime Text”时,才会向其提出此问题。

您对 gopls 体验的总体满意度如何?

30%

非常满意

45%

满意

22%

不置可否

3%

不满意

仅当受访者对“您是否使用 gopls?”选择“是”时,才会向其提出此问题。

您在单个项目中将哪种(哪些)语言与 Go 一起使用?

34%

JavaScript

28%

Python

26%

TypeScript

7%

C

7%

C++

8%

其他

15%

Go 开发者在单个项目中最常将 JavaScript、Python 和 TypeScript 作为与 Go 一起使用的语言。同时,15% 的受访者专门使用 Go 开发项目,不使用其他语言。

框架和标准库

46%

Gin

44%

net/http

11%

Echo

6%

Beego

2%

Buffalo

1%

Revel

10%

其他

21%

您使用什么类型的 Go 模块代理?

51%

53%

我不使用代理

23%

27%

公共 goproxy.io/goproxy.cn

21%

18%

公共 proxy.golang.org

12%

8%

私有 goproxy

4%

2%

私有 JFrog Artifactory

使用私有 Go 模块代理的 Go 开发者数量有所增加。

您在项目中是否使用 vendoring?

2022 年

2021 年

在 Go 项目中使用 vendoring 的受访者比例正在变得越来越小,从事 Go 模块项目的人除外。在后一种情况下,有更多开发者正在使用 vendoring。

您经常使用哪种 Go 路由器?

41%

34%

标准库

30%

35%

gorilla/mux

9%

10%

go-chi/chi

5%

7%

julienschmidt/httproute

2%

1%

go-zoo/bone

标准库是使用最广泛的 Go 路由器,并且人气仍在上升。在其他 Go 路由器中,gorilla/mux 的人气有所下降。

您经常使用哪种(哪些)测试框架?

41%

内置测试

23%

testify

19%

我不为 Go 编写单元测试

17%

我编写单元测试,但不使用任何框架

15%

gomock

6%

ginkgo

4%

gomega

大约五分之一的 Go 开发者不为 Go 编写单元测试。另外 17% 编写单元测试,但不使用框架。

您的项目中有多少个外部依赖项?

18%

少于 5 个

49%

5-20 个

23%

超过 20 个

10%

不确定

您在 IDE/编辑器中使用的代码库有多大?

27%

少于 50 个文件

25%

51-100 个文件

16%

101-300 个文件

13%

301-1000 个文件

7%

1001-5000 个文件

3%

5001-10000 个文件

3%

超过 10000 个文件

6%

不确定

Go 开发者的项目不是很大。在刚刚过半的 Go 开发者中,它们包含最多 100 个文件。

您将 Go 模块项目置于 GOPATH 内部还是外部?

您是否计划在未来 12 个月内将项目迁移到 Go 模块?

67%

54%

33%

46%

该问题仅向回答“您经常使用哪种(哪些)软件包管理器?”时没有选择“Go Modules”的受访者显示。

与去年相比,打算在未来 12 个月内迁移到 Go 模块的 Go 开发者有所减少。这个软件包管理器非常受欢迎,但其增长可能正在达到极限。计划继续使用其他软件包管理器的开发者数量正在增长。

您经常使用哪种(哪些)构建系统?

83%

Go build

37%

Makefile

9%

Gradle

5%

Bazel

1%

其他

该问题仅向回答“您经常使用哪种(哪些)软件包管理器?”时选择“Go Modules”的受访者显示。

感谢您的参与!

我们真诚地希望您能发现我们的报告有用。与您的朋友和同事分享这份报告。

如果您有任何疑问或建议,请发送电子邮件至 surveys@jetbrains.com