首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
Go error
Go_error
创建于2026-04-08
订阅专栏
分享 Go 编程最佳实践。What the f*ck Go! 关注 gzh 【Go error】获取最近文章~
暂无订阅
共17篇文章
创建于2026-04-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Go database/sql 基于临时 channel 传递连接
Go 的 database/sql 包中,连接池的管理是其核心功能之一,其中通过临时创建的 channel 来传递连接的方式是一个非常巧妙的设计。
Go 循环栅栏
CyclicBarrier 循环栅栏 循环栅栏(CyclicBarrier),常常应用于重复进行一组 goroutine 同时执行的场景中。
Go channel 计数信号量
Go 并发设计的一个惯用法就是将带缓冲 channel 用作计数信号量(counting semaphore)。
Go channel 采用最快回应
有时候,一份数据可能同时从多个数据源获取。这些数据源将返回相同的数据。因为各种因素,这些数据源的回应速度参差不一,甚至某个特定数据源的多次回应速度之间也可能相差很大。
Go channel 数据聚合
一个数据聚合模块的工作协程将多个数据流合为一个数据流(就是指有多个源 channel 输入、一个目的 channel 输出的情况)。
Go channel 管道模式
管道模式就是将前面程序的输出数据作为输入数据传递给后面的程序。 在 Go 中管道模式被实现成了由 channel 连接的一条“数据流水线”。
Go channel 创建模式
在稍复杂一些的并发程序中,需要考虑通过 CSP 模型输入/输出原语的承载体 channel 在 goroutine 之间建立联系。
Go 并发控制 Wait & Cancel
Wait 和 Cancel 两种并发控制方式,在使用 Go 开发服务的时候到处都有体现,只要使用了并发就会用到这两种模式。
Go 并发控制 singleflight
singleflight (golang.org/x/sync/singleflight) 提供了重复函数调用抑制机制。 它能够抑制同一时间获取相同数据的重复请求,尤其在解决缓存穿透或重复请求。
Go 并发控制 errgroup.Group
errgroup (golang.org/x/sync/errgroup) 为一组协程 goroutines 在执行共同任务的子任务时,提供同步、错误传播和上下文取消的功能。
Go 变量遮蔽
根本原因是因为,当编译器遇到一个名字引用时,它会对其定义进行查找,查找过程从最内层的词法域向全局的作用域进行。
Errors are values
在 Go 语言之父 Rob Pike 的 errors-are-values 一文中,Rob Pike 为我们呈现了 Go 标准库中使用了避免 if err != nil 反复出现的一种思路。
Go sort.Interface
Go 语言的 sort.Sort 函数不会对具体的序列和它的元素做任何假设。它使用了一个接口类型 sort.Interface 来指定通用的排序算法。
Go 语言 const & iota
Go 的 const 语法提供了“隐式重复前一个非空表达式”的机制。分享 Go 编程最佳实践。What the f*ck Go!
JSON decoding in Go
Go 处理 JSON 序列化与反序列化的一些技巧。欢迎关注 gzh 【Go error】获取最近文章~
Go 变长参数函数
一个函数的最后一个参数可以是一个变长参数; 一个函数可以最多有一个变长参数; 一个变长参数的类型总为一个切片类型。
Go 标识符的命名规范
Go 的设计哲学之一就是追求简单,因此在命名上一样秉承着简单的总体原则。要想做好 Go 标识符命名,至少要遵循两个原则:简单且一致;利用上下文辅助命名。