尽管 Rust 通过预防常见漏洞提高了软件安全性,但它并不能保证逻辑正确性或绝对安全。为了解决这一问题,亚马逊与开源社区共同开发了 Verus,这是一个针对 Rust 的自动化程序验证器。 Verus 允许开发者直接在 Rust 源文件中编写形式化的数学规范,以精确描述代码的预期行为。该工具随后会自动构建证明,以验证代码在所有可能的输入下均符合这些规范。通过整合熟悉的 Rust 语法并提供快速反馈,Verus 使开发者能够验证复杂的逻辑、确保“不安全(unsafe)”代码块的安全性,并证明错综复杂的并发系统的正确性。 在亚马逊,Verus 已成为保障关键基础设施(包括 Nitro 隔离引擎)安全的核心技术。在亚马逊之外,开源社区也利用 Verus 验证各种项目,从微内核、密码学库到 Kubernetes 控制器,应用范围广泛。通过填补“安全代码”与“可证明正确代码”之间的鸿沟,Verus 为在容错率极低的环境中构建高可靠、高安全性的软件提供了强大的框架。
程序员往往乐于使用 `map` 和 `filter` 这类函数,却对 `reduce` 持保留态度。在代码审查中,`reduce` 常因可读性差而受到诟病,作者不得不将其替换为更传统的替代方案以减少阻力。
作者针对这种抵触情绪提出了几种假设:`reduce` 的直观性较差、知名度较低、性能可能欠佳,且在 JavaScript、Python 或 Swift 等语言中常常显得笨拙——尽管它在 Clojure 等函数式语言中感觉更为自然。虽然作者承认这些观察可能带有主观色彩或受代码审查标准演变的影响,但仍邀请他人分享观点,探讨这种对 `reduce` 的偏见是否是一种普遍现象。