Go语言技术文章
-
Go 1.27 的 HTTP/1 Response.Body 在 Close 时会有限度排空未读内容,以提高连接复用机会。本文用读取边界、Transport 配置和复查指标说明该行为能解决什么,哪些场景仍要显式限制响应体。311 收藏 -
Go 通过 cgo.Handle 把 Go 值暂存给 C 侧时,关键不是把指针强行塞过去,而是明确句柄的创建、回调取值和 Delete 释放边界。本文用一个回调桥接例子说明生命周期、并发与异常清理。308 收藏 -
Go 1.27 对 go.mod 的多组 require 块做了结构整理。本文从合并冲突和手工编辑后的现场出发,解释何时会重排、注释如何归属,以及升级后怎样做最小复查。298 收藏 -
用一个可运行的 Go 客户端示例验证 NewRequestWithContext 的构造顺序、取消传播和 nil context 边界。296 收藏 -
Go 1.27 的链接器可用 -macos 与 -macsdk 写入 Mach-O 的 LC_BUILD_VERSION。本文说明两个参数分别控制什么、为什么最低系统声明不等于真实兼容,以及发布前如何核对。285 收藏 -
Go 1.27 新增 bytes.CutLast,可按最后一个分隔符返回 before、after 和 found。文章对比 LastIndex 手写切片,说明缺失分隔符与共享底层数组的边界。276 收藏 -
Go 1.27 将 uuid 纳入标准库后,生成、解析和数据库持久化该怎么分层?本文用一个订单请求标识场景,拆开 uuid API 的职责、字符串边界、二进制存储取舍与迁移检查点。267 收藏 -
Golang · Go教程 | 1天前 | Go教程 · Go工具链 · Go测试 · JSON解析 · 测试报告 Go 1.27 go test -json OutputType test2json
Go 1.27 为 go test -json 的 output 事件增加可选 OutputType。本文用兼容解析器讲清 frame、error、error-continue 与空值的处理方式,以及多行错误如何合并而不丢失原始输出。266 收藏 -
Go 1.27 为 testing/synctest 增加 Sleep,把时间休眠与同步等待放到同一个测试语义里。本文拆开 Sleep、Wait、协作组和虚拟时间的边界,帮助你判断测试为何仍会卡住或提前通过。261 收藏 -
Go 1.27 让 go doc 支持 package@version 查询,但查不到符号不一定是版本不存在。本文拆解模块解析、包路径、符号名和版本选择的边界,给出一套不运行目标业务代码的排查清单。255 收藏 -
Go 的 log/slog.Attr.Equal 适合做日志属性去重和断言,但组属性、数值类型与空值的比较边界容易被忽略。本文从字段和值的关系出发,给出紧凑写法和检查要点。248 收藏 -
Golang · Go问答 | 2天前 | 并发 · pprof · 故障排查 · Go问答 · Go 1.27 · Go goroutine泄漏 net/http/pprof goroutineleak runtime/pprof
Go 1.27 将 goroutineleak profile 作为正式能力,但它不是所有阻塞协程的万能扫描器。本文从 runtime/pprof 的可达性判定出发,拆开检测到的泄漏、全局对象造成的盲区,以及 net/http/pprof 入口的核对方式。248 收藏 -
用 Go 标准库 log/slog 的 LogValuer 隐藏请求凭据,厘清 WithAttrs 预处理与 Value.Resolve 展开的边界,避免把密码和令牌写进结构化日志。247 收藏 -
Golang · Go教程 | 2天前 | 网络编程 · go · HTTP协议 · net/http · 兼容性 · Go http/2 HTTP/1 http.Protocols SetHTTP1 SetHTTP2 ALPN
Go 1.24 的 http.Protocols 让 Server 和 Transport 能显式声明 HTTP/1、TLS 上的 HTTP/2 以及明文 HTTP/2。本文从一个需要固定协议的服务场景出发,拆解 SetHTTP1、SetHTTP2 的配置位置、ALPN 边界和兼容检查。212 收藏 -
Go 1.27 会在 ecdsa.PrivateKey.Sign 收到非空 SignerOpts 时核对哈希算法与摘要长度。文章说明新增检查、常见升级报错和签名适配器的审计方法。212 收藏