Go问答技术文章
-
系统证书环境变量改变后,应区分根证书来源与平台验证路径。本文说明 Go 1.27 的平台行为变化,以专用根池示例明确客户端信任边界,并提醒不要通过关闭 TLS 验证恢复连通。408 收藏 -
Golang · Go问答 | 6天前 | Go问答 · Go crypto/x509 RawSignatureAlgorithm SignatureAlgorithm UnknownSignatureAlgorithm 证书签名算法
Go crypto/x509 中 RawSignatureAlgorithm 保存的是 DER 编码的 AlgorithmIdentifier,不是可直接比较的算法名称。本文说明如何优先读取 SignatureAlgorithm,如何在未知或原始字段异常时解析 OID,并区分算法识别与签名验证。382 收藏 -
Go 1.27 将 crypto/tls Config.Rand 标记为弃用。本文说明生产配置为什么应保持 Rand 为 nil,以及测试中如何用 testing/cryptotest.SetGlobalRandom 获得可重复但有作用域边界的随机源。214 收藏 -
Go 1.24 之后,tls.Config.CurvePreferences 显式设置会覆盖默认密钥交换集合。本文说明如何重新启用 X25519MLKEM768,并处理 TLS 版本、客户端服务端重叠和传统回退。265 收藏 -
切换 JSON v2 时,应按字段协议处理 string 标签,而不是只替换 import。本文对比数字、文本、布尔与集合的适用边界,给出最小 DTO 和旧接口渐进迁移建议。195 收藏 -
Go 1.27 中 jsontext.Token 的 Int、Uint、Float 等数字访问器改为返回数值和 error。本文说明如何迁移调用、区分 ErrSyntax 与 ErrRange,并处理非数字 Token、截断、饱和值和 Token 生命周期。373 收藏 -
Golang · Go问答 | 6天前 | JSON · 错误处理 · go · 兼容性 · Go UTF-8 encoding/json/v2 encoding/json/jsontext JSON解码
encoding/json/v2 默认拒绝 JSON 字符串中的无效 UTF-8,因此旧数据在迁移或接入边界处可能出现解码失败。本文用真实无效字节说明严格模式、AllowInvalidUTF8(true) 和 U+FFFD 替换之间的关系,并给出兼容与拒绝的选择边界。170 收藏 -
Go 1.27 已移除 asynctimerchan。本文区分环境配置失效与模块指令报错,以单所有者计时器示例说明 Reset、Stop、排空及并发边界,避免继续依赖旧开关。252 收藏 -
Go 1.27 的 vet 会提示一种容易被忽略的错误包装问题:把实现 error 的值类型错误用指针形态传给 %w,随后 errors.As 按指针类型匹配就会失败。本文用最小代码区分值类型、指针类型和 As 目标,给出修复写法与排查清单。339 收藏 -
Go 1.27 调整了 go tool trace -http 只写端口时的默认监听范围。本文说明 :6060、localhost、127.0.0.1 和 0.0.0.0 的区别,并给出远程查看时更稳妥的 SSH 端口转发写法。279 收藏 -
Go 1.27 的 go test -json 会为 output 事件补充 OutputType。本文说明如何区分普通输出、frame、error 和 error-continue,并用 Go 按行消费交错的测试 JSON 事件。458 收藏 -
Go 1.27 对声明 go 1.27 及以上的模块合并零散 require 块。本文区分布局、indirect 与依赖版本变化,说明注释保留、工具链范围和团队接纳方式,避免把正常整理误判成升级。463 收藏 -
Go test -failfast 会在首个测试失败后停止启动新的测试,但不会把已经开始的并行测试瞬间杀掉。本文按串行、并行、清理和 CI 门禁的边界,说明如何用它快速定位失败。343 收藏 -
Go GC 参数改动后延迟升高,通常不是“GOGC 越小越快”这么简单。本文从 GC 周期、分配速率、GC assist 与软内存上限入手,给出最小复现、指标判断和单变量修正方法。333 收藏 -
runtime.ReadMemStats 统计的是 Go 运行时的分配与保留情况,不等于操作系统看到的进程 RSS。本文用字段对照和 Linux 最小采集示例说明差异来源与排查路径。423 收藏