Golang 用不到2000行代码实现一个零拷贝的消息队列

<p>极致性能:明确标注单机 140,000+ msg/s 的吞吐量。</p> <p>技术亮点:</p> <p>Zero-Copy:强调 Protobuf 二进制直存,消除序列化开销。</p> <p>Global Signal Hub:介绍基于 PSubscribe 的单连接唤醒引擎,亚毫秒级延迟。</p> <p>Event-Driven Push:解释如何通过事件驱动消除传统轮询延迟。</p> <p>Self-Healing:利用 Redis PEL 打造的自愈能力。</p> <p>代码精简:强调在 2000行代码 内实现了如此复杂的功能,展现工程美感。</p> <p>项目地址:</p> <p><a href="https://github.com/chowyu12/gmq">https://github.com/chowyu12/gmq</a></p>

2026/1/6
阅读更多

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

<p>这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:<a href="https://github.com/polaris1119/golangweekly">polaris1119/golangweekly</a>),欢迎投稿,推荐或自荐文章/软件/资源等,请<a href="https://github.com/polaris1119/golangweekly/issues">提交 issue</a> 。</p> <p>鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。</p> <p><img src="https://imgproxy.citrusreader.com/MaUuvB3EQJfQOq2dbegsjGl8TNdr7DMYQbtiW3RJbaQ/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL2lzc3VlMjA1L2NvdmVyLnBuZw" alt referrerpolicy="no-referrer"></p> <p>题图:Go 代码编辑器排行</p> <h2>资讯</h2> <p>1、<a href="https://github.com/dunglas/frankenphp">frankenphp v1.0 发布</a></p> <p>一个现代的 PHP app server,Go 语言实现。</p> <p>2、<a href="https://gitlab.com/pygolo/py">py v0.2.0 发布</a></p> <p>使用 Go 扩展 Python,反之亦然。</p> <p>3、<a href="https://github.com/pdfcpu/pdfcpu">pdfcpu v0.6 发布</a></p> <p>Go 语言 PDF 处理器。</p> <p>4、<a href="https://github.com/openfga/openfga">openfga v1.3 发布</a></p> <p>一个高性能和灵活的授权/权限引擎。</p> <p>5、<a href="https://github.com/errata-ai/vale">vale v2.30 发布</a></p> <p>这是一个语法感知的文本校对工具,它可以用于检查文本的拼写、风格和语法错误,并提供了快速和可扩展的特性。</p> <p>6、<a href="https://github.com/grpc/grpc-go/releases/tag/v1.40.0">grpc-go 1.40.0</a></p> <p>gRPC Go 的实现。</p> <p>7、<a href="https://github.com/boyter/scc">scc v3.2 发布</a></p> <p>与 cloc,sloccount 和 tokei 类似的工具。用于计数许多编程语言中的代码行,空行,注释行和源代码的物理行。</p> <h2>文章</h2> <p>1、<a href="https://mp.weixin.qq.com/s/0Ez3TYRgupB6Ko_JpKfHJw">Golang 的 websocket 使用和实现代码分析</a></p> <p>websocket 实操,分享它使用和底层实现!</p> <p>2、<a href="https://mp.weixin.qq.com/s/I2UmqcwEJnef9NIJvPRrCg">TIOBE 2023 年 12 月编程语言榜单:年度编程语言预测</a></p> <p>Go 排第几了?</p> <p>3、<a href="https://mp.weixin.qq.com/s/zXDvOoNLJDRR9Bu5CeZc7Q">一文搞懂Go gRPC服务Handler单元测试</a></p> <p>在云原生时代和微服务架构背景下,HTTP和RPC协议成为服务间通信和与客户端交互的两种主要方式。</p> <p>4、<a href="https://mp.weixin.qq.com/s/Y6r6EWZtP_Lbz6OOCMgswQ">grpc-go 从使用到实现原理全解析!</a></p> <p>本期将从rpc背景知识开始了解,如何安装进行开发前的环境准备,protobuf文件格式了解,客户端服务端案例分享等,逐渐深入了解如何使用grpc-go框架进行实践开发。</p> <p>5、<a href="https://eli.thegreenplace.net/2023/sign-in-with-github-in-go/">在Go中使用GitHub登录</a></p> <p>这篇文章主要讨论了如何在Go语言的Web应用程序中集成GitHub登录功能。</p> <h2>开源项目</h2> <p>1、<a href="https://github.com/zombiezen/go-sqlite">go-sqlite</a></p> <p>纯 Go 的实现,不过没有实现 database/sql 接口,而是另外一套 API。</p> <p>2、<a href="https://github.com/go-redsync/redsync">redsync</a></p> <p>基于 Redis 的分布式互斥锁。</p> <p>3、<a href="https://github.com/go-co-op/gocron">gocron</a></p> <p>简单流畅的 Go cron 调度。</p> <p>4、<a href="https://github.com/bracesdev/errtrace">errtrace</a></p> <p>Go 错误的堆栈跟踪替代方案。</p> <p>5、<a href="https://github.com/leodip/goiabada">goiabada</a></p> <p>Goiabada 是一个用 Go 编写的 OAuth2/OpenID Connect 服务器。</p> <h2>资源&amp;&amp;工具</h2> <p>1、<a href="https://github.com/ubavic/wave">wave</a></p> <p>一个非常简单的合成器。</p> <p>2、<a href="https://github.com/gdamore/tcell">tcell</a></p> <p>Tcell 是一个替代的终端包,在某些方面类似于 termbox,但在其他方面更好。</p> <p>3、<a href="https://github.com/google/osv.dev">osv.dev</a></p> <p>开源漏洞数据库和分类服务,谷歌出品。</p> <h2>订阅</h2> <p>这个周刊每周日发布,同步更新在<a href="https://studygolang.com/go/weekly">Go语言中文网</a>和<a href="https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91">微信公众号</a>。</p> <p>微信搜索"Go语言中文网"或者扫描二维码,即可订阅。</p> <p><img src="https://imgproxy.citrusreader.com/lLKBPWt3y7qcSOJ57zPWJ1cjQNtzKEtVJEnwGrrE00k/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL3dlY2hhdC5wbmc" alt="wechat" referrerpolicy="no-referrer"></p>

2023/12/17
阅读更多

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

