Go语言技术文章
-
讲清 Go sync.Cond 的可靠等待写法:为什么 Wait 返回后必须用 for 重新检查共享条件,如何配合 Locker 实现有界条件队列,以及 Cond、channel、Mutex 的选型边界。328 收藏 -
看到 Go 编译报告中的 moved to heap 时,不要只凭一条提示判断性能。本文用 -gcflags=-m=2 追踪地址和生命周期,再结合 -benchmem 对照确认是否值得优化。328 收藏 -
Go module checksum mismatch 不要先删 go.sum。本文通过 go mod download -json、go.sum、GOSUMDB 与 GOPROXY 对照,判断是内容变化、代理缓存还是私有模块配置边界。328 收藏 -
介绍 Go encoding/json 在动态解码时使用 Decoder.UseNumber 保留大整数文本,并安全转换为 int64、uint64 或 big.Int。328 收藏 -
Go 的文件上传接口不能只依赖前端限制。本文用 net/http 的 http.MaxBytesReader 包住请求体,拆解限制位置、超限后的 413 响应、读取顺序与连接复用边界,并给出可运行的处理函数和验收清单。327 收藏 -
Go 官方 watchflakes issue #81328 记录了 cgo_stale 在 ppc64 构建器的 signal: killed。本文从测试脚本、CGO_CFLAGS、GOCACHE 与编译器日志入手,说明为什么不能把资源终止误判成缓存陈旧,并给出可复查的证据链。327 收藏 -
内网模块代理不是简单把 GOPROXY 改成一个地址。本文拆开逗号与竖线的回源规则,并说明 GOPRIVATE、GONOPROXY、GONOSUMDB 如何组合,避免私有模块泄露或代理故障被误判为没有回源。327 收藏 -
讲清 Go x509.SystemCertPool 在 Linux 容器、macOS 和 Windows 中的兼容处理:系统池优先,异常时回退,追加自定义 CA,并区分根证书、PEM 和主机名错误。327 收藏 -
用 errgroup.WithContext、SetLimit、TryGo 和 Wait 处理 Go 并发读取与转换任务,讲清并发上限、错误取消、结果收口和常见边界。327 收藏 -
Golang · Go教程 | 2星期前 | 性能优化 · 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 os.File.WriteAt 的独立偏移语义、并发写入边界、短写处理和最终文件验收方法。326 收藏