golang
已收录文章:158篇
-
Go无法真正零停机,必须通过net.Listener.File()导出fd、子进程用net.FileListener恢复、父进程Shutdown等待旧连接结束三者协同;直接ListenAndServe必因端口占用或SO_REUSEPORT调度不均导致connectionrefused或RST。403 收藏
-
cleanenv不支持自动探测格式,仅通过文件后缀识别解析器:.yaml/.yml→YAML、.json→JSON、.toml→TOML;无后缀或错误后缀将静默失败或panic,且不解析内容;ReadEnv与ReadConfig需手动控制加载顺序与覆盖逻辑。401 收藏
-
pebble.Open()后必须检查err并显式管理生命周期,Close()是必须调用而非可选,Get/Put需校验nilkey,批量写需防范超长key,Pebble无schema和跨key事务,仅为裸KV存储。401 收藏
-
retry.Attempts(3)表示总共执行3次(含首次),即最多重试2次;需写retry.Attempts(4)才能重试3回;必须配retry.Context(ctx)响应取消、retry.DelayType(retry.BackOffDelay)启用指数退避、retry.RetryIf过滤错误,且HTTP重试须克隆Body并区分临时性错误。397 收藏
-
围绕 Go 1.25 sync.WaitGroup.Go,讲清它如何减少 Add/Done 模板代码、panic 边界、错误处理限制、和 errgroup 的取舍,以及生产 review 清单。396 收藏
-
select是Go语言中处理多通道操作的关键机制,类似switch但仅用于通道的发送或接收,当多个通道就绪时随机选择一个执行,确保并发安全与高效通信。395 收藏