<p>这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:<a href="https://github.com/polaris1119/golangweekly">polaris1119/golangweekly</a>),欢迎投稿,推荐或自荐文章/软件/资源等,请<a href="https://github.com/polaris1119/golangweekly/issues">提交 issue</a> 。</p> <p>鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。</p> <p><img src="https://imgproxy.citrusreader.com/i1mV-P_7o-pX7IlZQ5Tl0I7L5T44fSd8QSjdQldrLoQ/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL2lzc3VlMjA0L2NvdmVyLmpwZWc" alt referrerpolicy="no-referrer"></p> <p>题图:Go 14 周年。</p> <h2>资讯</h2> <p>1、<a href="https://github.com/redis/go-redis">go-redis v9.3.0 发布</a></p> <p>类型安全的 Redis Go 客户端。JSON 支持。</p> <p>2、<a href="https://github.com/caarlos0/env">env v10.0 发布</a></p> <p>简单的 lib 可以将环境变量解析为结构体。</p> <p>3、<a href="https://github.com/uber-go/goleak">goleak v1.3 发布</a></p> <p>Uber 出品的 goroutine 泄露检测器。</p> <p>4、<a href="https://github.com/spf13/cobra">cobra v1.8.0 发布</a></p> <p>一个构建现代 CLI APP 的框架。</p> <p>5、<a href="https://github.com/fatih/color">color v1.16 发布</a></p> <p>颜色文本输出包。</p> <p>6、<a href="https://github.com/nlpodyssey/spago">spago v1.1 发布</a></p> <p>纯 Go 的机器学习库。</p> <h2>文章</h2> <p>1、<a href="https://mp.weixin.qq.com/s/dvZcAG1gXIbll_aQI8KYFg">为什么使用Golang而非Rust开发桌面应用?</a></p> <p>MoonGuard 团队选择 Golang 而不是 Rust 作为他们的 Krater 桌面应用程序,因为 Golang 中更容易进行内存管理、类型安全和 ORM 支持。</p> <p>2、<a href="https://mp.weixin.qq.com/s/uTnb9QQrFfs5jdmFmFzd7Q">Go1.21.4 发布了:官方图片竟然用的 loong64</a></p> <p>Go 官方发布了 Go1.21.4 和 Go1.20.11,这是两个小版本,主要是 2 个安全更新,涉及 path/filepath 库。</p> <p>3、<a href="https://mp.weixin.qq.com/s/PJJjOhhhF_3mteF3gK7JCg">最好的 Go 框架就是不用框架?</a></p> <p>许多人建议你根本不应该(在 Go 中)使用框架。他们疯了吗?</p> <p>4、<a href="https://mp.weixin.qq.com/s/vlpTUltiV_ZR8Ql95h5lBQ">必须知道的 17 个Go开发库</a></p> <p>随着时间的推移,Go语言爱好者已经创建并共享了许多Go框架和库。这些库有不同的功能,从微服务开发到构建web应用程序。</p> <p>5、<a href="https://mp.weixin.qq.com/s/_iT9GAtn0hQXDQYW_PbPCA">通过实例理解Web应用用户密码存储方案</a></p> <p>在这篇文章中,我们就来说说Web应用的各种密码存储方案的优缺点,并通过实例来理解一下当前的主流存储方案。</p> <h2>开源项目</h2> <p>1、<a href="https://github.com/dolthub/doltgresql">doltgresql</a></p> <p>世界上第一个版本控制 SQL 数据库。</p> <p>2、<a href="https://github.com/vauntdev/tqla">tqla</a></p> <p>一个小型轻量级文本解析器,包装了 Go 语言 text/template 标准库。</p> <p>3、<a href="https://github.com/warrant-dev/warrant">warrant</a></p> <p>一种高度可扩展的集中式授权服务,用于定义、存储、查询、检查和审计应用程序授权模型和访问规则。</p> <p>4、<a href="https://github.com/jftuga/ttlMap">ttlMap</a></p> <p>一种 Go 语言 map,其中条目在给定时间段后过期。</p> <h2>资源&amp;&amp;工具</h2> <p>1、<a href="https://github.com/deepmap/oapi-codegen">oapi-codegen</a></p> <p>从 OpenAPI 3 规范生成 Go 客户端和服务器样板。</p> <p>2、<a href="https://github.com/darkhz/bluetuith">bluetuith</a></p> <p>用于 Linux的 TUI 蓝牙管理器。</p> <p>3、<a href="https://github.com/mariocandela/beelzebub">beelzebub</a></p> <p>一个安全的低代码框架,利用 AI 进行系统虚拟化。</p> <h2>订阅</h2> <p>这个周刊每周日发布,同步更新在<a href="https://studygolang.com/go/weekly">Go语言中文网</a>和<a href="https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91">微信公众号</a>。</p> <p>微信搜索"Go语言中文网"或者扫描二维码,即可订阅。</p> <p><img src="https://imgproxy.citrusreader.com/lLKBPWt3y7qcSOJ57zPWJ1cjQNtzKEtVJEnwGrrE00k/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL3dlY2hhdC5wbmc" alt="wechat" referrerpolicy="no-referrer"></p>

2023/11/12
阅读更多

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

