Go语言爱好者周刊:第 84 期 — 有人在写Go泛型图书了
这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[2] 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
由于微信公众号不支持外链,文章大量链接可通过文末「阅读原文」查看。
题图:Go is not easy language
刊首语
Go101 作者出的一道题,有点意思:
package main
func main() {
println(f(1))
}
func f(x int) (_, __ int) {
_, __ = x, x
return
}
A:0 0;B:0 1;C:1 1;D:1 0
谁在招 Gopher
整理近期的 Go 职位。有招聘需求可以到「Go招聘」发布!
资讯
1、GoMock 1.5.0 发布[3]
Go 官方的 Mock 框架。
2、go-ipfs 0.8.0 发布[4]
IPFS(InterPlanetary File System)是用于组织分布式文件系统的对等协议和网络。
3、scc 3.0 发布[5]
与 cloc,sloccount 和 tokei 类似的工具。用于计数许多编程语言中的代码行,空行,注释行和源代码的物理行。
4、gohugo v0.81.0 发布[6]
原生支持 apple m1。
5、新提案[7]
Go 1.17 在 go test 框架中原生增加对 fuzz test 的支持。
6、GoLand 2021.1 EAP 5 发布[8]
新的 Postfix 完成,内置的 goimports-本地支持,更好的 Go 1.16 支持等等。
7、有人计划写 Go 泛型图书了[9]
动作很快。
文章
1、从 go-chi 框架撤回所有主版本聊 Go1.16 的新特性
但 chi 作者还是妥协了,最近刚发布了 v5.0.0 版本[10]。
韩信点兵的成语来源淮安民间传说。常与多多益善搭配。寓意越多越好。
一个看似简单问题的思考过程
你觉得呢?
5、克制挺难的
Go 泛型会被乱用吗?
我们业务每天需要记录大量的日志数据,且这些数据十分重要,它们是公司收入结算的主要依据,也是数据分析部门主要得数据源,针对这么重要的日志,且高频率的日志,我们需要一个高性能且安全的日志组件,能保证每行日志格式完整性,我们设计了一个类 csv 的日志拼接组件
本文整理自 taowen 在滴滴内部的分享。
Go 获取随机数是开发中经常会用到的功能, 不过这个里面还是有一些坑存在的, 本文将完全剖析 Go math/rand, 让你轻松使用 Go Rand。
曹大的分享。
一起来深挖下 Go 在这块的奥妙,自己动手丰衣足食!
可以看看。
开源项目
1、Container-lang[11]
纯 Go 实现的编程语言。
2、FrodoKEM 的 Go 实现[12]
frodokem 是一个实用量子安全密钥封装。
3、gofp[13]
Javascript 的 lodash 函数库的 Go 移植。
4、dendrite[14]
用 Go 编写的第二代 Matrix 家庭服务器。
5、gostruct[15]
运行时动态构建结构体类型示例。
6、kure[16]
终端命令行形式的密钥管理器。
7、deferfuzz[17]
用于对 Go defer/panic/recover 进行 fuzztest。
8、seof[18]
golang os.File 的加密替换文件,存储的文件将具有 768 位加密。
9、iouring-go[19]
基于 Linux 5.1 新增的异步接口 io_uring ,结合 golang 的异步机制实现的易用的异步 IO 框架。作者自荐[20]。
资源&&工具
1、mubeng[21]
高性能代理检查器和 IP 旋转器。
2、germanium[22]
将源码转换为图片的命令行工具。
3、油管视频[23]
详解 Go 指针。
4、Go 博客第 168 期:那些不该加入 Go 的提案[24]
分两部分,第一部分在这里[25]。
5、lgo[26]
Jupyter 交互的 Go 编程。
6、cogs[27]
Go 实现配置管理 cli。
7、transfer.sh[28]
从命令行轻松快速地共享文件。
8、go-mysql-transfer[29]
一款MySQL数据库实时增量同步工具。能够监听MySQL二进制日志(Binlog)的变动,将变更内容形成指定格式的消息,实时发送到接收端。从而在数据库和接收端之间形成一个高性能、低延迟的增量数据同步更新管道。作者自荐[30]。
订阅
这个周刊每周日发布,同步更新在Go语言中文网[31]和微信公众号[32]。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。
上期推荐
参考资料
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]GoMock 1.5.0 发布: https://github.com/golang/mock
[4]go-ipfs 0.8.0 发布: https://github.com/ipfs/go-ipfs
[5]scc 3.0 发布: https://github.com/boyter/scc
[6]gohugo v0.81.0 发布: https://gohugo.io/news/0.81.0-relnotes/
[7]新提案: https://github.com/golang/go/issues/44551
[8]GoLand 2021.1 EAP 5 发布: https://blog.jetbrains.com/go/2021/02/26/goland-2021-1-eap-5/
[9]有人计划写 Go 泛型图书了: https://leanpub.com/generic-golang
[10]v5.0.0 版本: https://github.com/go-chi/chi/releases/tag/v5.0.0
[11]Container-lang: https://github.com/odddollar/Container-lang
[12]FrodoKEM 的 Go 实现: https://github.com/kuking/go-frodokem
[13]gofp: https://github.com/rbrahul/gofp
[14]dendrite: https://github.com/matrix-org/dendrite
[15]gostruct: https://github.com/itsubaki/gostruct
[16]kure: https://github.com/GGP1/kure
[17]deferfuzz: https://github.com/mdempsky/deferfuzz
[18]seof: https://github.com/kuking/seof
[19]iouring-go: https://github.com/Iceber/iouring-go
[20]作者自荐: https://github.com/polaris1119/golangweekly/issues/32
[21]mubeng: https://github.com/kitabisa/mubeng
[22]germanium: https://github.com/matsuyoshi30/germanium
[23]油管视频: https://www.youtube.com/watch?v=sTFJtxJXkaY
[24]Go 博客第 168 期:那些不该加入 Go 的提案: https://changelog.com/gotime/168
[25]在这里: https://changelog.com/gotime/166
[26]lgo: https://github.com/yunabe/lgo
[27]cogs: https://github.com/Bestowinc/cogs
[28]transfer.sh: https://github.com/dutchcoders/transfer.sh
[29]go-mysql-transfer: https://github.com/wj596/go-mysql-transfer
[30]作者自荐: https://github.com/polaris1119/golangweekly/issues/31
[31]Go语言中文网: https://studygolang.com/go/weekly
[32]微信公众号: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91