加载中...

海勒姆定律(Hyrum's Law)由 Google 工程师 Hyrum Wright 总结:当一个 API 的用户足够多时,接口在文档中的承诺就不再重要——系统一切可被观察到的行为,都会被某些用户依赖。
用户不只依赖文档声明的契约,还会依赖响应时间、返回顺序、错误消息文本、未定义字段等偶然行为。一旦这些「隐性契约」形成,任何改动都可能破坏下游,即使改动完全符合文档。
典型表现包括:调用方解析错误信息字符串来做分支判断、依赖哈希遍历的偶然顺序、依赖某个修复前的错误行为。修复 bug 反而弄坏用户代码的情形即源于此。
实践中的缓解手段包括:缩小可观察面(随机化非承诺行为,如 Go 语言故意随机化 map 遍历顺序)、明确版本化契约、通过大规模测试评估变更影响。该定律在《Software Engineering at Google》一书中被系统阐述。

登录 后参与讨论
暂无讨论,来发表第一条评论吧