<p>这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:<a href="https://github.com/polaris1119/golangweekly">polaris1119/golangweekly</a>),欢迎投稿,推荐或自荐文章/软件/资源等,请<a href="https://github.com/polaris1119/golangweekly/issues">提交 issue</a> 。</p> <p>鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。</p> <p><img src="https://imgproxy.citrusreader.com/Le8Lp5b9YPjja8uztUuoUePA0RAmaFcSJEiwHQocPRM/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL2lzc3VlMjAzL2NvdmVyLmpwZWc" alt referrerpolicy="no-referrer"></p> <p>题图:考虑一个更好的 Go JSON 库 &lt;<a href="https://github.com/golang/go/discussions/63397&amp;gt;%E3%80%82">https://github.com/golang/go/discussions/63397&amp;gt;。</a></p> <h2>资讯</h2> <p>1、<a href="https://www.reddit.com/r/golang/comments/17dvp7c/what_is_the_best_ide_for_golang/">Go 语言最好的 IDE 是哪个?</a></p> <p>Reddit 上的一个问题,你觉得是哪个?</p> <p>2、<a href="https://blog.scottlogic.com/2023/10/18/the-state-of-webassembly-2023.html">WebAssembly 2023 调查结果</a></p> <p>Go 是 WASM 项目中第四大最受欢迎的语言。</p> <p>3、<a href="https://github.com/go-echarts/go-echarts">go-echarts v2.3 发布</a></p> <p>Golang 可爱的图表库。想将条形图,线形图,饼图或其他图表放在一起吗?该库能实现。</p> <p>4、<a href="https://github.com/reugn/go-quartz">go-quartz v0.8 发布</a></p> <p>小型、零依赖的调度库,启发自 Java 的 Quartz。</p> <p><a href="https://github.com/bits-and-blooms/bloom">bloom v3.6 发布</a></p> <p>Go 的 Bloom filters 实现。</p> <p>6、<a href="https://github.com/fsnotify/fsnotify/releases/tag/v1.6.0">fsnotify v1.7.0 发布</a></p> <p>文件系统事件通知。</p> <p>7、<a href="https://github.com/treeverse/lakeFS">lakeFS v1.0 发布</a></p> <p>将对象存储转换为类似 Git 的存储库。</p> <h2>文章</h2> <p>1、<a href="https://dev.to/chasefleming/building-a-counter-app-with-htmx-go-fiber-and-elem-go-9jd">使用 htmx、Go Fiber 和 elem-go 构建计数器应用程序</a></p> <p>三个库的使用。</p> <p>2、<a href="https://mp.weixin.qq.com/s/r5_zuEX1PyJ9FXW9Uth6Lg">Go 语言如何获取 CPU 利用率</a></p> <p>本文主要介绍在 Linux 中如何获取 CPU 利用率。</p> <p>3、<a href="https://mp.weixin.qq.com/s/ubSfSAT7kVmnCAZly13F0Q">通过实例理解Go Web身份认证的几种方式</a></p> <p>在这篇文章中,我就通过Go示例和大家一起探讨一下当前Web应用开发中几种常见的主流身份认证方式,帮助自己和各位读者迈出Web应用开发修炼之路的第一步。</p> <p>4、<a href="https://colobu.com/2023/10/22/how-to-use-pipe-in-Go-exec-Command/">如何在Go语言中实现Unix风格的进程管道?</a></p> <p>你觉得如何实现?</p> <p>5、<a href="https://upstash.com/blog/upgradable-rwlock-for-go">Go 的可升级读写锁</a></p> <p>在这篇博文中,我们将探讨Go中可升级读写锁的实现。我们将通过给出现实世界用例中的具体示例来讨论我们为什么需要它,并在博文中讨论潜在的陷阱。</p> <h2>开源项目</h2> <p>1、<a href="https://github.com/chasefleming/elem-go">elem-go</a></p> <p>类型安全的 Go 库,用于创建和操作超文本标记语言元素(使用 htmx 助手)。</p> <p>2、<a href="https://github.com/aziis98/go-fsrouter">go-fsrouter</a></p> <p>一个简单的文件系统路由器库,启发自 Next.js。</p> <p>3、<a href="https://github.com/alexedwards/scs">scs</a></p> <p>HTTP Session 管理。</p> <h2>资源&amp;&amp;工具</h2> <p>1、<a href="https://github.com/Zi0P4tch0/RadioGoGo">RadioGoGo</a></p> <p>Go 驱动的 CLI, 通过时尚的 TUI 浏览全球无线电波。</p> <p>2、<a href="https://github.com/sachaos/viddy">viddy</a></p> <p>现代的 Watch 命令。</p> <p>3、<a href="https://github.com/Tufin/oasdiff">oasdiff</a></p> <p>命令行和 Go 包,用于比较和检测 OpenAPI 规范中的重大更改。</p> <h2>订阅</h2> <p>这个周刊每周日发布,同步更新在<a href="https://studygolang.com/go/weekly">Go语言中文网</a>和<a href="https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91">微信公众号</a>。</p> <p>微信搜索"Go语言中文网"或者扫描二维码,即可订阅。</p> <p><img src="https://imgproxy.citrusreader.com/lLKBPWt3y7qcSOJ57zPWJ1cjQNtzKEtVJEnwGrrE00k/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL3dlY2hhdC5wbmc" alt="wechat" referrerpolicy="no-referrer"></p>

2023/10/29
阅读更多

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

<p>这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:<a href="https://github.com/polaris1119/golangweekly">polaris1119/golangweekly</a>),欢迎投稿,推荐或自荐文章/软件/资源等,请<a href="https://github.com/polaris1119/golangweekly/issues">提交 issue</a> 。</p> <p>鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。</p> <p><img src="https://imgproxy.citrusreader.com/t81q8Q8viJ2wXeRuiab3WwoIoirU4nBeLs0EWI-FCns/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL2lzc3VlMjAyL2NvdmVyLmpwZWc" alt referrerpolicy="no-referrer"></p> <p>题图:让大家久等了</p> <h2>资讯</h2> <p>1、<a href="https://github.com/cosmtrek/air">air v1.47.0 发布</a></p> <p>Go 应用程序的实时重新加载。</p> <p><a href="https://github.com/vektra/mockery">mockery v2.36 发布</a></p> <p>提供了轻松为 Go 接口生成 mock 的功能。它删除了使用 mock 所需的样板代码。</p> <p>3、<a href="https://github.com/spf13/viper">viper v1.17 发布</a></p> <p>一个功能强大且灵活的 Go 应用程序配置解决方案。v1.17 需要 Go 1.19 并添加了log/slog支持。</p> <p><a href="https://github.com/sashabaranov/go-openai">go-openai v1.16.0 发布</a></p> <p>OpenAI 的 Golang SDK,包括 ChatGPT、GPT-3、GPT-4 等,增加了一些示例:&lt;<a href="https://github.com/sashabaranov/go-openai#other-examples&amp;gt;%E3%80%82">https://github.com/sashabaranov/go-openai#other-examples&amp;gt;。</a></p> <p>5、<a href="https://github.com/charmbracelet/mods">mods v1.0 发布</a></p> <p>命令行中的 AI。</p> <p>6、<a href="https://github.com/carlmjohnson/requests">requests v0.23.5</a></p> <p>HTTP 客户端库,还带有用于构建自定义 http 传输的工具,包括用于测试的请求记录器和重放器。</p> <h2>文章</h2> <p>1、<a href="https://mp.weixin.qq.com/s/zbV2UwHYvgsuwnXR2Vr04Q">Go项目目录该怎么组织?官方终于出指南了!</a></p> <p>在这篇文章中,我们就来看看这份官方指南,看看官方推荐的Go项目目录布局是什么样子的。</p> <p>2、<a href="https://mp.weixin.qq.com/s/edD9VBH5UcR23GdLruisfg">怎么回事?Go 又发布版本更新了:Go1.21.3</a></p> <p>Go 官方发布了 Go1.21.3 和 Go 1.20.10,上一版本发布才几天,可见又是安全更新。</p> <p>3、<a href="https://mp.weixin.qq.com/s/4h0wT9Z9QsoMmWGQGJw0XA">编译Go应用的黑盒挑战:无源码只有.a文件,你能搞定吗?</a></p> <p>本文就来从技术角度来探讨一下这些 hack 方法,但并不推荐使用!</p> <p>4、<a href="https://mp.weixin.qq.com/s/9HRnjKZxCkAoOe1rnihPBA">Go和C++通用性能优化黑魔法——PGO!</a></p> <p>本文会介绍 PGO 的原理,以及 Go/C++ 语言进行 PGO 的实践。</p> <p>5、<a href="https://hjr265.me/blog/adding-icons-for-go-built-windows-executable/">为 Go 构建的 Windows 可执行文件添加图标</a></p> <p>开发 Windows 程序的可以看看,基于 &lt;<a href="https://github.com/akavel/rsrc&amp;gt">https://github.com/akavel/rsrc&amp;gt</a>; 库。</p> <h2>开源项目</h2> <p>1、<a href="https://github.com/gokrazy/gokrazy">gokrazy</a></p> <p>将 Go 程序转成可在 Raspberry Pi 3、Pi 4、Pi Zero 2 W 或 amd64 PC 设备上运行。</p> <p>2、<a href="https://gitlab.com/greyxor/slogor">slogor</a></p> <p>一个色彩丰富的 slog 处理程序。</p> <p>3、<a href="https://github.com/DynamiteMC/Dynamite">Dynamite</a></p> <p>用 Go 编写的 Minecraft 服务器软件。</p> <p>4、<a href="https://github.com/a-h/templ">templ</a></p> <p>一种用于在 Go 中编写超文本标记语言用户界面的语言。</p> <p>5、<a href="https://github.com/cvilsmeier/sqinn-go">sqinn-go</a></p> <p>SQLite 驱动,纯 Go 实现。</p> <h2>资源&amp;&amp;工具</h2> <p>1、<a href="https://github.com/xataio/pgroll">pgroll</a></p> <p>PostgreSQL 零停机迁移变得容易。</p> <p>2、<a href="https://tour.ardanlabs.com/tour/eng/list">Go Tour</a></p> <p>终极 Go 教程,英文版。</p> <p>3、<a href="https://github.com/mylxsw/aidea-server">aidea-server</a></p> <p>一款集成了主流大语言模型以及绘图模型的 APP,采用 Flutter + Golang 开发。</p> <p>4、<a href="https://github.com/webws/embedding-knowledge-base">embedding-knowledge-base</a></p> <p>一个 基于 golang 和 chatgpt qdrant 实现的 AI 知识库 cli。</p> <h2>订阅</h2> <p>这个周刊每周日发布,同步更新在<a href="https://studygolang.com/go/weekly">Go语言中文网</a>和<a href="https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91">微信公众号</a>。</p> <p>微信搜索"Go语言中文网"或者扫描二维码,即可订阅。</p> <p><img src="https://imgproxy.citrusreader.com/lLKBPWt3y7qcSOJ57zPWJ1cjQNtzKEtVJEnwGrrE00k/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL3dlY2hhdC5wbmc" alt="wechat" referrerpolicy="no-referrer"></p>

