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

polaris · · 2086 次点击 · 开始浏览    置顶

这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:[polaris1119/golangweekly](https://github.com/polaris1119/golangweekly)),欢迎投稿,推荐或自荐文章/软件/资源等,请[提交 issue](https://github.com/polaris1119/golangweekly/issues) 。 鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue171/cover.jpeg) 题图:回顾 2022 年的 Go Gamedev,<https://ebitengine.org/en/blog/2022.html>。 ## 刊首语 上期的题目有提示 math.Inf 含义,正确率 55%,正确答案是 A。 以下代码输出什么? ```go package main import ( "fmt" "math" ) func main() { // Inf returns positive infinity if sign >= 0, negative infinity if sign < 0. x := math.Inf(1) switch { case x < 0, x > 0: fmt.Println(x) case x == 0: fmt.Println("zero") default: fmt.Println("something else") } } ``` A:+Inf; B:zero; C:something else; D:doesn't compile 本期不出题目了,不少人可能身体不适,好好休息,多喝水! ## 资讯 1、[Go 1.19.4 发布,同时 Go1.20 RC 也发布了](https://mp.weixin.qq.com/s/qolkg2mjlg7Q2IH6EHmkDg) 同时发布的还有 1.18.9。 2、[hertz 0.4.2 发布](https://github.com/cloudwego/hertz) 一个 Golang 微服务 HTTP 框架。 3、[dragonboat 3.3.6 发布](https://github.com/lni/dragonboat) 一个高性能纯 Go 语言实现的多组 Raft 共识算法库。 4、[Task 3.19.0 发布](https://github.com/go-task/task/releases/tag/v3.19.0) 任务运行器,使用 Go 语言编写。类似 GNU Make,目标是比它更简单和易于使用。 5、[FerretDB v0.7.0](https://github.com/FerretDB/FerretDB) MongoDB 的替代品。之前叫 MangoDB,容易被人理解为碰瓷。 6、[go-sql-driver/mysql 1.7 发布](https://github.com/go-sql-driver/mysql/releases/tag/v1.7.0) Go1.12 不再支持。 7、[Kubernetes v1.26 发布](https://kubernetes.io/blog/2022/12/09/kubernetes-v1-26-release/) 主题是*Electrifying*。 ## 文章 1、[这个好:Go 1.20 将支持 Wrapping 多个 errors](https://mp.weixin.qq.com/s/1AzlUk-UH7gUs_JumwxfYw) 该项提案对错误处理进行了优化,与 Go 1.13 为错误处理提供的新功能有关:Error Wrapping。引入 Error Wrapping 后,Go 同时为 errors 包添加了 3 个工具函数,分别是 Unwrap 、 Is 和 As 。 2、[Go 1.20 快讯:新特性有哪些?一文了解](https://mp.weixin.qq.com/s/0jf8rNuaULak-ydrkZMZbQ) 提前看看究竟会有哪些新特性加入 Go。 3、[Go streaming 库的性能比较](https://macias.info/entry/202212020000_go_streams.md) 随着 Generics to Go 1.18 的到来,Go 出现了一种新的编程模型:函数式流处理。这篇文章评估了一些当前提供此类功能的库,并比较了单线程流中实现的性能。 4、[sonic :基于 JIT 技术的开源全场景高性能 JSON 库](https://zhuanlan.zhihu.com/p/461772555) sonic 是字节跳动开源的一款 Golang JSON 库,基于即时编译(Just-In-Time Compilation)与向量化编程(Single Instruction Multiple Data)技术,大幅提升了 Go 程序的 JSON 编解码性能。同时结合 lazy-load 设计思想,它也为不同业务场景打造了一套全面高效的 API。 5、[Go1.20 新特性:切片转数组](https://mp.weixin.qq.com/s/ZhvSrju3Z99TC_-8xMoAMw) Go1.20 正式版本还没有发布,官方计划 2023 年 2 月份发布。不过,Go1.20rc 已经在 12 月 8 号发布了,一起来尝鲜。 ## 开源项目 1、[git-bug](https://github.com/MichaelMure/git-bug) 分布式的、离线的、嵌入 Git 中的 bug 追踪器。 2、[valgo](https://github.com/cohesivestack/valgo) 类型安全、表现力丰富、可扩展的 Go 验证器包。 3、[airplanes](https://github.com/m110/airplanes) Go 实现的射击游戏。 ## 资源&&工具 1、[marmot](https://github.com/maxpert/marmot) 基于 NATS 构建的分布式 SQLite 复制器。 2、[terraform-exec](https://github.com/hashicorp/terraform-exec) Go 实现的 Terraform CLI 工具。 3、[go-coffeeshop](https://github.com/thangchung/go-coffeeshop) 用 Go 构建的一个实用的事件驱动的微服务演示:使用 Nomad、Consul Connect、Vault和Terraform。 4、[Go Time 第 258 期](https://changelog.com/gotime/258) TDD 还是 not TDD? ## 订阅 这个周刊每周日发布,同步更新在[Go语言中文网](https://studygolang.com/go/weekly)和[微信公众号](https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91)。 微信搜索"Go语言中文网"或者扫描二维码,即可订阅。 ![wechat](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/wechat.png)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2086 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传