Go语言技术文章
-
Go 数据库请求超时后仍占连接,通常不是把 timeout 调大就能解决。应从 HTTP 请求 Context 派生查询 Context,调用 QueryContext,关闭 Rows,并结合 DBStats 与数据库日志确认取消信号真的到达驱动和数据库。437 收藏 -
Go项目扫描时,导入依赖提示可能比真实风险更宽。本文用govulncheck和gopls的两类证据,区分模块命中、受影响符号与真实调用链,并整理成可复查的处置记录。266 收藏 -
本地多模块联调时,版本不生效不一定是 use 写错。先用 go env GOWORK 和 go env GOMOD 确认实际工作区,再区分 go.work 的本地模块、go.mod 要求与工作区构建列表,最后用 GOWORK=off 验证 CI 和发布边界。336 收藏 -
Go 1.26 的 newexpr fixer 可以把 newInt(10) 一类辅助函数改成 new(10)。本文从可选指针字段出发,说明 go fix -newexpr 的适用条件、go.mod 版本门槛,以及公共 API 删除前的回归边界。141 收藏 -
Go 1.27 提升了 compress/flate 的压缩速度,也可能改变 Writer 输出字节。本文区分字节快照与解压语义,给出升级测试和必须锁定产物的判断方法。194 收藏 -
Go 1.26 放开了泛型类型在类型参数列表中的自引用。用 Adder[A] 拆解类型集合、方法集合与实例化边界,分清普通接口实现和泛型方法,最后给出最小编译检查清单。143 收藏 -
Golang · Go问答 | 3天前 | TLS · Go问答 · 后量子密码 · 配置排查 · GODEBUG Go 1.27 TLS 1.3 MLKEM1024 CurvePreferences
Go 1.27 为 crypto/tls 增加 MLKEM1024。本文用最小配置和握手检查说明 CurvePreferences 如何显式声明候选组,以及 tlsmlkem、tlssecpmlkem 何时只影响默认选择。163 收藏 -
Go 1.26 为 testing.T、testing.B 和 testing.F 增加 ArtifactDir。本文用一个测试产物写入场景,讲清 -artifacts、-outputdir 与临时目录的保留边界。497 收藏 -
Go 1.27 新增 ConnectionState.LocalCertificate。本文区分本端证书链、对端证书链与恢复会话,给出可核对的 TLS 观测代码和排查边界。218 收藏 -
gopls 0.23 移除了 fix、inspect 和 bug 子命令。本文按实际迁移边界说明 codeaction、remote、serve 的职责变化,并处理 importsSource 与 analyzer 配置兼容问题。443 收藏 -
Go 1.26 为 runtime/metrics 增加了更细的调度指标。本文用一段紧凑的采样代码区分 runnable、waiting、running、GOMAXPROCS、运行时线程数与创建总量,说明哪些组合能提示排队或阻塞,哪些结论不能只靠一个数字得出。405 收藏 -
围绕 strings.CutLast 的空分隔符、未命中和末尾分隔符场景,解释 found 返回值与 LastIndex 兼容实现的判断边界。243 收藏 -
Go 1.26 迁移 B.Loop 基准时,重点不是把 b.N 换成一个新方法名,而是确认计时边界、函数调用保活、内联变化和死代码消除没有改变被测对象。402 收藏 -
Go 1.27 的 URL.Clone 会深拷贝 URL 字段,但 URL 本身保存的是 RawQuery 字符串;真正的 map[string][]string 需要用 Values.Clone 隔离。本文拆开两层边界,给出改参、写回和复查方法。459 收藏 -
围绕 Go 1.26 Green Tea GC 的小对象标记扫描、同口径基准和 nogreenteagc 回退对照,说明如何判断收益与定位回归。201 收藏