Go语言技术文章
-
Go debug.SetMemoryLimit 可以给 runtime 设置按字节计算的软内存目标。本文按值班手册说明适用环境、容器余量、运行时指标、持续 GC 判断和回滚方式。477 收藏 -
Go pprof 暴露后,优先把业务 mux 与诊断 mux 分开,并让 pprof 监听回环或私网地址;需要远程采集时再叠加 TLS、认证、代理和 profile 级采集边界。477 收藏 -
Go benchmark 调用 testing.B.ReportAllocs 后,可以在结果中看到 allocs/op 与 B/op。本文说明如何放置调用、排除准备阶段、比较子 benchmark,并处理 b.Loop、b.N 和 RunParallel 的统计边界。477 收藏 -
用 Go 1.24+ 的 os.OpenRoot 和 Root.Open 封装根目录内文件读取,讲清 ../ 路径、符号链接、错误包装和资源关闭边界。477 收藏 -
comment.Parser按缩进结构识别预格式块,不依据内容是否像Go代码。本文通过Paragraph和Code对照,说明如何修正正文缩进并保留真正示例的版式。477 收藏 -
自定义 Go flag.Value 后,帮助信息可能显示默认的 value。本文说明 flag.UnquoteUsage 如何读取 usage 中的反引号占位符,怎样让自定义参数显示 tag、directory 等更明确的名称,并给出自定义帮助输出时的复用方式。477 收藏 -
围绕 Go log/slog 解释 Logger.With 如何通过 Handler.WithAttrs 创建带公共字段的派生日志上下文,说明原 Logger 不变、后续记录生效,以及 WithGroup 与 With 的顺序边界。477 收藏 -
html/template 会根据 href、普通属性和文本所在上下文自动转义动态值。本文用一个可复用的链接渲染流程说明协议筛选、URL 规范化、错误处理和 template.URL 的信任边界,帮助 Go 模板安全输出动态链接属性。477 收藏 -
Go plugin 通过运行时 Open 和 Lookup 装载独立插件,单可执行文件则在编译期收敛部署物。本文从平台、工具链、符号契约、安全和回滚边界比较两种方案,并给出上线决策清单。476 收藏 -
Go 构建标签适合把平台差异放到文件选择阶段。本文从文件名约束、//go:build 表达式和默认实现讲起,再用 GOOS、GOARCH、CGO_ENABLED 与 -tags 组织可重复的交叉编译。476 收藏 -
Go 的 httputil.ReverseProxy.Rewrite 适合把入站请求改造成可控的出站请求。本文从一个小型反向代理开始,讲清 SetURL、Host、X-Forwarded-*、查询参数和 Director 迁移时最容易忽略的边界。476 收藏 -
Go 1.23 的 slices.Repeat 可以按次数生成连续切片结果,本文说明正数、零次、空输入、nil 语义、负数和大规模分配边界。476 收藏 -
Go math/big.Int.Append 可把数字文本追加到字节切片。本文通过记录接口说明返回值接收、缓冲区复用、结果复制及参数错误处理。476 收藏 -
shopspring/decimal 的 MarshalJSONWithoutQuotes 是包级全局开关,开启后所有 Decimal 的 JSON 输出都会从字符串变成数字。本文说明它的影响范围、并发修改风险,以及如何用字段级 MarshalJSON 控制单个接口。476 收藏 -
oggvorbis的Length和Position以采样帧计数,Read返回值则是交错float32元素数量。本文给出多声道单位换算、进度快照示例,以及未知长度、缓冲区和定位的边界处理。476 收藏