Go语言技术文章
-
用 Go 的接口值模型解释 typed nil 坑:接口变量由动态类型和动态值两部分组成,只有两者都为空才等于 nil;当 error 接口保存了 nil 指针但动态类型存在时,err != nil 会成立。238 收藏 -
用一个 Go 服务配置管理场景讲清楚热更新的稳定写法:启动时加载配置,监听文件变化,先解析校验再用 atomic.Value 替换运行时配置,错误配置不覆盖旧值,让服务无需重启也能安全生效。458 收藏 -
本文用 Go 泛型实现切片保序去重,并进一步扩展到结构体按字段去重,讲清 comparable 约束、seen map、首条保留和常见边界处理。501 收藏 -
本文用订单查询场景,演示 Go 中如何用 fmt.Errorf 包装错误、用 errors.Is/As 判断根因和业务错误码,并在 HTTP 层统一返回清晰响应。413 收藏 -
本文用 Go 标准库实现一个轻量令牌桶限流器,演示如何按固定速率补充令牌、限制突发请求,并把它接入 HTTP 中间件保护高频接口。484 收藏 -
本文用一个完整 Go HTTP 服务示例,讲清楚如何在收到 SIGTERM 后先摘流,再等待请求完成,最后用超时上下文关闭服务,避免发布和重启时丢请求。340 收藏 -
用服务配置文件解析场景讲清楚 Go 处理 JSON 的稳定写法:用结构体标签承载字段映射,先填默认值,再用 decoder 检查未知字段,最后得到类型明确的配置对象。301 收藏 -
用批量处理任务场景讲清楚 Go worker pool 的实现方式:任务进入 jobs channel,固定数量 goroutine 消费任务,结果统一写入 results channel,并通过 close 和 WaitGroup 安全收尾。459 收藏 -
通过一个后端服务调用第三方接口的案例,演示 Go context.WithTimeout、defer cancel、HTTP 请求取消、错误判断和常见坑,避免接口一直等待。346 收藏 -
围绕 Go defer 在循环中的常见误用,解释为什么文件、连接、锁等资源会等到函数返回才释放,并给出函数拆分、显式关闭和错误处理的实战写法。418 收藏 -
通过一个 Go map 并发读写 panic 案例,解释普通 map 为什么不是并发安全的,并对比 RWMutex、sync.Map、分片 map 和 channel 拥有者模式的适用场景。109 收藏 -
把日志、指标、链路追踪和 pprof 串成 Go 服务故障复盘模板,形成可复用的排查闭环。710 收藏 -
讲解 Go 服务调用下游时如何设置超时预算、退避重试、熔断状态和可观测指标。687 收藏 -
从 errors.Is、errors.As、结构化日志和指标标签出发,设计能定位问题又不会刷屏的告警体系。664 收藏 -
整理 goroutine 泄漏的常见原因,用 context、pprof dump 和阻塞栈分组定位泄漏源。641 收藏