关注你所关注的 - 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)可能会失败。

相关内容

热门资讯

廖杰远:三大智能体协同闭环,A... 中国日报网7月24日电 7月22日,在2026年世界互联网大会数字丝路发展论坛数智健康分论坛上,微医...
AI时代构筑超级底座 维谛技术... 文/本报记者 当前,人工智能产业竞争持续向产业链上游延伸,算力竞争早已不再局限于计算芯片性能比拼。具...
刚签核协议不到24小时,美国突... 美国东部时间7月22日下午,美国宣布与沙特阿拉伯签署了一项民用核能协议。据美国有线电视新闻网(CNN...
中国信通院牵头,数据编织国际标... IT之家 7 月 24 日消息,中国信通院今日发文称,国际电信联盟第 21 研究组(ITU-T SG...
国内首颗商业空间碎片监测卫星发... 【国内首颗商业空间碎片监测卫星发射成功】《科创板日报》24日讯,7月24日上午,中科宇航力箭一号运载...
邓煜,诗人,数学家,老二次元 来源 视觉中国菲尔兹奖的通知邮件抵达时,普林斯顿大学数学博士、芝加哥大学数学系教授邓煜正在看一本恋爱...
安全生产许可证状态不是“有效”... 工程公司的安全生产许可证在官方系统显示为“其他”状态,有一栏则显示“整改”,却成为高标准农田项目的第...
深化产教融合 推进数智育人 哈... 7月23日,由阿里国际人工智能人才孵化中心(以下简称“阿里国际AITIC”)主办的“智启未来·数智赋...
中国工程院举办学习陈立泉、贲德... 北京7月24日电 (记者 孙自法)中国工程院7月24日在北京举办学习陈立泉、贲德院士科学家精神座谈会...
从成都看低空经济,专访杨军:万... 电子科技大学教授、深思实验室主任杨军接受封面新闻记者专访 封面新闻记者 王一理 摄影 陈光旭 近年来...