Go语言技术文章
-
Go 1.27 为 compile、link、asm、cgo、cover、pack 等工具加入 response file(@file)参数解析。本文用一个构建参数过长的场景,说明文件格式、引号换行边界、适用工具和迁移核对点。409 收藏 -
Golang · Go教程 | 1星期前 | 依赖管理 · Go教程 · Go Modules · Go 1.27 · require go.mod 间接依赖 Go 1.27 go mod tidy 直接依赖
Go 1.27 会把 go.mod 中多个 require 块整理成直接依赖和间接依赖两组。本文说明 tidy 的边界、哪些依赖会被标记 indirect,以及升级后如何检查差异。103 收藏 -
Golang · Go教程 | 1星期前 | Go教程 · go fix · 代码迁移 · Go 1.27 · go fix modernizer Go 1.27 atomictypes embedlit slicesbackward unsafefuncs
Go 1.27 给 go fix 增加 atomictypes、embedlit、slicesbackward 和 unsafefuncs 四类 modernizer。本文从真实升级场景出发,说明如何按代码边界选择工具、审查改动并保留可回退的迁移证据。377 收藏 -
Go 1.27 将 uuid 纳入标准库后,生成、解析和数据库持久化该怎么分层?本文用一个订单请求标识场景,拆开 uuid API 的职责、字符串边界、二进制存储取舍与迁移检查点。372 收藏 -
Go 1.27 将 uuid 纳入标准库后,生成、解析和数据库持久化该怎么分层?本文用一个订单请求标识场景,拆开 uuid API 的职责、字符串边界、二进制存储取舍与迁移检查点。267 收藏 -
Golang · Go问答 | 1星期前 | 并发 · pprof · 故障排查 · Go问答 · Go 1.27 · Go goroutine泄漏 net/http/pprof goroutineleak runtime/pprof
Go 1.27 将 goroutineleak profile 作为正式能力,但空结果不等于没有泄漏。本文从 runtime/pprof 的可达性判定出发,核对阻塞原语、全局对象盲区与 net/http/pprof 入口。340 收藏 -
Golang · Go问答 | 1星期前 | 并发 · 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 1.27 针对小对象的专用内存分配器可降低分配成本,但它不会替服务端回收仍被引用的对象。本文用请求缓冲、缓存切片和 goroutine 三个边界,说明如何判断分配变快与对象活得过久是两件事。463 收藏 -
用 Go 标准库 log/slog 的 LogValuer 隐藏请求凭据,厘清 WithAttrs 预处理与 Value.Resolve 展开的边界,避免把密码和令牌写进结构化日志。247 收藏 -
Go 通过 cgo.Handle 把 Go 值暂存给 C 侧时,关键不是把指针强行塞过去,而是明确句柄的创建、回调取值和 Delete 释放边界。本文用一个回调桥接例子说明生命周期、并发与异常清理。308 收藏 -
Golang · Go问答 | 1星期前 | 字符串 · 标准库 · golang · 迭代器 · 边界处理 · Go 文本解析 iter.Seq Unicode 空白 strings.FieldsSeq
Go 1.24 新增的 strings.FieldsSeq 返回 iter.Seq[string],按 unicode.IsSpace 识别连续空白并逐项产生字段。本文对比 Fields,说明空文本、Unicode 空白、提前停止和结果保存的边界。494 收藏 -
用一个可运行的 Go 客户端示例验证 NewRequestWithContext 的构造顺序、取消传播和 nil context 边界。296 收藏 -
sync.Map.Range 适合遍历某个时刻可见的键值,但不能把回调结果当成并发集合的稳定快照。本文拆开 Store、Delete 与 Range 同时发生时的可见性边界,并给出需要一致结果时的替代方案。344 收藏 -
Go 的 log/slog.Attr.Equal 适合做日志属性去重和断言,但组属性、数值类型与空值的比较边界容易被忽略。本文从字段和值的关系出发,给出紧凑写法和检查要点。248 收藏 -
Golang · Go教程 | 1星期前 | 网络编程 · 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 收藏