Go语言技术文章
-
Go 服务的正则匹配突然占满 CPU,常见原因不是规则本身,而是每次请求都重新编译 regexp。本文用基线、pprof 和缓存编译结果的对比,说明如何定位并控制这类热路径开销。467 收藏 -
Golang · Go问答 | 1个月前 | go · 性能 · kubernetes · 运行时 · 容器化 · Kubernetes GOMAXPROCS Go问答 Go 1.25 SetDefaultGOMAXPROCS 容器CPU配额
同一份 Go 服务部署到 Kubernetes 后,节点有 16 个核,Pod 却只限 2 个核,手动设置的 GOMAXPROCS 还可能在扩缩容后失真。Go 1.25 已让运行时默认读取容器 CPU 配额,本文用一个可复现的小程序说明如何检查旧配置、恢复运行时默认值,并给出上线前的边界清单。467 收藏 -
time.Ticker.Stop 只负责停止后续计时,不承诺把已经进入通道的值清空。本文从定时刷新任务的退出现场出发,拆解停止语义、旧值竞态、goroutine 泄漏与可验证的退出写法。467 收藏 -
Go HTTP 客户端偶发变慢时,只看总耗时很难判断问题在 DNS、建连、TLS 还是服务端首字节。本文用 net/http/httptrace 的 ClientTrace 串起关键回调,区分连接复用与新建连接,并给出可落地的耗时记录和排查边界。467 收藏 -
Go 1.24 引入的 runtime.AddCleanup 适合为包装资源安排兜底清理,但回调不是确定时钟,也不能替代显式 Close。本文用文件句柄包装场景说明 AddCleanup、KeepAlive 和 Cleanup.Stop 的真实边界。467 收藏 -
encoding/binary.Append 会把固定大小数据追加到已有字节切片,并返回可能扩容后的新切片。正确承接返回值,才能同时处理底层数组复用、容量变化和不支持类型的错误。467 收藏 -
Go 的 container/heap 允许在队列元素优先级变化后用 heap.Fix 恢复堆序。本文从 heap.Interface 的索引维护出发,拆解 Fix、Remove 与 Pop 的边界,给出可运行的可变优先队列示例。467 收藏 -
Go 1.27 为 go test -json 的 output 事件增加可选 OutputType。通过 Action、Package、Test、OutputType 和 FailedBuild 的组合,解析器可以区分测试框架帧、失败首行、失败续报与构建失败,避免 CI 报告重复计数。467 收藏 -
用 Go 标准库实现 HTTP 文件上传时,不能只调用 FormFile 就直接落盘。本文通过一个最小项目说明请求体大小限制、multipart 解析、文件关闭、受控命名和上传后检查的实现顺序。466 收藏 -
Go 泛型函数直接调用时通常可以省略类型参数,但一旦作为回调赋值、传参或返回值,类型推断依赖目标函数签名。本文用最小代码说明推断成功与失败的边界,并给出稳妥的显式实例化写法。466 收藏 -
Go 的 sync/atomic.Uint64 适合做高并发下的轻量计数,但 Add、Load、Swap 的读写边界和溢出语义不能靠直觉处理。本文从请求统计场景出发,给出计数器封装、快照读取、并发测试和超过 uint64 上限后的处理策略。466 收藏 -
Golang · Go问答 | 2星期前 | web安全 · net/http · Go问答 · origin csrf Go 1.25 http.CrossOriginProtection Sec-Fetch-Site
Go 1.25 的 http.CrossOriginProtection 能拦截非安全跨源浏览器请求。本文从 Handler 接入、Origin 白名单和安全方法边界说明它适合替代哪些旧防护,以及上线前要补的检查。466 收藏 -
Go 的 bytes.Cut 适合按首个分隔符拆出 before、after 和 found 三个结果。本文从空片段、缺少分隔符和请求头解析中的误判出发,说明如何用 found 区分合法空值与格式错误。466 收藏 -
Golang · Go问答 | 1星期前 | go · Go问答 · 版本迁移 · X.509 · Go 1.27 crypto/x509/pkix pkix.Name RDNSequence OID
Go 1.27 调整了 pkix.RDNSequence.String 和 Name.String 对未知 OID 字符串属性的展示方式。本文说明哪些日志与快照会变化,以及如何避免把格式化文本当成稳定协议。466 收藏 -
Go 的 sql.DB.Ping 只能说明连接探活成功,不能替代真实 SQL、权限、事务和连接池检查。本文给出分层排查与健康检查设计方法。466 收藏