2023/10/22
阅读更多

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

<p>这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:<a href="https://github.com/polaris1119/golangweekly">polaris1119/golangweekly</a>),欢迎投稿,推荐或自荐文章/软件/资源等,请<a href="https://github.com/polaris1119/golangweekly/issues">提交 issue</a> 。</p> <p>鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。</p> <p><img src="https://imgproxy.citrusreader.com/lG4IVFpeJqj9kTmCnopDPlc81KZHPqVOa3Jtkz5xF3g/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL2lzc3VlMjAxL2NvdmVyLmpwZWc" alt referrerpolicy="no-referrer"></p> <p>题图:终端的 JSON 查看器 &lt;<a href="https://fx.wtf/&amp;gt">https://fx.wtf/&amp;gt</a>;</p> <h2>资讯</h2> <p>1、<a href="https://wails.io/zh-Hans/">Wails v2.6 发布</a></p> <p>构建跨平台的桌面应用。</p> <p>2、<a href="https://github.com/Shpota/goxygen">goxygen v0.7 发布</a></p> <p>分分钟生成一个全栈 Web 项目(Go,Angular/React/Vue),现在支持 Go1.21。</p> <p>3、<a href="https://github.com/alecthomas/participle">participle v2.1 发布</a></p> <p>Go 的解析器(Parser)。</p> <p>4、<a href="https://github.com/charmbracelet/lipgloss">lipgloss v0.8 发布</a></p> <p>漂亮的终端布局的风格定义。</p> <p>5、<a href="https://github.com/jhillyerd/enmime">enmime v1.0 发布</a></p> <p>enmime 是 Go 的 MIME 编码和解码库,专注于生成和解析 MIME 编码的电子邮件。</p> <p>6、<a href="https://github.com/pemistahl/lingua-go">lingua-go v1.3 发布</a></p> <p>最准确的Go自然语言检测库,长短文本均适用。</p> <p>7、<a href="https://github.com/antonmedv/fx">Fx v30.0 发布</a></p> <p>终端 JSON 查看器。</p> <p>8、<a href="https://github.com/go-resty/resty">Resty v2.8 发布</a></p> <p>Go 的简单 HTTP 和 REST 客户端库。</p> <h2>文章</h2> <p>1、<a href="https://mp.weixin.qq.com/s/VMzhyySny60zABnxlzlVjQ">Golang高性能编程实践</a></p> <p>Go 中高性能编程是一个经久不衰的话题,本文尝试从实践及源码层面对 Go 的高性能编程进行解析。</p> <p>2、<a href="https://tonybai.com/2023/09/23/p2p-rtc-implementation-with-go-and-webrtc-data-channel/">使用Go和WebRTC data channel实现端到端实时通信</a></p> <p>近期,一项目恰用到了RTC技术,我就顺便翻阅了一些资料,并用Go建立了一个端到端数据通信的小demo,这里给大家分享一下。</p> <p>3、<a href="https://tonybai.com/2023/09/10/understand-go-forward-compatibility-and-toolchain-rule/">聊聊Go语言的向前兼容性和toolchain规则</a></p> <p>本文就和大家详细聊聊Go语言的向前兼容性以及Go 1.21中新引入的toolchain的使用规则。</p> <p>4、<a href="https://www.dolthub.com/blog/2023-09-08-much-ado-about-nil-things/">关于nil的事情:更多的陷阱</a></p> <p>之前,我写了一篇关于困扰Go新手的陷阱的文章。这些都是我在使用go-mysql-server时个人学到的每一课,go-mysql-server是完全用Go编写的MySQL的直接替代品。</p> <h2>开源项目</h2> <p>1、<a href="https://github.com/zmb3/spotify">spotify</a></p> <p>Spotify Web API 的 Go 封装。</p> <p>2、<a href="https://github.com/rednafi/httpurr">httpurr</a></p> <p>在终端快速查看 HTTP 状态码信息。</p> <p>3、<a href="https://github.com/leaanthony/u">u</a></p> <p>将 “unset” 状态添加到 Go 的类型。</p> <p>4、<a href="https://github.com/zalando/skipper">skipper</a></p> <p>一个用于服务组合的 HTTP 路由器和反向代理。</p> <h2>资源&amp;&amp;工具</h2> <p>1、<a href="https://github.com/go-slog/awesome-slog">awesome-slog</a></p> <p>slog 包相关的文章。</p> <p>2、<a href="https://github.com/eliben/static-server">static-server</a></p> <p>用于提供静态文件的简单、零配置 HTTP 服务器 CLI。</p> <p>3、<a href="https://github.com/johnfercher/maroto">maroto</a></p> <p>一种创建 PDF 的 maroto 方式。Maroto 受到 Bootstrap 的启发,使用 gofpdf。快速简单。</p> <h2>订阅</h2> <p>这个周刊每周日发布,同步更新在<a href="https://studygolang.com/go/weekly">Go语言中文网</a>和<a href="https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91">微信公众号</a>。</p> <p>微信搜索"Go语言中文网"或者扫描二维码,即可订阅。</p> <p><img src="https://imgproxy.citrusreader.com/lLKBPWt3y7qcSOJ57zPWJ1cjQNtzKEtVJEnwGrrE00k/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL3dlY2hhdC5wbmc" alt="wechat" referrerpolicy="no-referrer"></p>

