Go语言技术文章
-
只想替换取消或超时上下文时使用 Request.WithContext,需要隔离 URL、Header、表单等请求元数据时使用 Request.Clone;两者都不会深复制 Body。本文用中间件和出站请求场景说明选择边界。467 收藏 -
Go 的 sync.Mutex 在首次使用后不能复制。本文从值接收者、结构体赋值和容器操作定位隐式复制点,并用指针接收者与 go vet copylocks 修复。467 收藏 -
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 收藏 -
Go 1.27 调整了 pkix.RDNSequence.String 和 Name.String 对未知 OID 字符串属性的展示方式。本文说明哪些日志与快照会变化,以及如何避免把格式化文本当成稳定协议。466 收藏 -
Go 的 sql.DB.Ping 只能说明连接探活成功,不能替代真实 SQL、权限、事务和连接池检查。本文给出分层排查与健康检查设计方法。466 收藏 -
自定义错误实现 Error 并不等于 errors.Is 能按业务含义匹配。本文从默认相等规则出发,说明何时实现 Is、如何按稳定字段比较,以及 Is、Unwrap 和哨兵错误的职责区别。466 收藏 -
用 Go log/slog 的 LogValuer 把敏感类型转换成只含安全字段的 slog.Value,掌握脱敏、Resolve 和多 Handler 输出的边界。466 收藏 -
用一个小型内存复制场景说明 Go bytes.Reader.WriteTo 的调用方式、返回值、游标推进和错误边界。466 收藏 -
Golang · Go教程 | 1个月前 | 标准库 · HTTP服务 · Go教程 · 可观测性 · Go expvar expvar.Publish 运行指标 expvar.Func debug vars
Go 的 expvar.Publish 可把实现 Var 的对象注册到全局表,并由 /debug/vars 输出 JSON。本文用 Func、Int 与 Map 组合自定义运行快照,并说明路由和安全边界。466 收藏 -
讲清 Go token.FileSet.PositionFor 如何把 token.Pos 转成文件名、字节偏移、行号和列号,并比较 adjusted 参数与 //line 指令的实际影响。466 收藏 -
本文解释 Go CompareAndSwap 为什么只能确认当前值,沿着 A→B→A 时序说明 ABA 风险,并给出指针与版本号绑定、生命周期和重试边界的处理方法。466 收藏 -
sync.Pool 在池空时只有 New 非 nil 才会创建默认对象。本文用 bytes.Buffer 说明正确初始化、typed nil 陷阱、借用归还封装、状态重置和测试边界。466 收藏 -
持续同步 pkg.go.dev API 时,不要把 nextPageToken 当永久断点。本文用 Go 完整消费分页、稳定去重、有限重试,并在全量成功后原子替换本地索引。466 收藏