Go语言技术文章
-
今天解决了一个疑难杂症,起因是之前代理某内部API接口,请求先是出现卡顿,超时后报EOF错误。 但奇怪的是线上测试环境确是没问题的。 Google了一下,有人说可能是由于重复请求次数过多导473 收藏 -
用 io.NopCloser 把 Reader 适配为 ReadCloser,解释空 Close 与真实资源清理的边界,并给出请求体和资源所有权示例。472 收藏 -
Go 的 os.Rename 在 Windows 上失败,常见原因是文件句柄未关闭、目标路径是目录或跨目录限制。本文用 LinkError 保留上下文,并给出同目录临时文件发布方式。472 收藏 -
Go HTTP Server 用 ConnContext 保存连接编号与地址快照,handler 从请求上下文读取;结合完整示例说明私有键、连接复用与请求身份的边界。472 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 错误处理 · 文件读取 · Go教程 · Go bufio bufio.Reader ErrBufferFull ReadSlice bytes.Join 文本扫描
bufio.Reader.ReadSlice 遇到没有及时出现的换行符时会返回 ErrBufferFull 和一段暂存切片。本文说明怎样先复制片段、继续读取,再用 bytes.Join 拼回完整一行,并区分 EOF 与真实错误。472 收藏 -
Go context.WithValue 的字符串键可能与其他包发生相等值碰撞,导致值被意外覆盖或读取。本文解释可比较键与唯一键的区别,并给出包内自定义类型、类型安全访问器和迁移排查清单。472 收藏 -
Go os.ReadFile 失败时,先用 errors.Is 区分路径不存在与权限拒绝,再通过 *os.PathError、os.Stat 和父目录权限定位目录误当文件、路径上下文和运行身份问题。472 收藏 -
围绕 Go maps 包比较嵌套值的相等性,说明 maps.Equal 与 maps.EqualFunc 的选择边界,并处理切片、嵌套 map、nil 与空集合语义。472 收藏 -
Go gzip.Writer.Flush 会让流式数据更早可见,但高频调用会同步写出、增加同步标记并切碎压缩批次。本文给出消息边界、HTTP 缓冲和压测判断方法。472 收藏 -
Go 的 http.Cookie 设置成功后,浏览器是否发送主要由 Path 与请求 URL 的路径匹配决定。本文解释显式 Path、默认路径、排查顺序,以及删除 Cookie 时的配对规则。472 收藏 -
Go 的 encoding/gob 适合在 Go 程序之间保存结构化本地缓存。本文用带版本和过期时间的结构体演示原子写入、恢复、缓存失效处理,以及导出字段和结构体演进时的边界。472 收藏 -
客户端断开后,Go Handler 不会因为看到断开就自动停止全部代码;要让下游 HTTP、数据库和循环及时收尾,必须从 r.Context() 监听取消并继续向下传递。472 收藏 -
用固定 worker 数量和任务队列控制后台并发,避免任务高峰拖垮进程。472 收藏 -
Gonet包是开箱即用的网络基石,需手动处理TCP并发、超时、连接释放及UDP无连接特性,DNS解析需显式控制超时,其强大在于可控但需自行实现重连、分包、心跳等逻辑。472 收藏 -
Go语言中介者模式解决的核心问题是多个模块因频繁直接调用导致的网状强耦合,引发修改牵连多处、测试困难、复用性差;应通过统一事件通知接口、显式注册、ID化管理及并发安全分发来解耦。472 收藏