2023/9/24
阅读更多

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

<p>这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:<a href="https://github.com/polaris1119/golangweekly">polaris1119/golangweekly</a>),欢迎投稿,推荐或自荐文章/软件/资源等,请<a href="https://github.com/polaris1119/golangweekly/issues">提交 issue</a> 。</p> <p>鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。</p> <p><img src="https://imgproxy.citrusreader.com/y_1gU1DFUMztJ_-ihODJMiOhLLXCc0X1Egjt9Xd3ZMc/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL2lzc3VlMjAwL2NvdmVyLmpwZWc" alt referrerpolicy="no-referrer"></p> <p>题图:Go 项目的代码库生成器</p> <h2>资讯</h2> <p>1、<a href="https://github.com/antonmedv/expr">expr v1.15.0 发布</a></p> <p>Go 的表达式语言。</p> <p>2、<a href="https://github.com/AlexxIT/go2rtc">go2rtc v1.7 发布</a></p> <p>支持各种协议的流媒体应用程序。</p> <p>3、<a href="https://github.com/juicedata/juicefs">juicefs v1.1 发布</a></p> <p>基于 redis 和 S3 构建的分布式 POSIX 文件系统。</p> <p>4、<a href="https://github.com/johnkerl/miller">miller v6.9 发布</a></p> <p>文本数据处理的瑞士军刀,Go 实现。</p> <p>5、<a href="https://github.com/StackExchange/dnscontrol">dnscontrol v4.3 发布</a></p> <p>一个用于维护 DNS 区域的系统。</p> <p>6、<a href="https://github.com/rabbitstack/fibratus">fibratus v2.0 发布</a></p> <p>Windows 内核勘探和追踪的现代工具。</p> <p>7、<a href="https://github.com/osrg/gobgp">gobgp v3.18 发布</a></p> <p>BGP 的 Go 实现。</p> <h2>文章</h2> <p>1、<a href="https://mp.weixin.qq.com/s/7nK4whfh0Owwhmq_67_eYg">盘点 Go 语言的那些日志库:你用了哪个?</a></p> <p>在本文中,将介绍Go语言中最流行和最优秀的日志库,并给出每个库的使用示例代码。</p> <p>2、<a href="https://mp.weixin.qq.com/s/2tFBe6LH84dZnOcfkgX32w">探索 Go1.21 中的 slices 包:原理,特点和示例</a></p> <p>slices 标准库是 Go 1.21 新增的一个包,它提供了许多对切片(slices)进行常见操作的泛型函数,可以适用于任何元素类型的切片。</p> <p>3、<a href="https://mp.weixin.qq.com/s/bOvXuDl-h1YTa4i1LlHqWQ">Go 1.21 是不是还没用上?新版又来了</a></p> <p>Go Team 发布了 Go1.21.1 和 Go1.20.8,这是两个小版本,主要涉及安全更新。</p> <p>4、<a href="https://mp.weixin.qq.com/s/dOroy7XZk4SWFcl2PZtzzw">微服务回归单体,代码行数减少75%,性能提升1300%</a></p> <p>QQ 浏览器搜索 —— 基础架构团队出品。</p> <p>5、<a href="https://mp.weixin.qq.com/s/a2LSIrPSTjo5zlWWiEpjUA">吵翻了!到底该选 Rust 还是 Go,成2023年最大技术分歧</a></p> <p>虽然 Rust 和 Go 在语法和风格上差别很大,但它们都是构建软件的一流工具。</p> <h2>开源项目</h2> <p>1、<a href="https://github.com/lotusdblabs/lotusdb">lotusdb</a></p> <p>Go 编写的最先进的键值存储,速度极快,兼容 LSM 树和 B+ 树。</p> <p>2、<a href="https://github.com/pion/turn">turn</a></p> <p>用于构建 TURN 客户端和服务器的 API。</p> <p>3、<a href="https://github.com/ShindouMihou/siopao">siopao</a></p> <p>Golang 的简化文件操作。</p> <h2>资源&amp;&amp;工具</h2> <p>1、<a href="https://autostrada.dev/">autostrada</a></p> <p>Go 项目的代码库生成器。一个站点,可让你从各种选项中进行选择(webapp与JSON API、SQLite与Postgres-添加身份验证、安全cookie、会话等),然后下载从这些选项构建的自定义代码库以继续构建应用程序。</p> <p>2、<a href="https://github.com/avamsi/climate">climate</a></p> <p>CLI Mate 旨在让在 Go 中创建 CLI 变得简单(而且有趣!),类似于 python-fire。</p> <p>3、<a href="https://codeberg.org/gothub/gothub">gothub</a></p> <p>用 Go 编写的 GitHub 替代前端。</p> <h2>订阅</h2> <p>这个周刊每周日发布,同步更新在<a href="https://studygolang.com/go/weekly">Go语言中文网</a>和<a href="https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91">微信公众号</a>。</p> <p>微信搜索"Go语言中文网"或者扫描二维码,即可订阅。</p> <p><img src="https://imgproxy.citrusreader.com/lLKBPWt3y7qcSOJ57zPWJ1cjQNtzKEtVJEnwGrrE00k/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL3dlY2hhdC5wbmc" alt="wechat" referrerpolicy="no-referrer"></p>

2023/9/10
阅读更多

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

