Go语言爱好者周刊:第 86 期 — 这道题考察什么?
共 3472字,需浏览 7分钟
·
2021-03-18 22:19
这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[2] 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
由于微信公众号不支持外链,文中大量链接可通过文末「阅读原文」查看。
题图:Go 官方 2020 年开发者调查报告。报告详细内容可以阅读翻译版:Go 官方 2020 年开发者调查报告。
刊首语
以下程序输出什么?
package main
import (
"fmt"
)
func main() {
ch := 'b'
fmt.Println(ch/2.0)
}
你知道为什么吗?
谁在招 Gopher
整理近期的 Go 职位。有招聘需求可以到「Go招聘」发布!
资讯
1、Go1.16.2 和 Go1.16.1 发布[3]
参考:快一个月,Go1.16 才发现了比较严重的 Bug,但这个 Bug 有点 Low。。。,以及文章 为什么 Go1.16.1 发布的第二天又发布 1.16.2?。
2、pixelizer 2.0 发布[4]
高效的图片素化器。
3、TinyGo 0.17.0 发布[5]
适用于嵌入式。
4、vscode-go 将 staticcheck 作为默认 lint 工具[6]
目前默认是 golint。
5、图书《Go 语言编程之旅》开源[7]
我和煎鱼写的图书,免费让大家阅读。感谢支持!
6、Go 文档和代码阅读神器 Golds 已更新到 0.2.x 版本了
Go101 作者出品。
Kubernetes 在生产环境中的采用率越来越高,复杂度越来越高,由此带来的稳定性保障的挑战越来越大。
文章
死锁是当 Goroutine 被阻塞而无法解除阻塞时产生的一种状态。Go 提供了一个死锁检测器,可以帮助开发人员避免陷入这种情况。
无闻是怎么学习 Go 的?
不喜欢你可以选择不用。
最大的惊喜是当我们得知 Go 被用于编写恶意软件时。您无法控制谁将使用您的作品或他们将如何使用它。
5、Go 中定时器实现原理及源码解析[8]
本文使用的 Go 的源码 15.7,需要注意的是由于 timer 是 1.14 版本进行改版,但是 1.14 和 1.15 版本的 timer 并无很大区别。
随着业务变迁,即刻后端服务内积累了大量的陈旧代码,维护成本较高,代码重构甚至重写被提上了日程。相比起 Node.js ,Golang 有着一定的优点。由于即刻后端已经较好地服务化了,其他业务在 Go 上也有了一定的实践,直接使用 Go 重写部分即刻服务是一个可行的选择。在此过程中我们可以验证在同一个业务上两种语言的差异,并且可以完善 Go 相关的配套设施。
开源项目
1、netaddr[9]
一个更好的 IP 地址类型。
2、authelia[10]
一个开源的认证和授权服务器,为你的其他应用程序提供 2FA 和 SSO。
3、marcel[11]
一个以原始 MIME 格式生成符合 IETF 的电子邮件的库。
4、fsql[12]
使用类似 sql 的查询搜索文件系统。
5、goovus[13]
Go 包/module vanity url 服务器。
6、pg[14]
Go ORM库,专注于 PostgreSQL 的特性和性能。
7、kglb[15]
dropbox 开源的用 Go 开发的基于 ip_vs 的四层负载均衡器。
8、cosign[16]
为镜像库中的容器签名,验证和存储,sigstore子项目。
资源&&工具
1、gopherdoc[17]
带语法高亮的 go doc。
2、ego-demo[18]
如何用 Go 为 envoy 构建一个 Filter。
3、paper[19]
自动检测和修复 Go 软件系统中的并发性错误。
4、grmon[20]
goroutine 的命令行监控工具。
5、fstabfmt[21]
格式化 /etc/fstab。
订阅
这个周刊每周日发布,同步更新在Go语言中文网[22]和微信公众号[23]。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。
往期推荐
参考资料
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]Go1.16.2 和 Go1.16.1 发布: https://studygolang.com/dl
[4]pixelizer 2.0 发布: https://github.com/eleby/pixelizer
[5]TinyGo 0.17.0 发布: https://github.com/tinygo-org/tinygo/releases/tag/v0.17.0
[6]vscode-go 将 staticcheck 作为默认 lint 工具: https://github.com/golang/vscode-go/commit/fd0328225d16ecc97e09e72c8c354cf106928984
[7]图书《Go 语言编程之旅》开源: https://golang2.eddycjy.com/
[8]Go 中定时器实现原理及源码解析: https://www.luozhiyun.com/archives/458
[9]netaddr: https://github.com/inetaf/netaddr
[10]authelia: https://github.com/authelia/authelia
[11]marcel: https://github.com/davidbanham/marcel
[12]fsql: https://github.com/kashav/fsql
[13]goovus: https://github.com/nofeaturesonlybugs/goovus
[14]pg: https://github.com/go-pg/pg
[15]kglb: https://github.com/dropbox/kglb
[16]cosign: https://github.com/sigstore/cosign
[17]gopherdoc: https://github.com/ravener/gopherdoc
[18]ego-demo: https://github.com/myteksi/ego-demo
[19]paper: https://songlh.github.io/paper/gcatch.pdf
[20]grmon: https://github.com/bcicen/grmon
[21]fstabfmt: https://github.com/xyproto/fstabfmt
[22]Go语言中文网: https://studygolang.com/go/weekly
[23]微信公众号: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91