Go问答技术文章
-
Go 1.27 提升了 compress/flate 的压缩速度,也可能改变 Writer 输出字节。本文区分字节快照与解压语义,给出升级测试和必须锁定产物的判断方法。194 收藏 -
Go 1.27 为 crypto/tls 增加 MLKEM1024。本文用最小配置和握手检查说明 CurvePreferences 如何显式声明候选组,以及 tlsmlkem、tlssecpmlkem 何时只影响默认选择。163 收藏 -
Go 1.27 新增 ConnectionState.LocalCertificate。本文区分本端证书链、对端证书链与恢复会话,给出可核对的 TLS 观测代码和排查边界。218 收藏 -
gopls 0.23 移除了 fix、inspect 和 bug 子命令。本文按实际迁移边界说明 codeaction、remote、serve 的职责变化,并处理 importsSource 与 analyzer 配置兼容问题。443 收藏 -
围绕 strings.CutLast 的空分隔符、未命中和末尾分隔符场景,解释 found 返回值与 LastIndex 兼容实现的判断边界。243 收藏 -
Go 1.27 的 URL.Clone 会深拷贝 URL 字段,但 URL 本身保存的是 RawQuery 字符串;真正的 map[string][]string 需要用 Values.Clone 隔离。本文拆开两层边界,给出改参、写回和复查方法。459 收藏 -
Go 1.27 为 go test -json 的 output 事件增加可选 OutputType。通过 Action、Package、Test、OutputType 和 FailedBuild 的组合,解析器可以区分测试框架帧、失败首行、失败续报与构建失败,避免 CI 报告重复计数。467 收藏 -
Go 1.27 为 net/http.Server 增加 MaxHeaderValueCount。本文从单个请求头的多值限制讲起,说明默认行为、拒绝路径、代理链回归和兼容检查。305 收藏 -
Go 1.23 引入的 slices.Collect 会把 iter.Seq 收集为新切片,但空序列返回 nil,容量也不是 API 承诺。本文拆开 nilness、容量、元素别名和重复消费边界,给出稳定测试写法。416 收藏 -
Go 1.27 调整 go tool trace 的 -http 监听默认值。本文对比 :6060、127.0.0.1:6060 与 0.0.0.0:6060,说明本机和远程调试如何保留清晰的访问边界。293 收藏 -
Go 1.27 的 httptest.NewTestServer 把 HTTP 测试接入内存网络,适合和 testing/synctest 一起验证并发、超时与取消语义,但它不替代真实网络和部署验收。221 收藏 -
从 AddSource、Level 和 ReplaceAttr 三个配置点拆解 Go slog 的日志字段成本,给出保留源位置、裁剪路径和验收输出的实用方法。287 收藏 -
slices.SortStableFunc 并不会替你修正比较函数。本文从负、零、正返回值、相等元素保序和严格弱序三个边界,说明怎样写出可检查的稳定排序比较器。416 收藏 -
context.Err 和 context.Cause 不是同一个答案。本文用父子 Context、首个取消者和原因转发三个边界,说明为什么只能得到 context.Canceled,以及日志该如何记录。473 收藏 -
看到 Go 服务里的 channel 阻塞,先别急着判定 goroutine 泄漏。本文比较普通 goroutine 栈与 Go 1.27 goroutineleak profile 的证据边界,给出一套可复核的排查和上线清单。160 收藏