<p>这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:<a href="https://github.com/polaris1119/golangweekly">polaris1119/golangweekly</a>),欢迎投稿,推荐或自荐文章/软件/资源等,请<a href="https://github.com/polaris1119/golangweekly/issues">提交 issue</a> 。</p> <p>鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。</p> <p><img src="https://imgproxy.citrusreader.com/5qKO0xLplf5ZYmwko0vNgdfZLSpjm6A3A9Jk9KM3PLM/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL2lzc3VlMTk5L2NvdmVyLnBuZw" alt referrerpolicy="no-referrer"></p> <p>题图:一图掌握 Go1.21 的新特性</p> <h2>资讯</h2> <p>1、<a href="https://github.com/golang/go/issues/61897">新提案:新包 iter</a></p> <p>迭代用,rsc 提出的。</p> <p>2、<a href="https://github.com/tinygo-org/tinygo/releases/tag/v0.29.0">tinygo 0.29.0 发布</a></p> <p>支持 Go1.21。</p> <p>3、<a href="https://github.com/qax-os/excelize">Excelize 2.8 发布</a></p> <p>用于处理 Excel/XLSX 文档的库。</p> <p>4、<a href="https://github.com/tetratelabs/wazero">wazero v1.5.0 发布</a></p> <p>零依赖的 WebAssembly 运行时库。</p> <p>5、<a href="https://github.com/Shopify/toxiproxy">toxiproxy v2.6.0 发布</a></p> <p>模拟混乱网络条件的 TCP 代理。</p> <p>6、<a href="https://github.com/FerretDB/FerretDB">FerretDB v1.9.0 发布</a></p> <p>MongoDB 的替代品。</p> <p>7、<a href="https://github.com/pdfcpu/pdfcpu">pdfcpu v0.5 发布</a></p> <p>Go 语言 PDF 处理器。</p> <h2>文章</h2> <p>1、<a href="https://betterstack.com/community/guides/logging/best-golang-logging-libraries/">Go 日志包:前 8 个库的比较</a></p> <p>zap、zerolog、slog 等。</p> <p>2、<a href="https://mp.weixin.qq.com/s/BW8buklwMCi_0M6AK0H0iA">Go设计模式之责任链模式</a></p> <p>设计模式掌握下。</p> <p>3、<a href="https://mp.weixin.qq.com/s/2Lx1XsgpDskZrxpdW7Ki1Q">Go:异或运算的妙用</a></p> <p>通过对两个相同长度的二进制数进行逐位比较,若对应位的值不同,结果为 1, 否则结果为 0。</p> <p>4、<a href="https://tonybai.com/2023/08/30/how-to-build-with-only-archive-in-go/">编译Go应用的黑盒挑战:无源码只有.a文件,你能搞定吗?</a></p> <p>本文就来从技术角度来探讨一下这些hack方法,但并不推荐使用!</p> <p>5、<a href="https://tonybai.com/2023/09/01/slog-a-new-choice-for-logging-in-go/">slog正式版来了:Go日志记录新选择!</a></p> <p>Go 1.21 正式版包含的。</p> <h2>开源项目</h2> <p>1、<a href="https://github.com/zknill/sqledge">sqledge</a></p> <p>将 postgres 复制到 SQLite。</p> <p>2、<a href="https://github.com/IBM/fp-go">fp-go</a></p> <p>Go 函数式编程库。</p> <p>3、<a href="https://github.com/platypusguy/jacobin">jacobin</a></p> <p>一个不仅仅是用 Go 编写的最小JVM,能够运行 Java 17 个类。</p> <p>4、<a href="https://github.com/morrisxyang/xreflect">xreflect</a>(作者自荐)</p> <p>简单易用的反射工具库,支持设置嵌套结构体字段,函数调用等。</p> <p>5、<a href="https://github.com/webws/go-moda">go-moda</a></p> <p>一个基于 Go 语言的通用 http grpc 开发框架。</p> <h2>资源&amp;&amp;工具</h2> <p>1、<a href="https://miro.com/app/board/uXjVMBkmPPQ=/">Go1.21 可视化指南</a></p> <p>思维导图掌握 Go1.21 新特性,还有 Go1.18 ~ Go1.20 的。</p> <p>2、<a href="https://github.com/alexellis/arkade">arkade</a></p> <p>面向开发人员工具的开源市场。</p> <p>3、<a href="https://github.com/docker/compose">compose</a></p> <p>使用 Docker 定义和运行多容器应用程序。</p> <h2>订阅</h2> <p>这个周刊每周日发布,同步更新在<a href="https://studygolang.com/go/weekly">Go语言中文网</a>和<a href="https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91">微信公众号</a>。</p> <p>微信搜索"Go语言中文网"或者扫描二维码,即可订阅。</p> <p><img src="https://imgproxy.citrusreader.com/lLKBPWt3y7qcSOJ57zPWJ1cjQNtzKEtVJEnwGrrE00k/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL3dlY2hhdC5wbmc" alt="wechat" referrerpolicy="no-referrer"></p>

2023/9/3
阅读更多

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

