这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[2] 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
由于微信公众号不支持外链,文中大量链接可通过文末「阅读原文」查看。
题图:Go 打字速度测试仪
上期的题目主要考察数组的比较。
package mainimport "fmt"
func main() {
type pos [2]int
a := pos{4, 5}
b := pos{4, 5}
fmt.Println(a == b)
}
A:true;B:false;C:编译错误
数组是值类型,长度相等,每个元素也相等,数组就相等。所以,正确答案是 A。该题正确率 45%,还是不高。
看本期的题目。以下代码输什么?
package mainimport (
"fmt"
)
func main() {
var nums1 []interface{}
nums2 := []int{1, 3, 4}
nums3 := append(nums1, nums2)
fmt.Println(len(nums3))
}
1、sonic 1.3 发布[3]
字节开源的高性能 json 编解码库。
2、kratos 2.3 发布[4]
B 站开源的 Go 微服务框架。
3、immudb 1.3.0[5]
用于系统和应用程序的轻量级高速不可变数据库。
4、traefik 2.7.0 发布[6]
云原生应用代理。
5、oak 4.0.0 发布[7]
2D 游戏引擎。
6、fiber 2.34.0 发布[8]
一种 Express 风格的、基于 fasthttp 的 HTTP web 框架。
7、gocache 3.0 发布[9]
完整的 Go 缓存库,为你带来多种管理缓存的方式。
8、ebpf 0.9 发布[10]
纯 Go 实现的 eBPF 库。
提案讨论地址:https://github.com/golang/go/issues/21498。
开发者调查分析公司 SlashData 发布了一份题为“第 22 届开发者国家状况”的报告。
本文总结了在维护 go 基础库过程中,用到或者见到的一些性能优化技巧,现将一些理解梳理撰写成文,和大家探讨。
发现一本书:《Learning Go: An Idiomatic Approach to Real-World Go Programming》,是去年(2021)4 月份初版的,好评率挺高的。
5、Go 泛型那些事:能做什么,不能做什么,如何改变惯用模式
前两天分享了《Learning Go》最后一章作者重写的 PDF,今天有 gopher 翻译成了中文,经过译者授权发布。
Go 语言中文网微信群时不时有人问,有没有练手项目推荐。实话说,公众号陆续推荐过不少,但大家更擅长及时问,而不是找找。今天看到一个开源项目,值得学习了 Go 语言,但没有实战过的人练练手。
Go1.18 新特性中有一个神器:Fuzzing,对于发现 Go 项目中的 Bug 很有帮助。本文通过一个具体的例子来介绍它的基本使用,希望你能掌握并应用。
1、nibbles[11]
Go 实现的贪吃蛇游戏。
2、typioca[12]
Go 实现的打字速度测试仪。
3、concurrent-map[13]
相比标准库的 sync.Map,该库试用范围更广。目前支持泛型。
4、go-mssqldb[14]
微软 fork 版 SQL Server Driver。
5、dxsvalue[15]
网友自荐。从 JSON、MsgPack 等格式编解码。
1、god[16]
部署和管理 Go 服务的工具。
2、sish[17]
类似 ngrok 的工具。
这个周刊每周日发布,同步更新在Go 语言中文网[18]和微信公众号[19]。
微信搜索"Go 语言中文网"或者扫描二维码,即可订阅。
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]sonic 1.3 发布: https://github.com/bytedance/sonic
[4]kratos 2.3 发布: https://github.com/go-kratos/kratos
[5]immudb 1.3.0: https://github.com/codenotary/immudb/releases/tag/v1.3.0
[6]traefik 2.7.0 发布: https://github.com/traefik/traefik/releases/tag/v2.7.0
[7]oak 4.0.0 发布: https://github.com/oakmound/oak/releases/tag/v4.0.0
[8]fiber 2.34.0 发布: https://github.com/gofiber/fiber/releases/tag/v2.34.0
[9]gocache 3.0 发布: https://github.com/eko/gocache
[10]ebpf 0.9 发布: https://github.com/cilium/ebpf
[11]nibbles: https://github.com/gophun/nibbles
[12]typioca: https://github.com/bloznelis/typioca
[13]concurrent-map: https://github.com/orcaman/concurrent-map
[14]go-mssqldb: https://github.com/microsoft/go-mssqldb
[15]dxsvalue: https://github.com/suiyunonghen/dxsvalue
[16]god: https://github.com/pioz/god
[17]sish: https://github.com/antoniomika/sish
[18]Go 语言中文网: https://studygolang.com/go/weekly
[19]微信公众号: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91