Go语言爱好者周刊:第 191 期 —— 父亲节快乐
2023-6-18 22:1:17 Author: Go语言中文网(查看原文) 阅读量:15 收藏

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

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

由于微信公众号不支持外链,文中大量链接可通过文末「阅读原文」查看。

题图:父亲节快乐!!!

资讯

1、gocv v0.33.0 发布[3]

使用 OpenCV 4+ 的计算机视觉包。

2、gocryptfs v2.4 发布[4]

Go 编写的加密 overlay 文件系统。官方网站:https://nuetzlich.net/gocryptfs

3、bloom v3.5 发布[5]

Go 的 Bloom filters 实现。

4、mockery v2.29 发布[6]

提供了轻松为 Go 接口生成 mock 的功能。它删除了使用 mock 所需的样板代码。

5、certmagic v0.18 发布[7]

为任意 Go 程序自动加上 HTTPS,Caddy 使用的一个库。

6、gdu v5.25 发布[8]

带控制台接口的磁盘使用分析器。

文章

1、Go 1.21.0 带来了什么新特性?min 和 max 内置函数解析

Go 1.21.0 是 Go 语言的最新版本,它将在 2023 年 8 月发布,会带来了一些语言和工具的变化。其中一个值得关注的变化是增加了两个新的内置函数 min 和 max,用来对任意可比较类型进行最小值和最大值的操作。

2、Go协程池(1): 线程vs协程

Goroutine(也叫协程)运行在用户态,由Go runtime管理。而操作系统线程同时处于用户态和内核态。

3、写给go开发者的gRPC教程-错误处理

系列教程。

4、Go语言反射编程指南

反射是一种编程语言的高级特性,它允许程序在运行时检视自身的结构和行为。

5、Gin 框架是如何处理 panic 的?

本文我们介绍下recover在gin框架中的应用。

6、Go GC:了解便利背后的开销[9]

Go语言的垃圾回收机制(Garbage Collection,简称 GC)是其重要的运行机制之一,它可以帮助开发人员避免手动管理内存的复杂性和错误,为开发者带来开发上的便利,使开发者可以更专注于业务逻辑的实现。然而,GC的便利性背后也带来了一定的系统开销,作为成熟的Go开发者,我们需要了解GC带来的开销和优化方法,以帮助我们更好的了解和使用Go语言。

7、从源码分析 Go 语言使用 cgo 导致的线程增长[10]

TDengine Go 连接器 https://github.com/taosdata/driver-go,使用 cgo 调用 taos.so 中的 API,使用过程中发现线程数不断增长,本文从一个 cgo 调用开始解析 Go 源码,分析造成线程增长的原因。

开源项目

1、geziyor[11]

一个快速的网络爬虫框架。

2、rapid[12]

一个现代的基于属性的测试库。

3、spectagular[13]

结构体标签解析。

资源&&工具

1、gotestsum[14]

一个 ’go test’ 的运行器,它可以输出适合人类阅读的格式,也可以输出 JUnit XML 格式用于 CI 集成,还可以输出测试结果的摘要。它既适合本地开发,也适合自动化测试。

2、fractals[15]

一个使用 goroutines 的快速曼德博集合渲染器。

3、go-websocket-benchmark[16]

Golang Websocket 百万连接测试。作者自荐,https://github.com/polaris1119/golangweekly/issues/103。

4、SolidUI[17](作者自荐),非 Go 项目

AI生成可视化原型设计和编辑平台,支持2D,3D模型,结合LLM(Large Language Model) 快速编辑。

5、tc-filter[18](作者自荐)

一个基于ebpf tc实现的linux网络包过滤器。

订阅

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

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

wechat

参考资料

[1]

polaris1119/golangweekly: https://github.com/polaris1119/golangweekly

[2]

提交 issue: https://github.com/polaris1119/golangweekly/issues

[3]

gocv v0.33.0 发布: https://github.com/hybridgroup/gocv

[4]

gocryptfs v2.4 发布: https://github.com/rfjakob/gocryptfs

[5]

bloom v3.5 发布: https://github.com/bits-and-blooms/bloom

[6]

mockery v2.29 发布: https://github.com/vektra/mockery

[7]

certmagic v0.18 发布: https://github.com/caddyserver/certmagic

[8]

gdu v5.25 发布: https://github.com/dundee/gdu

[9]

Go GC:了解便利背后的开销: https://tonybai.com/2023/06/13/understand-go-gc-overhead-behind-the-convenience/

[10]

从源码分析 Go 语言使用 cgo 导致的线程增长: https://www.cnblogs.com/t102011/p/17457120.html

[11]

geziyor: https://github.com/geziyor/geziyor

[12]

rapid: https://github.com/flyingmutant/rapid

[13]

spectagular: https://github.com/matt1484/spectagular

[14]

gotestsum: https://github.com/gotestyourself/gotestsum

[15]

fractals: https://github.com/joweich/fractals

[16]

go-websocket-benchmark: https://github.com/lesismal/go-websocket-benchmark

[17]

SolidUI: https://github.com/CloudOrc/SolidUI

[18]

tc-filter: https://github.com/JamesYYang/tc-filter

[19]

Go语言中文网: https://studygolang.com/go/weekly

[20]

微信公众号: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMTA4Njc0OQ==&mid=2651454463&idx=1&sn=4fd46100f7eecc41c9157400cebe22b6&chksm=80bb250db7ccac1bf1a05346ad7ce3a4f5f59e01c6805087cfb59b68090998847797e74af79b#rd
如有侵权请联系:admin#unsafe.sh