<p>这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:<a href="https://github.com/polaris1119/golangweekly">polaris1119/golangweekly</a>),欢迎投稿,推荐或自荐文章/软件/资源等,请<a href="https://github.com/polaris1119/golangweekly/issues">提交 issue</a> 。</p> <p>鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。</p> <p><img src="https://imgproxy.citrusreader.com/JC_-xsH_rAnQbQu5xGfAB_AEznGyg7Z5299vRJVsurA/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL2lzc3VlMTk4L2NvdmVyLmpwZWc" alt referrerpolicy="no-referrer"></p> <p>题图:Go1.21 发布</p> <h2>资讯</h2> <p>1、<a href="https://github.com/dgraph-io/badger">BadgerDB v4.2 发布</a></p> <p>BadgerDB 是一个用纯 Go 编写的可嵌入,持久和快速键值(KV)数据库。 它是 Dgraph(快速,分布式图数据库)的基础数据库。它打算成为 RocksDB 等非基于 Go 的键值存储的高性能替代品。</p> <p>2、<a href="https://github.com/go-playground/validator">validator v10.15.0 发布</a></p> <p>该验证器基于标签对结构和单个字段实现值验证。</p> <p>3、<a href="https://github.com/charmbracelet/pop">pop v0.2 发布</a></p> <p>通过终端发送邮件。</p> <p>4、<a href="https://github.com/openfga/openfga">openfga v1.3 发布</a></p> <p>一个高性能和灵活的授权/权限引擎。</p> <p>5、<a href="https://github.com/avast/retry-go">retry-go v4.5 发布</a></p> <p>简单的重试机制包。</p> <p>6、<a href="https://github.com/go-kratos/kratos">kratos v2.7 发布</a></p> <p>B 站开源的 Go 微服务框架。</p> <h2>文章</h2> <p>1、<a href="https://mp.weixin.qq.com/s/6dLtjHbtDRekVHC8G_Rv9w">Go 每日一库之 zap 高性能设计与实现</a></p> <p>zap 是 Uber 开源的 Go 高性能日志库,性能远超于标准库和其他开源日志库。</p> <p>2、<a href="https://mp.weixin.qq.com/s/YIz1s5eSXy3t4feSWxJiAg">Go中url.ParseRequestURI和url.Parse函数的踩坑记</a></p> <p>实际工作中遇到的问题。</p> <p>3、<a href="https://mp.weixin.qq.com/s/FLW0v_3qZOi8GjB3dtDavA">Go 2永远不会给Go 1带去破坏性变化</a></p> <p>rsc 说不会破坏。</p> <p>4、<a href="https://mp.weixin.qq.com/s/am9dfFLnRE51ETwEnsOu2w">Go每日一库之 vegeta — http压力测试工具库</a></p> <p>今天给大家推荐的是一个对HTTP接口做压力测试的工具:vegeta。</p> <p>5、<a href="https://dev.to/mokiat/proper-http-shutdown-in-go-3fji">在 Go 中正确关闭 HTTP</a></p> <p>直到今天,我仍然遇到在Go中优雅地关闭HTTP服务器时遇到问题的代码。这就是为什么我决定写一篇关于这个的文章。</p> <p>6、<a href="https://colobu.com/2023/08/18/go1-21-generics/">Go 1.21 中的泛型推断</a></p> <p>Go 1.21 已经发布了,带来了一系列的改进,例如更好的泛型类型推断(本文的内容);新的内置函数min<code>,max和clear</code>;以及标准库中的几个新软件包(maps<code>,slices</code>,cmp<code>,log/slog和testing/slogtest</code>)。</p> <h2>开源项目</h2> <p>1、<a href="https://github.com/ebitengine/oto">oto</a></p> <p>在多个平台上播放声音的低级库。</p> <p>2、<a href="https://github.com/iamkoch/ensure">ensure</a></p> <p>基于场景的 Go 测试框架。</p> <p>3、<a href="https://github.com/lomsa-dev/gonull">gonull</a></p> <p>用于轻松处理可为空值的Go包。</p> <p>4、<a href="https://github.com/swiftcarrot/queryx">queryx</a>(作者自荐)</p> <p>支持数据库自动管理的 Go ORM。</p> <p>5、<a href="https://github.com/here-Leslie-Lau/mongo-plus">mongo-plus</a>(作者自荐)</p> <p>简易的mongodb库。</p> <h2>资源&amp;&amp;工具</h2> <p>1、<a href="https://www.jaminologist.com/gophercon-uk-2023-the-ultimate-review-were-so-back/">GopherCon UK 2023</a></p> <p>终极回顾 - 我们回来了!</p> <p>2、<a href="https://changelog.com/gotime/288">Go 播客第 288 期</a></p> <p>深入了解 Go 的堆栈。</p> <p>3、<a href="https://aicodeconvert.com/">开源的代码转换工具(作者自荐)</a></p> <p>支持:自然语言转代码,描述需求就生成对应的代码;把代码一键转换为另一种代码语言实现。</p> <p>4、<a href="https://github.com/giftDad/protoc-gen-validate">protoc-gen-validate</a>(作者自荐)</p> <p>基于proto文件的注解,为每个 message 生成 validate 函数。</p> <p>5、<a href="https://github.com/Kubernetes-Learning-Playground/multi-cluster-informer">multi-cluster-informer</a></p> <p>基于golang实现的k8s多集群多资源的简易informer监听。</p> <h2>订阅</h2> <p>这个周刊每周日发布,同步更新在<a href="https://studygolang.com/go/weekly">Go语言中文网</a>和<a href="https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91">微信公众号</a>。</p> <p>微信搜索"Go语言中文网"或者扫描二维码,即可订阅。</p> <p><img src="https://imgproxy.citrusreader.com/lLKBPWt3y7qcSOJ57zPWJ1cjQNtzKEtVJEnwGrrE00k/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL3dlY2hhdC5wbmc" alt="wechat" referrerpolicy="no-referrer"></p>

2023/8/27
阅读更多

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

