关注你所关注的 - Golang社区调研报告
admin
2023-02-16 10:20:02
0次

Golang语言可以说现在炙手可热,大家熟悉的Kubernates 就是使用Golang开发的。
我们在最近于伦敦和圣地亚哥举行的GopherCon大会上调查了1000多名开发者,以更好地了解Go 开发社区和对Go Module的总体看法。随着最近发布的Go 1.13版本,现在是向社区分享一些有趣数据的好时机。

BTW, 在JFrog,我们也是Go开发者(JFrog CLI和Xray都是用Go编写的)。 同时也是GoLang社区的贡献者, 并为社区维护贡献了公共注册中心 Gocenter(goproxy) https://gocenter.io/. 加速Golang语言开发人员构建速度。

以下是我们学到的一些关键的东西:

Go开发人员是高度投入的
绝大多数的Go开发者都在使用最新版本的GoLang。超过70%的受访者表示使用的是最新版本的Go 1.12。
同样值得注意的是,超过82%的Golang开发者使用的是1.11或更新的版本,因此能够使用Go Module。只有一小部分报告使用了Go的早期版本。
关注你所关注的 - Golang社区调研报告

几乎同样多的使用最新版本的Go开发人员也报告在他们的组织中采用了Go Module。也有相当多的人希望尽快使用Go Module,这样到2020年中期,其使用率将上升到至少80%,并可能接近100%。
关注你所关注的 - Golang社区调研报告

GoLang被广泛应用于各个行业
虽然Go开发应用于广泛的计算领域,但DevOps仅排在Web开发之后,有近五分之一的报告称他们使用Go来实现这些目的。系统、数据库和网络应用程序的得分也很高,这表明在移动和嵌入式设备等有前途的领域还有很大的增长空间。
关注你所关注的 - Golang社区调研报告

选择Go Module很难
当开发人员选择开源组件时,他们倾向于追求安全性和质量。但在如何判断 Go Module的风险方面,几乎没有共识。
大多数报告显示人们偏好用他人使用最多的包,以及流行度所带来的保证。同时安全漏洞也是一个问题,开发人员如何确定一个包的风险在各种各样的条件下是不同的,如内网环境和外网环境同一个漏洞的处理可能是不一样的。
关注你所关注的 - Golang社区调研报告

如何更好更快的选择Go Module
由于开发人员在选择越来越多的Go模块时遇到了困难,GoCenter通过交互搜索帮助用户发现。一旦你有了结果,GoCenter会提供你需要的所有信息来决定哪些模块最适合你的需求,包括活动和星级。我们也正在开发一个系统,根据选择的标准来给模块打分,这将更好的帮助Golang开发人员更快的选择到合适的模块。
关注你所关注的 - Golang社区调研报告

GoCenter
我们感谢所有对我们GoLang调查做出回应的开发者。我们从中获得的信息将帮助我们帮助您,特别是在我们继续使GoCenter成为帮助采用Go Module的有用工具的情况下。

如果您还没有听说过GoCenter,那么它提供了不可变的、版本化的模块的中心源,这些模块直接从公共源存储库中的Go项目进行处理和验证。在众多好处中,使用GoCenter可以加快GoLang应用程序的构建时间。

GoCenter现在托管了超过260,000个版本化的Go Module,这些模块可以免费提供给Go开发者社区。

GoCenter与Golang 1.13的最佳实践

  1. 使用Gocenter 作为Goproxy
    在Golang 1.13中,Go Module的支持在默认情况下是启用的。尽管Go客户端的新安装会自动设置一个默认的google托管代理,在国内你可以覆盖它并使用你选择的Go Module代理,比如GoCenter。

要使用GoCenter作为版本化go模块的代理,请将GOPROXY环境变量设置为GoCenter URL:
关注你所关注的 - Golang社区调研报告

Golang 1.13中的新特性允许您在GOPROXY中指定由逗号分隔的多个代理,以及直接从源代码下载模块的Direct 模式(这种模式的场景是goproxy中没有对应模块或版本是会返回404)。但是GoCenter目前支持了自动包含特性,意味着您在使用GoCenter进行代理时不需要使用这些Direct模式,当gocenter中目前没有缓存对用组件时,会自动触发到源码库中自动拉取对应组件以及版本。
https://github.com/jfrog/gocenter/blob/master/releases.md#2019-march-27-enhanced-automatic-inclusion-of-go-modules

  1. 校验和(checksum)数据库支持
    从Golang的1.13版开始,go get通过谷歌在sum.golang.org上维护的一个可审计的校验和数据库来执行模块的身份验证。版本1.13会使用GOSUMDB环境变量中默认设置这个校验和的DB URL。
    GoCenter已经通过代理sum.golang.org帮助我们加速构建。如果你的GOPROXY设置为GoCenter,你不需要改变任何东西-你已经通过GoCenter验证你的模块了!

  2. 私有Go Module 仓库
    GoCenter用于代理通过公共源存储库(如Github)共享的Go Module。Golang 1.13还引入了一些环境变量,特别是GOPRIVATE,用于绕过代理和校验和验证,从私有存储库下载模块版本, 此场景比较适合企业内部有大量自研发Go Module。您可以在Golang文档中了解如何使用它们。

  3. 版本验证
    在1.13版本中,为Go Module使用正确的后缀非常重要。go命令现在对请求的版本字符串执行额外的验证,如果模块不符合语义导入版本控制,go get将失败。因此,在Golang 1.13之前加载的模块的伪版本(pseudo version)可能会失败。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...