Skip to content
On this page

Go语言爱好者周刊:第 28 期

这里记录每周值得分享的 Go 语言相关内容,周日发布。

本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue

鉴于大部分人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。

题图:疫情之下,奉献爱心;20200202 献给有爱的你。图片来自网络

刊首语

今天是全国延长春节假期的最后一天,明天起,大部分人应该都开始在家上班了吧。疫情严峻,大家注意个人防护,尽量别出门,祝福大家平安!

今天还是 20200202,一个对称的日子,据说挺多人准备今天领证,结果因为疫情的原因,大部分民政局不开门,大家都多理解吧。今天日子特别,网友为广大想表白的想好了内容,拿走不谢,发给你的那个他(她)吧!

今天是个特殊的日子,

20200202,倒过来念也是;

我想对你说:

你是爱的中心。倒过来念也是;

你是年少的欢喜。倒过来念也是;

我爱你。多么希望,倒过来念也是。

资讯

1、Go 1.15 的提案

已经临近 Go1.14 发布了,计划在 2 月份发布,RC1 候选版本已经准备好了。根据 Go 2, here we come! 这篇文章描述的过程,这到了我们开发和发布周期考虑的时候,我们是否希望在下一个版本中(Go1.15)增加语言和库的更改,并计划于今年 8 月份发布。

2、Go 核心团队成员 Brad Fitzpatrick 离开了 Google

熟悉 Go 的朋友应该知晓 Brad Fitzpatrick,他是 Go 核心团队成员(他编写了HTTP/2实现),同时是 Memcached 的作者。他表示“会继续在 Go 社区,但时间会少些,而且参与方式有所不同。” 离开24小时后,他对失业感到无聊,现在加入了 Tailscale。

3、Micro v2.0.0 发布

我们很高兴地宣布 Micro 和 Go Micro v2 的发布!提供分布式系统开发所需的核心功能。对于默认版本,我们采用 gRPC 和嵌入式 NATS 对我们来说是一个重要的里程碑。

4、Go1.13.7 和 Go1.12.16 发布

这是小版本,是安全性发行版,涵盖 Windows 10 证书验证绕过和 /x/crypto/cryptobyte 的格式错误的输入,可能会引起 panic。

5、Hugo 0.63.1 发布,Go 编写的静态网站生成器

这是一个 bug 修复版本,其中包含几个重要的修复程序。

文章

1、我们应该怎么样编写 Go 语言库,有哪些标准可以参考?

每一个库都存在一些基本问题以至于它们在真实场景中不可用。并且每个库都以这样一种方式编写:不以非向后兼容的方式修改现有库的 API,这样是不可能修复问题的。不幸的是,由于很多其他的库也存在同样的问题,所以我会在下面列出一些作者错误的地方。

2、Go 语言 <-time.After() 在计时器过期前不会被垃圾回收

最近我在调查 Go 应用程序中内存泄漏的问题,这个问题主要因为我没有正确的阅读文档。

3、系统全面掌握 Go 语言的 Map

本文是三篇系列文章中的第一篇。每篇文章都将涵盖 map 的不同部分。我建议你按顺序阅读。

4、Docker 核心技术与实现原理

提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的生产环境中大规模使用,也不再是一个只能在开发阶段使用的玩具了。

5、Golang package sync 剖析系列

Go语言在设计上对同步(Synchronization,数据同步和线程同步)提供大量的支持,比如 goroutine和channel同步原语,库层面有:

6、学习 Go 编程的十大在线资源及新手如何学习 Go 语言

学习任何东西,基础都很重要。基础就好比建筑的地基,只有地基牢固了,才能建成高楼大厦。学习编程语言亦是如此。很多人喜欢一上来就学习各种框架,其实那些框架对你来说都是工具,你自己的基础好,懂得了它们的原理,自己也有能力创造更优秀的框架。

7、五分钟用Docker快速搭建Go开发环境

怎么用 Docker 快速搭建 Go 语言项目的开发环境。

8、Golang 服务大量 CLOSE_WAIT 故障排查

让系统运行的健康状态透明化才是发现问题的最有效手段,代码不出问题不现实。

9、Go 程序性能分析 101

本文来自 GopherCon 2019 的一个演讲,首先从一个计算文本字数的 go 程序与 wc 对比,通过 profile CPU 与内存逐步优化性能,涉及 Go 的并发模型及逃逸分析。然后由一个绘制曼德勃罗分形图的程序,讨论并发程序的执行追踪(trace)及并发程序能带来的性能提升的边界。

10、asynq:一个由 Go 开发的轻量级的异步定时任务系统

最近开发了一个Go的简单高效的异步任务处理库:Asyqn

开源项目

1、k6

使用 Go 和 JavaScript 的现代负载测试工具。

2、ko

编译和部署 Go 应用到 Kubernetes 上的工具。0.2.0 发布。

3、fabio

fabio 是一种快速,现代化的零配置负载平衡 HTTP(S) 和 TCP 路由器,用于部署由 consul 管理的应用程序。

4、rain

Go 语言实现的 BitTorrent 客户端和库。

5、bed

用 Go 编写的二进制编辑器。

6、klum

Kubernetes user 管理器。

7、stern

支持 tail k8s 上的多个 Pod 以及 Pod 中的多个容器。

8、vim-man

一个基于终端的游戏,教你如何使用 Vim。

9、hermes

Go 版本的 mailgen 引擎。

10、noise

Go 实现的分布式 P2P 网络协议栈。

11、sandy

一个用于运行不可信代码的沙箱。

12、readline

GNU-Readline 类库的实现。

13、解放数据库查询, 写一个 go 的查询构造器

ORM 还是直接 SQL?

14、为什么 Go 语言没有泛型

Go 是一门语法元素少、设计简单的编程语言,简单的设计往往意味着较弱的表达能力,工程师也需要使用更多时间编写重复的逻辑。Go 语言从发布到今天已经过去了 10 多年,向 Go 语言添加泛型的讨论也从 2010 年一直持续到今天。

资源&&工具

1、微软出品 ApplicationInspector

一个源代码分析器,用于通过使用基于json的规则引擎的静态分析来显示感兴趣的特征和其他特征,以回答问题“其中是什么”。非常适合在使用前扫描组件或检测功能级别变化。

2、naabu

在主机/主机列表上进行快速 SYN 扫描,并列出所有返回回复的端口。小心使用或仅研究其代码。

3、Go Time 第 115 期:探讨 Go.dev

据说 Go 官方要停止 godoc.org,全面转移到 go.dev(用 pkg.go.dev 替代 godoc.org),社区反对强烈,你怎么看?官方博文:pkg.go.dev 的后续动作

4、Go GUI 项目列表

看着 GUI 项目很多,但有哪个是很成熟的?

5、Go Time 第 114 期:大单体架构才是未来

你认可吗?

6、视频:Go 十年回顾与反思

需要解决上网问题。

订阅

这个周刊每周日发布,同步更新在Go语言中文网微信公众号今日头条

微信搜索"Go语言中文网"或者扫描二维码,即可订阅。

wechat

Released under the MIT License.