Go问答技术文章
-
Golang · Go问答 | 5天前 | 标准库 · go · database/sql · Go database/sql driver.ErrSkip NamedValueChecker DefaultParameterConverter ColumnConverter
Go 数据库驱动的 NamedValueChecker 不必覆盖所有参数类型。本文说明 driver.ErrSkip 如何把未处理类型交给 ColumnConverter 或 DefaultParameterConverter,并区分普通转换错误与 ErrRemoveArgument,帮助定位参数类型和数量问题。394 收藏 -
Golang · Go问答 | 5天前 | 标准库 · go · database/sql · Go database/sql NamedValue driver.NamedValueChecker ErrSkip ErrRemoveArgument
Go 数据库驱动可以通过 NamedValueChecker 接收自定义参数类型。本文用一个最小驱动侧示例讲清 Conn 与 Stmt 的检查顺序、值转换、ErrSkip 和 ErrRemoveArgument 的边界,帮助排查参数不生效或数量不匹配。419 收藏 -
ML-DSA 验签失败时,先区分 PEM、PKIX 解析和公钥动态类型,再检查参数、消息与上下文。本文给出安全类型断言示例,并说明类型正确不代表公钥身份可信。389 收藏 -
Go uuid.Parse 对 UUID 十六进制大小写不敏感,但会区分长度、连字符、前后空白和其他格式边界。本文说明 Parse、Validate 与 String 的配合方式,帮助排查请求参数解析失败。108 收藏 -
Go bytes.CutLast 找不到分隔符时应直接判断 found,而不是依赖 before 或 after 的长度。本文说明未命中、末尾命中、空分隔符、原始切片和 Go 版本边界。221 收藏 -
Go 1.27 新增的 strings.CutLast 会围绕最后一个分隔符返回 before、after、found,而 strings.LastIndex 只返回字节位置。本文用重复分隔符、缺少分隔符、空分隔符和中文字符串说明两者的边界。119 收藏 -
Go 升级后 ZIP 字节快照失败,不一定是归档损坏。本文区分整包哈希、内部校验与成员内容,按输入、元数据和压缩器逐层判断,并给出成员级测试及发布哈希的取舍。119 收藏 -
Go 1.27 的 size-specialized memory allocation 会让部分小对象分配更快,同时让二进制增加约 60 KB。本文说明如何区分预期体积变化与真实回归,使用同一源码构建对照产物,并在必要时用 GOEXPERIMENT=nosizespecializedmalloc 临时退回。345 收藏 -
Go 1.27 模块的 traceback 首行可能出现 runtime/pprof goroutine 标签,这通常是预期的诊断信息,不是 pprof 采集失败。本文说明标签来源、与 profile 数据的区别,以及需要隐藏时如何设置 tracebacklabels=0。309 收藏 -
Go 的 net/http 并没有公开的 Cookie.DomainMatches 方法。本文对比 CookieJar 的真实发送行为与自定义域名判断函数,说明精确匹配、点号边界、HostOnly 和 IP 地址的处理方式。312 收藏 -
客户端断开后 Handler 未退出,应区分请求取消尚未被观察到与业务未响应取消。本文通过最小本地 HTTP 服务说明 Context 传递、业务退出、代理边界和超时预算,不把客户端报错等同于后端停止。267 收藏 -
Golang · Go问答 | 5天前 | TLS · net/http · Go问答 · Go net/http crypto/tls http/2 net.Conn ALPN ConnectionState
Go 1.27 支持 net/http 从用户提供的 net.Conn 读取 TLS ALPN 状态。本文说明自定义 DialTLSContext 包装连接时如何保留 ConnectionState,并区分握手未完成、协议未协商和 HTTP/2 未尝试三类问题。284 收藏 -
Go 1.27 的 HTTP/2 服务端开始参考客户端优先级信号,可能让并发请求的服务顺序发生变化。本文说明 DisableClientPriority 的作用范围、配置方式,以及为什么它不能替代业务层严格排序。362 收藏 -
Golang · Go问答 | 6天前 | 性能排查 · net/http · HTTP客户端 · Go问答 · Go net/http 连接复用 close Response.Body HTTP/1 http.Response
Go 1.27 的 HTTP/1 Transport 会在 Response.Body.Close 后异步排空未读响应体,但只在保守的大小和时间范围内尝试。本文区分 Close、业务读取和连接复用,给出只看状态码时的写法及延迟排查边界。423 收藏 -
系统证书环境变量改变后,应区分根证书来源与平台验证路径。本文说明 Go 1.27 的平台行为变化,以专用根池示例明确客户端信任边界,并提醒不要通过关闭 TLS 验证恢复连通。408 收藏