Go语言技术文章
-
数据库里的 UUID 与 Go 结果不一致,通常是 MySQL swap_flag 或二进制字段映射不一致。本文用 HEX 对照、成对转换和 Go BINARY(16) 读写链路定位并修复字节顺序问题。478 收藏 -
用 Go 标准库 uuid 包校验外部标识符时,应把长度限制、Parse、规范文本策略、Nil 业务规则、稳定错误响应和安全日志放在同一入口。本文给出路径参数与 JSON 请求的生产化写法。290 收藏 -
Go 标准库 uuid.Parse 接受大小写等多种文本形式,但解析后保存的是 16 字节 UUID 值,String 会统一输出 RFC 9562 定义的小写连字符形式。本文说明比较、存储、日志、签名与原文保留边界。245 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 数据库 · uuid · Go教程 · database/sql · Go标准库uuid uuid.New UUID数据库 BINARY(16) CHAR(36) uuid.Parse
Go 1.27 标准库 uuid 生成 UUID 后,如何根据数据库字段选择 BINARY(16) 或 CHAR(36),并完成参数绑定、查询读回和 uuid.Parse 校验。344 收藏 -
Golang · Go问答 | 1星期前 | 并发安全 · goroutine · Go问答 · Go结构化并发 runtime/secret并发读取 secret.Do goroutine Go密钥生命周期 WaitGroup敏感数据
runtime/secret 会让作用域内新建的 goroutine 继承秘密模式,但不会替你同步共享切片。本文用结构化并发说明密钥只读共享、worker 独立状态、公开结果复制、取消等待与平台降级的正确边界。107 收藏 -
runtime/secret 不是新的秘密字节类型,而是敏感计算的生命周期边界。本文从输入所有权、非敏感输出、错误模型、堆分配和平台兼容解释它与普通 byte 切片该如何分工。137 收藏 -
解释 Go 实验性 runtime/secret.Do 为什么不能让从回调返回的 string 自动被擦除,并给出把敏感计算收口、由调用者预分配结果空间和发布检查的做法。211 收藏 -
Go runtime/secret 可在受保护调用树结束时擦除寄存器和栈,并在相关堆对象不可达且被 GC 发现后擦除分配,从而缩短临时密钥出现在后续内存转储中的时间。本文给出最小用法、构建条件、平台边界与不能被它消除的副本风险。156 收藏 -
Go runtime/secret 的职责是及时擦除密码学调用树中的寄存器、栈和部分堆临时数据,缩短秘密材料在进程内存中的残留时间。它不提供密钥托管、访问控制、版本轮换、审计、撤销或恢复,因此应与 KMS/HSM 等密钥管理能力组合,而不是替代它们。290 收藏 -
Go 的 runtime/secret 是实验性能力,适合把短生命周期令牌处理限制在 secret.Do 内;本文说明构建开关、堆与栈擦除边界、返回值设计及平台限制。187 收藏 -
go fix 负责源码现代化修复,gofmt 负责标准格式化。本文从执行顺序、分析器依赖和构建配置三个角度解释连续运行产生不同 diff 的原因,并给出可重复的审阅流程。196 收藏 -
在 CI 中使用 go fix -diff 可以只输出统一差异而不改写源文件:无建议时退出 0,有待应用差异时退出非零。本文给出最小门禁脚本、保留补丁时的 pipefail 写法、包范围拆分方案和故障判定清单。458 收藏 -
Go 1.26+ 的声明式迁移如果没有改写调用点,最常见原因是旧 API 声明前缺少 //go:fix inline。本文同时说明指令位置、适用对象、安全边界,以及复杂自定义 Analyzer 必须提供 SuggestedFixes、通过 unitchecker 与 -fixtool 接入的完整排查方法。157 收藏 -
用 Go 1.26 的 //go:fix inline 为旧 API 提供可迁移的替代入口,演示函数、常量、类型别名的写法,以及副作用、defer、测试和版本门槛等复核边界。363 收藏 -
go fix 的修改范围由命令末尾的包模式决定。本文用当前包、精确目录、子树模式和完整导入路径说明怎样缩小分析集合,并结合 go list、-C、-diff、fixer 开关与构建标签给出可审查的小批量改写流程。443 收藏