周末愉快!简单聊聊这几天 Go 相关热点
2020-12-04 21:18:28 Author: mp.weixin.qq.com(查看原文) 阅读量:10 收藏

点击上方蓝色“polarisxu”关注我,设个星标,不会让你失望

周五了,你可能在回家路上或已经到家了。该文当快餐,快速浏览下。

01

第一个要说的,当然是 Kubernetes 官方发布公告,宣布自 v1.20 起放弃对 Docker 的支持,届时用户将收到 Docker 弃用警告,并需要改用其他容器运行时。

这被很多国内自媒体“标题”炒作了一番。其实弃用的主要原因是,Docker 不符合 Kubernetes 的容器运行时接口标准(CRI),官方需要额外维护一个名为 Dockershim 的中间件才能够把 Docker 当作 Kubernetes 的容器运行时来使用。

其实这件事也挺好理解。Docker 先于 K8S,K8S 寄托大火的 Docker,在容器编排引擎之争中击败了 Docker。现在 K8S 的火热程度远大于 Docker,而且其他相关的容器运行时不断出现,它们可能会主动支持 K8S,让 K8S 更喜欢。比如 K8S 官方建议用户使用符合 CRI 的 containerd 或 CRI-O 作为取代 Docker 的容器运行时。

不管 Docker 的未来如何,但它的贡献不应该被质疑,而且它构建的容器镜像是一大财富,也可以被 K8S 使用。

什么“之前白学了”,“慌了”。。。都是胡扯!我反倒是觉得,很多人根本没好好学 Docker。实际上 containerd[1]CRI-O[2] 都是 Go 实现的。

02

Go 1.15.6 和 Go 1.14.13 发布,这是两个小版本,主要是一些 Bug 修复。没有特别重要的 Bug,因此没必要特意升级。

如果要升级,可以使用我之前介绍的工具:goup,当然也可以使用你喜欢的方式。你也可以在 Go 语言中文网下载:https://studygolang.com/dl。

时不时有人问,为什么同时维护两个版本。我没有找到官方权威的说法(如果你知晓,麻烦留言给个链接,谢谢)。我觉得应该主要考虑一个新的大版本毕竟改动会比较多,很多人为了稳定性,线上不会升级,维护两个版本对很多人来说是友好的。理论上维护版本越多,用户越喜欢,但维护成本较大。这是一个折中的选择吧。所以,一般建议升级到最新版本,至少应该升级到比最新版本低一个版本,这样一些潜在问题,官方会修复。

03

Go 知名 IDE GoLand 发布了 2020.3。这个版本有哪些核心亮点?

调试器

  • 支持 Dump Goroutines;
  • 支持 Go Remote 配置;

测试

  • 支持表格测试;
  • 支持 Testify 这个测试库;

代码检查

  • 像函数代码检查一样,在 github.com/pkg/errors、github.com/sirupsen/logrus 和 go.uber.org/zap 等包中对 Println/Printf 的不正确使用能够警告提示;
  • context.CancelFunc 没有调用导致的 Context 的泄露能够检测到;

支持泛型试验

给一张图看看。

其他更多地新特性,可以访问 https://www.jetbrains.com/go/promo/whatsnew/ 查看,都有图可以直观查看。

有人可能要留言:VSCode 不香吗?!哈哈哈,都香,你喜欢就好。

04

tip 版本已经支持 Apple M1 了。

上篇文章说过,Go 1.16 会支持 Apple M1,即 GOOS=darwin,GOARCH=arm64。现在 tip 版本已经支持 M1 了。如果你买了,可以用 tip 版本写个 Hello World 试验下。

This CL lets the linker code-sign output binaries on darwin/arm64, as the kernel requires binaries must be signed in order to run.

This signature will likely be invalidated when we stamp the buildid after linking. We still do it in the linker, for

  • plain "go tool link" works.
  • the linker generates the LC_CODE_SIGNATURE load command with the right size and offset, so we don't need to update it when stamping the buildid.

具体见:https://github.com/golang/go/commit/6f84993e90e7076427c1bd0aaebe4e10b764194a

Bradfitz 说,苹果在 6月22日说,会给 Go 支持 Apple Silicon (arm64) 提交 patch,但到目前为止没看到,至少没有在邮件组中出现,他们没有在 https://tip.golang.org/CONTRIBUTORS 列表中。所有支持 Apple Silicon 的工作都是 Go 社区做的。

05

Gitea 1.13.0 发布[3]。很多人可能知道 gitee,不一定知道 Gitea。

Gitea 是一个从 Gogs Fork 出来的项目,一眨眼快 4 年了。他们搞了 Gitea Shop,卖 T 恤和卫衣,喜欢 Gitea 的可以支持下。不过想吐槽一句,图片上看,衣服上的 Logo 感觉怎么那么不搭呢,希望实物不是这样的。

06

周末快乐~

参考资料

[1]

containerd: https://github.com/containerd/containerd

[2]

CRI-O: https://github.com/cri-o/cri-o

[3]

Gitea 1.13.0 发布: https://blog.gitea.io/2020/12/gitea-1.13.0-is-released/


往期推荐

觉得不错,欢迎关注:

点个赞、在看和转发是最大的支持


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxNzY0NDE3NA==&mid=2247485456&idx=1&sn=f7d31e899e7fa216d3df94ead3eff474&chksm=9be327f1ac94aee78c3c683cf76eee95f3e4b050f42c14930e865f31740abcfac5bc982eaea1#rd
如有侵权请联系:admin#unsafe.sh