Sorbet 是 Ruby 的静态类型检查系统,是开源的。

Stripe公司,专门从事在线支付平台的开发, 开了 项目源代码 冰糕,其中为 Ruby 语言准备了静态类型检查系统。 该代码是用 C++ 编写的,并且 分发者 在 Apache 2.0 下获得许可。

代码中的类型信息可以动态计算,也可以通过简单的形式指定 注释,可以使用 sig 方法在代码中指定(例如,“sig {params(x: Integer).returns(String)}”)或放置在具有 rbi 扩展名的单独文件中。 有可能 作为初步的 静态代码分析 不执行它,并在执行时检查(打开 通过在代码中添加“require 'sorbet-runtime'”。

提供的可能性 渐进翻译 使用 Sorbet 的项目 - 代码可以组合带注释的类型块和验证未覆盖的非类型区域。 功能还包括非常高的性能以及针对包含数百万行代码的代码库进行扩展的能力。

该项目包括一个用于静态类型检查的内核,
用于使用 Sorbet 创建新项目的工具包,用于逐步转移现有项目以使用 Sorbet 的工具包,具有特定于域的语言的运行时,用于编写有关类型和类型的注释 存储库 具有各种 Ruby gems 包的现成类型定义。

最初,Sorbet 是为了检查 Stripe 公司内部项目而开发的,该公司的支付和分析系统大部分都是用 Ruby 语言编写的,经过一年半的开发和实现后,转入开源范畴。 在开放代码之前,进行了 Beta 测试,有 30 多家公司参与。 在目前的开发阶段,Sorbet 支持用 Ruby 启动大多数标准项目,但可能存在一些不兼容的情况。

来源: opennet.ru

添加评论