Skip to content
On this page

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

这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue

鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。

题图:回顾 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 也发布了

同时发布的还有 1.18.9。

2、hertz 0.4.2 发布

一个 Golang 微服务 HTTP 框架。

3、dragonboat 3.3.6 发布

一个高性能纯 Go 语言实现的多组 Raft 共识算法库。

4、Task 3.19.0 发布

任务运行器,使用 Go 语言编写。类似 GNU Make,目标是比它更简单和易于使用。

5、FerretDB v0.7.0

MongoDB 的替代品。之前叫 MangoDB,容易被人理解为碰瓷。

6、go-sql-driver/mysql 1.7 发布

Go1.12 不再支持。

7、Kubernetes v1.26 发布

主题是Electrifying

文章

1、这个好:Go 1.20 将支持 Wrapping 多个 errors

该项提案对错误处理进行了优化,与 Go 1.13 为错误处理提供的新功能有关:Error Wrapping。引入 Error Wrapping 后,Go 同时为 errors 包添加了 3 个工具函数,分别是 Unwrap 、 Is 和 As 。

2、Go 1.20 快讯:新特性有哪些?一文了解

提前看看究竟会有哪些新特性加入 Go。

3、Go streaming 库的性能比较

随着 Generics to Go 1.18 的到来,Go 出现了一种新的编程模型:函数式流处理。这篇文章评估了一些当前提供此类功能的库,并比较了单线程流中实现的性能。

4、sonic :基于 JIT 技术的开源全场景高性能 JSON 库

sonic 是字节跳动开源的一款 Golang JSON 库,基于即时编译(Just-In-Time Compilation)与向量化编程(Single Instruction Multiple Data)技术,大幅提升了 Go 程序的 JSON 编解码性能。同时结合 lazy-load 设计思想,它也为不同业务场景打造了一套全面高效的 API。

5、Go1.20 新特性:切片转数组

Go1.20 正式版本还没有发布,官方计划 2023 年 2 月份发布。不过,Go1.20rc 已经在 12 月 8 号发布了,一起来尝鲜。

开源项目

1、git-bug

分布式的、离线的、嵌入 Git 中的 bug 追踪器。

2、valgo

类型安全、表现力丰富、可扩展的 Go 验证器包。

3、airplanes

Go 实现的射击游戏。

资源&&工具

1、marmot

基于 NATS 构建的分布式 SQLite 复制器。

2、terraform-exec

Go 实现的 Terraform CLI 工具。

3、go-coffeeshop

用 Go 构建的一个实用的事件驱动的微服务演示:使用 Nomad、Consul Connect、Vault和Terraform。

4、Go Time 第 258 期

TDD 还是 not TDD?

订阅

这个周刊每周日发布,同步更新在Go语言中文网微信公众号

微信搜索"Go语言中文网"或者扫描二维码,即可订阅。

wechat

Released under the MIT License.