有状态和无状态的接口:REST 的无状态约束,以及 JWT 撞上的撤销难题
长连接不等于有状态。用两个具体例子讲清楚无状态和有状态的定义,以及 JWT 为了做到无状态认证撞上的撤销难题。
Go 热重载:air 怎么工作的,以及它和优雅关闭的一个冲突
Go 里的热重载不是真的热更新,是监听变化重新编译再重启进程。air 默认还会直接强杀旧进程,跟优雅关闭逻辑冲突。
Postman Pre-request Script 实战:自动生成签名、验证码与 Token 续期
MD5 签名、Google Authenticator 验证码、Token 续期,三个 Pre-request Script 案例同一类坑:不报错,值不对。
Go 优雅关闭:Shutdown() 只是一半,K8s 里还有个隐藏竞态
http.Server.Shutdown() 该等的都等了,K8s 滚动发布偶尔还是 502——问题出在 SIGTERM 和 Endpoint 摘除的竞态。
Go 接口设计:接口参数不够用时,该不该加个 struct
接口参数不够用时,借道传参能跑但埋雷。Go struct 零值兜底能让扩展变成非破坏性变更,但这也是双刃剑——Stripe 官方吃过零值歧义的亏。
Postman 进阶技巧:告别手动复制粘贴的高效用法
Postman 不只是图形化的 curl。自动登录续 Token、批量编辑、curl 互转、CLI 接入 CI——几个真正省时间的进阶用法。
Go Context 实战:超时、取消与跨协程数据传递
Go 里几乎所有函数第一个参数都是 ctx context.Context。取消、超时、跨协程传值这三件事,Context 具体怎么用、有哪些坑。
Go 函数式选项模式:优雅处理构造函数的可选参数
Go 没有默认参数和函数重载,构造函数一多可选项就容易参数爆炸。函数式选项模式怎么解决,以及什么时候不该用它。
Go 错误处理进阶:errors.Is、errors.As 与错误包装
sentinel error 用 == 比较,一旦被 fmt.Errorf 包一层就会失效。errors.Is、errors.As 和错误包装链怎么用。
Docker 教程:从镜像容器概念到 Dockerfile 与 compose 实战
镜像、容器、仓库三个概念一张图讲清,docker run 参数拆解、数据挂载、Go 多阶段构建、compose 入门与磁盘满了怎么清理。














