Go语言爱好者周刊:第 107 期 — Statck Overflow 2021调查结果
这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[2] 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
由于微信公众号不支持外链,文中大量链接可通过文末「阅读原文」查看。
题图:Stack Overflow 2021 年调查报告
刊首语
上期题目由网友「爱笑」投稿,以下代码输出什么,你知道为什么吗?
package main
import (
"fmt"
)
func main() {
nums := []int{1, 2, 3, 4, 5, 6, 7}
k := 3
rotate(nums, k)
fmt.Println(nums)
}
func rotate(nums []int, k int) {
k = k % len(nums)
nums = append(nums[len(nums)-k:], nums[0:len(nums)-k]...)
}
A:[5 6 7 1 2 3 4] B:[1 2 3 4 5 6 7] C:[4 5 6 7 1 2 3]
正确答案是 B。主要原因是 append 后的 nums 是新数组,它并不会影响 main 函数中的 nums。如果最后不是赋值给 nums,而是使用 copy,结果就是 A 了:
copy(nums, append(nums[len(nums)-k:], nums[0:len(nums)-k]...))
本期是一道关于 json 的题目,以下代码输出什么?
package main
import (
"encoding/json"
"fmt"
)
func main() {
var p *int
b, err := json.Marshal(p)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(b))
}
资讯
1、Go 1.16.7 和 Go1.15.15 发布[3]
同时,Go 1.17 发布了 RC2[4],离正式版发布不远了。
2、Ent 0.9.0 发布[5]
Facebook 出品,新的 Upsert API。
3、Stack Overflow 发布 2021 年调查报告[6]
Go 在最想学习榜中排名第四。
4、gohugo v0.87.0 发布[7]
支持时间、日期以及货币的本地化。
5、Kubernetes 1.22 版本发布[8]
号称达到新的巅峰。
大家比较看好 Go,但感觉这榜单。。。
谁在招 Gopher
整理近期的 Go 职位。有招聘需求可以到「Go招聘」发布!
文章
Go1.16 后有了更多选择。
大部分时候,标准库是最好的选择。
3、用 Go 实现类似 Nginx 的 Access Log
看看是如何处理的。
安全问题越来越受到重视。
你一般怎么构建呢?
微服务必备。
7、Go 基于 I/O 多路复用的 TCP 协议流解析实践[9]
基于Go经典的阻塞I/O模型实现了一个基于TCP流的自定义协议的解析
方便日常使用。
开源项目
1、virgo[10]
基于图的配置语言。
2、cloudflare-go[11]
CloudFlare API 的 Go 库。
3、v2[12]
简约而有主见的 Feed 阅读器。
4、phonenumbers[13]
Google 电话号码解析库的 Go 移植版。
资源&&工具
1、cxgo[14]
将 C 转为 Go 的工具,纯 Go 实现。
2、 Peanut[15]
为开发和测试管道轻松地部署数据库和服务。
3、chezmoi[16]
安全地在多个不同的机器上管理你的 dotfiles。
4、播客第 191 期[17]
Go 语言实践观点集合。
订阅
这个周刊每周日发布,同步更新在Go语言中文网[18]和微信公众号[19]。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。
往期推荐
参考资料
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]Go 1.16.7 和 Go1.15.15 发布: https://studygolang.com/topics/14096
[4]Go 1.17 发布了 RC2: https://groups.google.com/g/golang-announce/c/yk30ovJGXWY
[5]Ent 0.9.0 发布: https://entgo.io/blog/2021/08/05/announcing-upsert-api/
[6]Stack Overflow 发布 2021 年调查报告: https://insights.stackoverflow.com/survey/2021#technology-most-loved-dreaded-and-wanted
[7]gohugo v0.87.0 发布: https://gohugo.io/news/0.87.0-relnotes/
[8]Kubernetes 1.22 版本发布: https://kubernetes.io/blog/2021/08/04/kubernetes-1-22-release-announcement/
[9]Go 基于 I/O 多路复用的 TCP 协议流解析实践: https://tonybai.com/2021/07/31/io-multiplexing-model-tcp-stream-protocol-parsing-practice-in-go
[10]virgo: https://github.com/r2d4/virgo
[11]cloudflare-go: https://github.com/cloudflare/cloudflare-go
[12]v2: https://github.com/miniflux/v2
[13]phonenumbers: https://github.com/nyaruka/phonenumbers
[14]cxgo: https://github.com/gotranspile/cxgo
[15]Peanut: https://github.com/Clivern/Peanut
[16]chezmoi: https://github.com/twpayne/chezmoi
[17]播客第 191 期: https://changelog.com/gotime/191
[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