Go语言技术文章
-
介绍 Go encoding/json 在动态解码时使用 Decoder.UseNumber 保留大整数文本,并安全转换为 int64、uint64 或 big.Int。328 收藏 -
Go 业务超时应优先使用 time.Now 保留的单调时间语义,日志和跨服务协议则使用墙上时间或剩余 Duration。本文拆解校时影响、API 选择、序列化边界和 RPC deadline 的决策方法。328 收藏 -
介绍 Go 1.24+ 使用 http.Server.Protocols 开启明文 HTTP/2 的方法,涵盖同端口兼容、客户端核对、安全边界与审计清单。328 收藏 -
Golang · Go教程 | 4星期前 | 性能优化 · Go教程 · go bytes.Buffer bytes.Buffer Reset Go 缓冲区复用 Go Buffer 容量复用 Go Bytes 切片别名
Go 复用 bytes.Buffer 时,Reset 会把可读长度归零并保留底层存储。本文用连续写入、容量观察和 Bytes 切片复制说明正确用法与生命周期边界。327 收藏 -
Go 的 csv.Reader.LazyQuotes 只放宽双引号语法,不会取消字段数、分隔符和记录边界检查。本文按输入形态说明哪些脏 CSV 仍会失败,并给出可定位错误的读取写法。327 收藏 -
Go crypto/x509 中把自签名根证书加入 Roots 仍验证失败时,重点检查 Intermediates、服务器发送链、DNSName 和错误类型,本文给出可复用的排查代码与部署清单。327 收藏 -
Go sync.Pool取回旧对象时,问题通常来自复用对象没有建立完整的初始化协议。本文从Get后的重置、Put前的所有权检查和并发排查三个方面说明如何消除残留状态。327 收藏 -
介绍 Go tls.ConnectionState 的三种读取入口,解析 TLS 版本、密码套件、ALPN、叶子证书和验证链,并说明空字段边界。327 收藏 -
Go archive/zip 出现 directory size overflow 时,先区分单个文件大小、ZIP 中心目录大小和旧实现的 32 位字段限制,再按流式写入、Zip64、Close 错误和消费端兼容性逐项排查。326 收藏 -
讲清 Go xml.Decoder.Token 如何从 io.Reader 逐个读取大型 XML,并用 DecodeElement、Skip、InputPos 和 Token 生命周期规则实现低常驻内存的单记录处理。326 收藏 -
Go 1.23 起,sync.Map.Clear 可直接删除并发映射中的全部条目,清空后仍能继续 Store 和 Load。本文通过可重置缓存示例说明基本用法、并发写入边界、旧版本兼容方案,以及需要严格换代时的原子指针切换设计。326 收藏 -
Go HTTP 客户端已复用 Client 与 Transport,连接数仍上涨时,应检查 Response.Body 是否读到 EOF 并关闭。本文给出小响应体、错误状态码和大响应体的处理策略,并说明 HTTP/1.x 连接复用的边界。326 收藏 -
Go 的 bits.Add64 能同时返回 64 位和与一位进位。本文从 128 位加法扩展到任意长度 uint64 切片,讲清字序、进位传播、不等长补零和最高位溢出处理。325 收藏 -
RWMutex 不会天然比 Mutex 快。本文用并发配置缓存说明读写锁的临界区边界、待写者阻塞新读者、不可升级降级等语义,并给出可调整读写比例的基准模板,帮助你按真实竞争场景做选择。325 收藏 -
Go 遍历目录树时,可在 filepath.WalkDir 回调中识别 fs.ErrPermission:对子目录返回 fs.SkipDir 继续扫描其他分支,根目录不可访问则直接失败;常规文件再用 os.Open 做本次可读性确认,并汇总数量、字节数和有限错误样本。325 收藏