Go语言爱好者周刊:第 191 期
这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:父亲节快乐!!!
资讯
使用 OpenCV 4+ 的计算机视觉包。
Go 编写的加密 overlay 文件系统。官方网站:https://nuetzlich.net/gocryptfs
Go 的 Bloom filters 实现。
提供了轻松为 Go 接口生成 mock 的功能。它删除了使用 mock 所需的样板代码。
为任意 Go 程序自动加上 HTTPS,Caddy 使用的一个库。
带控制台接口的磁盘使用分析器。
文章
1、Go 1.21.0 带来了什么新特性?min 和 max 内置函数解析
Go 1.21.0 是 Go 语言的最新版本,它将在 2023 年 8 月发布,会带来了一些语言和工具的变化。其中一个值得关注的变化是增加了两个新的内置函数 min 和 max,用来对任意可比较类型进行最小值和最大值的操作。
Goroutine(也叫协程)运行在用户态,由Go runtime管理。而操作系统线程同时处于用户态和内核态。
系列教程。
反射是一种编程语言的高级特性,它允许程序在运行时检视自身的结构和行为。
本文我们介绍下recover在gin框架中的应用。
Go语言的垃圾回收机制(Garbage Collection,简称 GC)是其重要的运行机制之一,它可以帮助开发人员避免手动管理内存的复杂性和错误,为开发者带来开发上的便利,使开发者可以更专注于业务逻辑的实现。然而,GC的便利性背后也带来了一定的系统开销,作为成熟的Go开发者,我们需要了解GC带来的开销和优化方法,以帮助我们更好的了解和使用Go语言。
TDengine Go 连接器 https://github.com/taosdata/driver-go,使用 cgo 调用 taos.so 中的 API,使用过程中发现线程数不断增长,本文从一个 cgo 调用开始解析 Go 源码,分析造成线程增长的原因。
开源项目
1、geziyor
一个快速的网络爬虫框架。
2、rapid
一个现代的基于属性的测试库。
结构体标签解析。
资源&&工具
一个 ’go test’ 的运行器,它可以输出适合人类阅读的格式,也可以输出 JUnit XML 格式用于 CI 集成,还可以输出测试结果的摘要。它既适合本地开发,也适合自动化测试。
2、fractals
一个使用 goroutines 的快速曼德博集合渲染器。
Golang Websocket 百万连接测试。作者自荐,https://github.com/polaris1119/golangweekly/issues/103。
4、SolidUI(作者自荐),非 Go 项目
AI生成可视化原型设计和编辑平台,支持2D,3D模型,结合LLM(Large Language Model) 快速编辑。
5、tc-filter(作者自荐)
一个基于ebpf tc实现的linux网络包过滤器。
订阅
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。