Go 1.25 发布 — DWARF5、严格的 nil 检查语义、jsonv2 实验和工具链变更
关键更新
Go 1.25(于 2025 年 8 月 12 日发布)是一个实用的、影响开发者的版本,而不仅仅是一个纯粹的增量更新。该版本引入了 DWARF-5 调试输出和链接器选项,减少了大型程序的二进制大小和链接时间,修复了一个长期存在的编译器错误,现在强制执行符合规范的 nil 指针检查(这可能导致之前运行但不正确的代码崩溃),毕业了 synctest 并发测试支持,并在 GOEXPERIMENT=jsonv2 后面暴露了一个实验性的高性能 encoding/json/v2 实现。工具链还更改了一些默认设置:AddressSanitizer 现在默认在程序退出时进行泄漏检测,go 命令将构建更少的预构建辅助二进制文件,并且新的 vet 分析器(例如 waitgroup 和 hostport)可以捕捉常见的并发和网络错误。
重要性
nil 指针修复是风险最高的现实世界变更:错误地使用在检查错误之前生成的值的代码现在可能会崩溃;这需要在 Go 1.25 下运行你的测试套件和 CI,以发现回归并修复它们(提前移动错误检查或重构)。DWARF-5 和链接器选项实质上加快了调试构建的速度,并减少了大型服务和单一代码库的符号大小,从而改善了开发者迭代时间和 CI 成本。jsonv2 实验在许多工作负载中提供了显著更快的解码;在 JSON 密集型服务的暂存环境中尝试是值得的,因为行为略有不同,错误文本可能会改变。ASAN 泄漏检测的默认设置可能会破坏依赖于 C 分配未被释放的测试;如有必要,请在 CI 中调整 ASAN_OPTIONS。新的 vet 分析器和 synctest 使得更早捕捉并发错误变得更加容易。可操作步骤:在 CI 中固定工具链,在 Go 1.25 下运行完整的测试套件(并在受控环境中尝试 GOEXPERIMENT=jsonv2),启用新的 vet 分析器,并审计依赖于 len/cap 黑客、unsafe.Pointer 模式或延迟错误检查的代码。
来源
继续阅读
Node.js v25 定于 2025‑10‑15 发布 — semver‑major 版本即将到来
2025年9月30日Node.js v25 定于 2025 年 10 月 15 日发布(提交截止日期 2025‑09‑15)。团队应针对新主要版本运行 CI,验证本地模块,并准备金丝雀部署。
Azure Functions Proxies:社区支持将于2025‑09‑30结束 — 立即迁移离开Proxies
2025年9月29日Azure宣布Azure Functions Proxies将在2025‑09‑30后不再支持;仍在使用Proxies的团队必须立即清点并迁移到受支持的API接口(APIM、Front Door或轻量级反向代理)。
NodeShield: 运行时 SBOM 强制执行 (CBOM) 以微不足道的开销限制 Node.js 的供应链攻击
2025年9月28日一篇新论文介绍了 NodeShield,这是一种运行时强制执行系统,使用扩展了每个依赖项能力的 SBOM(CBOM)来防止 Node.js 中的供应链滥用,效果约为 98%,开销小于 1 毫秒。