等了8年,Go 终于要给 UUID 一个“家“了

简介: 深夜敲`go.mod`时突然愣住:被11万+项目依赖的`google/uuid`,终于要进Go标准库了!Go 1.27将原生支持`uuid`包——类型用`[16]byte`、兼容4种格式、默认v4更稳。三年讨论、54人参与,是实用与克制的胜利。少即是多,约定优于配置。

深夜三点,我又在 go.mod 里敲下 github.com/google/uuid,突然愣住:这包我用了八百个项目了,咋还没进标准库?

GitHub issue 截图

没错,那个被 11 万+ Go 项目偷偷依赖的 UUID 包,终于要"转正"了。Issue #62026 从 2023 年吵到 2026 年,提案组终于拍板:Go 1.27 将原生支持 uuid 包。

新包长啥样?简洁到让你怀疑人生

package uuid

id := uuid.New()        // 默认返回 v4,122 位随机数,比我的周末计划还随机
v7 := uuid.NewV7()      // 时间有序版,数据库索引狂喜
parsed, _ := uuid.Parse("f81d4fae-7dec-11d0-a765-00a0c91e6bf6")

几个有意思的设计细节:

  • 类型直接用 [16]byte:不整花活,和现有生态无缝兼容,类型转换一行搞定
  • Parse 支持 4 种格式:带横杠的、不带横杠的、带 urn:uuid: 前缀的、甚至带花括号的——"你们以前怎么写,现在就怎么解析"
  • Nil() 和 Max() 是函数不是变量:因为有人真的改过 google/uuid.Nil 的值…(别问,问就是血泪教训😅)
  • 默认用 v4 而不是 v7:虽然 v7 插入数据库更快,但 v4 纯随机,避免分片数据库的"热点坑",稳字当头

为什么现在才加?标准库的"保守哲学"

我当年写微服务时,也纠结过"要不要自己封装 UUID"。后来想通了:标准库不是技术前沿实验室,而是生态的"最大公约数"。

第三方包灵活,但碎片化;标准库稳定,但迭代慢。这次提案能过,不是因为 UUID 技术多新,而是因为 google/uuid 已经用 8 年时间证明了"大家真的需要它"。

有趣的是,新包故意不做版本检测(比如 uuid.Version())。RFC 9562 建议把 UUID 当"不透明标识符",少拆解少出错。这很 Go:少即是多,约定优于配置。

最后说点"哲学"

技术演进像煮粥:火太猛容易糊,火太小熟得慢。标准库的每一次新增,都是在"实用"和"克制"之间走钢丝。

下次当你 import "uuid" 不再需要写 go get 时,记得:这背后是 54 位贡献者、3 年讨论、21 个子议题的耐心打磨。

代码会过时,但"先观察,再收敛"的工程智慧,永远值得多喝两杯咖啡慢慢品 ☕

相关文章
|
7月前
|
人工智能 自然语言处理 安全
Claude Code Routines:给你的代码装上“自动巡航“
Routines 是 Claude 的可编程自动化代理,支持定时、API 和 GitHub webhook 三种触发方式,将重复开发任务(如修 Bug、更新文档、安全审查)转为 AI 驱动的云端流水线,解放开发者专注高价值工作。
706 1
|
7月前
|
自然语言处理 前端开发 容器
前端组件库 ——FormMaking 知识点大全(二)
教程来源 https://zlpow.cn FormMaking字段体系涵盖基础、高级与布局三类字段,支持丰富配置;全局配置含国际化、默认属性及字段标识绑定,助力低代码高效构建企业级表单。
|
6月前
|
传感器 算法 物联网
从裸机到智慧物联:嵌入式RTOS任务调度原理深度剖析
本文深入剖析RTOS任务调度原理,从裸机程序的局限性切入,揭示超级循环在实时性、优先级响应和周期精度上的缺陷;系统在后面将讲解任务控制块、状态机、调度算法与上下文切换四大核心机制,助开发者理解vTaskDelay等API背后的本质。
313 5
|
6月前
|
SQL 人工智能 自然语言处理
什么是低代码 v2.0 时代?JeecgBoot低代码用 Skills 把"一句话生成系统"做成了现实
一句话先说清楚:低代码 v1.0 阶段,是用"拖拽设计"代替"代码开发";低代码 v2.0 阶段,是用 AI Skills 把"拖拽设计"也省掉, 一句话生成功能。![低代码迈入 v2.0 时代 — Skills 加持一句话搭建系统](https://oscimg.oschina.net/osc
309 5
什么是低代码 v2.0 时代?JeecgBoot低代码用 Skills 把"一句话生成系统"做成了现实
|
6月前
|
人工智能 自然语言处理 供应链
为什么 MCP 在协议层会有 prompt injection的问题:工具描述如何劫持 agent 上下文
MCP(Model Context Protocol)虽成AI Agent主流集成标准,但其将工具描述全量注入上下文的设计,导致“Context Poisoning”——恶意指令可借工具元数据污染LLM推理。OWASP将其列为LLM应用头号漏洞,2025年已致超10万站点遭袭。根本风险在于协议层信任模型缺失,非清洗不可用。
409 12
为什么 MCP 在协议层会有 prompt injection的问题:工具描述如何劫持 agent 上下文
|
5月前
|
机器学习/深度学习 人工智能 数据可视化
YOLO26如何涨点系列篇(NEU-DET缺陷检测) | CVPR2026 DEGConv方向引导边缘门控,破解细长裂缝检测难题 ,实现涨点
在NEU-DET数据集下验证:原始mAP50原始为 0.722提升至 0.732 , R 原始为 0.643 提升至 0.682 , mAP50-95原始为0.407提升至0.413
589 6
|
5月前
|
人工智能 缓存 自然语言处理
千问云智能体Agent模型:Qwen3.7-Max列国产模型第一,在编程、推理能力提升,费用限制5折中
Qwen3.7-Max是阿里云2026年发布的旗舰智能体大模型,专注长周期自主执行,在编程(SWE-bench Pro 60.6分)、推理、办公自动化等能力上行业领先。国产模型全球盲测第一,支持MCP集成与Vibe Coding。现限时5折,输入/输出均降50%,并赠100万Tokens免费额度。快速体验:https://t.aliyun.com/U/fPVHqY
1169 4
|
6月前
|
机器学习/深度学习 数据采集 算法
PCB电路板缺陷检测数据集分享(适用于YOLO系列深度学习检测任务)
本数据集专为PCB缺陷检测设计,含1500张1024×1024图像(训练集1000张、验证集500张),标注6类常见缺陷(缺失孔、鼠咬痕、开路等),采用YOLO格式,开箱即用,适配YOLOv5/v8等主流模型,助力工业质检与AI研发。(239字)
636 6
|
6月前
|
存储 弹性计算 运维
阿里云服务器怎么买?四种主要方式详解+注意事项,新手购买参考教程
本文介绍了阿里云服务器的四大购买方式的适用场景与注意事项:自定义购买支持全参数精细配置,适合有技术基础的企业用户;快速购买通过预设模板简化流程,助力新手快速上云;活动购买提供低至38元/年的限时优惠,覆盖99计划、学生300元抵扣金、百炼先用后返等多重权益;云市场镜像购买提供预装环境的开箱即用方案,适合中小企业快速建站。