<p>这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:<a href="https://github.com/polaris1119/golangweekly">polaris1119/golangweekly</a>),欢迎投稿,推荐或自荐文章/软件/资源等,请<a href="https://github.com/polaris1119/golangweekly/issues">提交 issue</a> 。</p> <p>鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。</p> <p><img src="https://imgproxy.citrusreader.com/csO27T3OZLT9XqyPEWfw3-iV0GZVR-xQaVhWWsX1uqE/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL2lzc3VlMTk3L2NvdmVyLmpwZWc" alt referrerpolicy="no-referrer"></p> <p>题图:go env</p> <h2>资讯</h2> <p>1、<a href="https://google.qualtrics.com/jfe/form/SV_4Vi4bNaMQhQdqSi?s=b">Go 开发者调查开始</a></p> <p>官方的调查。</p> <p>2、<a href="https://github.com/TypicalAM/goread">goread v1.5 发布</a></p> <p>一个漂亮的可以在终端中阅读你的 RSS 提要!</p> <p>3、<a href="https://github.com/golang/go/issues/61637">提案:database/sql 增加新的 scan</a></p> <p>这个 Scan 即将整行扫描为一个值的方法。</p> <p>4、<a href="https://github.com/beevik/ntp">ntp v1.3 发布</a></p> <p>用于查询你选择的网络时间协议服务器的当前时间。</p> <p>5、<a href="https://github.com/elastic/go-elasticsearch">ElasticSearch Go 8.9 发布</a></p> <p>ElasticSearch Go 8.7 官方客户端发布。</p> <p>6、<a href="https://github.com/peterbourgon/ff">ff v3.4 发布</a></p> <p>该库对 flag.FlagSet 进行了扩展,支持按照命令行、配置文件、环境变量的顺序进行读取。这次的更新,支持从 yaml 配置格式读取配置。</p> <h2>文章</h2> <p>1、<a href="https://mp.weixin.qq.com/s/cidtQEAfuFWuYveKFbFvKQ">GoLand 2023.2 发布:有 AI 助手</a></p> <p>改进了与 Go 模块的集成,添加了用于将函数参数迁移到方法接收器(反之亦然)的重构,提供了 Kafka 监控插件,并支持 <a href="http://error.is/">error.Is</a> 和 <a href="http://error.as/">error.As</a>,还有“新的 AI 助手插件”,因为毕竟是 2023 年了。</p> <p>2、<a href="https://www.ardanlabs.com/blog/2023/07/getting-friendly-with-cpu-caches.html">得到友好的 CPU 缓存</a></p> <p>帮助 Go 开发者理解 CPU 缓存的原理和重要性,以及如何利用它们来提升程序的性能和质量。</p> <p>3、<a href="https://mp.weixin.qq.com/s/Wj4Vr0W-cl79Ss5VVSDr_w">抽丝剥茧,记一次 Go 程序性能优化之旅</a></p> <p>可以看看。</p> <p>4、<a href="https://mp.weixin.qq.com/s/Hq_jF5LdaM5bOwDlLCw7uA">Go 语言 iota 的神奇力量</a></p> <p>本文将带着大家深入探讨 iota 的神奇力量,包括 iota 的介绍和应用场景以及使用技巧和注意事项。</p> <p>5、<a href="https://mp.weixin.qq.com/s/FkqCidcHlH2cadtsSft-ig">Go 项目分层下的最佳 error 处理方式</a></p> <p>本文将探讨 Go 项目分层下的最佳 error 处理方式。准备好了吗?准备一杯你最喜欢的饮料或茶,随着本文一探究竟吧。</p> <p>6、<a href="https://mp.weixin.qq.com/s/QEBdspMhEBcCwgHouS9cKQ">Go 每日一库之比标准库更快 hash 算法</a></p> <p>该库是 go 语言实现的 xxHash 算法,比标准库性能更高,最终生成一个 64 位的整型 hash 值。</p> <p>7、<a href="https://mp.weixin.qq.com/s/bYob9smOpmTZyrxBeIAEVg">Go 语言的安全守护者</a></p> <p>为了帮助开发者发现和修复这些漏洞,Go 团队在 2021 年 11 月发布了一个新的工具:Govulncheck,Go 语言的安全守护者。</p> <h2>开源项目</h2> <p>1、<a href="https://github.com/nikolaydubina/llama2.go">llama2.go</a></p> <p>LLaMA-2 Go 接口。还有另外一个 &lt;<a href="https://github.com/tmc/go-llama2&amp;gt;%E3%80%82">https://github.com/tmc/go-llama2&amp;gt;。</a></p> <p>2、<a href="https://godocs.io/git.sr.ht/~jamesponddotco/imgdiet-go">imgdiet</a></p> <p>imgdiet 包利用 C 的 [libvips] 图像处理库及其 Go 绑定 [govips] 提供了简单快速的图像处理和压缩解决方案。</p> <p>3、<a href="https://github.com/roadrunner-server/roadrunner">roadrunner</a></p> <p>一个开源(MIT 许可)高性能 PHP 应用程序服务器、负载均衡器和进程管理器。它支持作为服务运行,并且能够在每个项目的基础上扩展其功能。</p> <p>4、<a href="https://github.com/sqlc-dev/sqlc">sqlc</a></p> <p>从 SQL 生成类型安全代码。</p> <p>5、<a href="https://github.com/risor-io/risor">risor</a></p> <p>面向 Go 开发人员和 DevOps 的快速灵活的脚本语言。</p> <p>6、<a href="https://github.com/deep-project/moss">moss</a>(作者自荐)</p> <p>一款简单轻量的内容管理系统。</p> <p>7、<a href="https://github.com/lxzan/gws">gws</a>(作者自荐)</p> <p>高吞吐低消耗用户友好的 websocket server &amp; client。</p> <h2>资源&amp;&amp;工具</h2> <p>1、<a href="https://pkg.go.dev/golang.org/x/tools/cmd/gonew">gonew</a></p> <p>一个实验性的工具,目的是为了探索如何使用项目模板来简化 Go 开发者的工作流程。</p> <p>2、<a href="https://github.com/nickfiggins/tstat">tstat</a></p> <p>提供了一种友好的方式来查询 Go 测试输出和覆盖配置文件。</p> <p>3、<a href="https://github.com/itchyny/bed">bed</a></p> <p>Go 实现的二进制编辑器。</p> <p>4、<a href="https://github.com/cuishuang/explain-source-code-by-chatgpt">explain-source-code-by-chatgpt(作者自荐)</a></p> <p>让 chatgpt 讲解 go 源码中每一个文件,变量,struct 和 func 的作用。</p> <p>5、<a href="https://github.com/StudyPlace-io/Golang-Concurrency-Pattern-Demo">Golang-Concurrency-Pattern-Demo</a>(作者自荐)</p> <p>提供各种常见的并发模式 demo。</p> <p>6、<a href="https://github.com/chenmingyong0423/go-optioner">go-optioner</a>(作者自荐)</p> <p>一个根据结构体定义自动生成函数选项模式(functional options pattern)代码的工具。</p> <h2>订阅</h2> <p>这个周刊每周日发布,同步更新在<a href="https://studygolang.com/go/weekly">Go语言中文网</a>和<a href="https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91">微信公众号</a>。</p> <p>微信搜索"Go语言中文网"或者扫描二维码,即可订阅。</p> <p><img src="https://imgproxy.citrusreader.com/lLKBPWt3y7qcSOJ57zPWJ1cjQNtzKEtVJEnwGrrE00k/raw:1/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvbGFyaXMxMTE5L2dvbGFuZ3dlZWtseS9tYXN0ZXIvZG9jcy9pbWdzL3dlY2hhdC5wbmc" alt="wechat" referrerpolicy="no-referrer"></p>

2023/8/6
阅读更多

推荐订阅

| 精品推荐 | 技术干货 | 职场成长 | 社区动态 | 组件物料 | 行业动态 | | --------- | -------- | -------- | --------- | -------- | -------- | | recommend | quality | growth | community | material | industry |

::: tip 订阅 [管理与运维](https://tidb.net/blog/c/management-and-operation),其源网址为 `https://tidb.net/blog/c/management-and-operation`,请参考该 URL 指定部分构成参数,此时路由为 [`/tidb/blog/c/management-and-operation`](https://rsshub.app/tidb/blog/c/management-and-operation)。 ::: | 分类 | ID | | -------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | [全部文章](https://tidb.net/blog) | [latest](https://rsshub.app/tidb/blog) | | [管理与运维](https://tidb.net/blog/c/management-and-operation) | [management-and-operation](https://rsshub.app/tidb/blog/c/management-and-operation) | | [实践案例](https://tidb.net/blog/c/practical-case) | [practical-case](https://rsshub.app/tidb/blog/c/practical-case) | | [架构选型](https://tidb.net/blog/c/architecture-selection) | [architecture-selection](https://rsshub.app/tidb/blog/c/architecture-selection) | | [原理解读](https://tidb.net/blog/c/principle-interpretation) | [principle-interpretation](https://rsshub.app/tidb/blog/c/principle-interpretation) | | [应用开发](https://tidb.net/blog/c/application-development) | [application-development](https://rsshub.app/tidb/blog/c/application-development) | | [社区动态](https://tidb.net/blog/c/community-feeds) | [community-feeds](https://rsshub.app/tidb/blog/c/community-feeds) |