Sorbet-Rails 使用教程
1、项目介绍
Sorbet-Rails 是一个开源项目,旨在使 Sorbet 类型检查器与 Ruby on Rails 无缝集成。Sorbet 是由 Stripe 开发的一个快速、强大的 Ruby 静态类型检查器,而 Sorbet-Rails 则通过添加一些 Rake 任务来生成 Ruby Interface (RBI) 文件,从而支持 Rails 动态方法的类型检查。该项目由 Chan Zuckerberg Initiative 维护,并得到了众多公司的广泛应用。
2、项目快速启动
初始设置
-
添加 Gem 文件: 在你的 Gemfile 中添加
sorbet-rails
,并使用 Bundler 安装:# -- Gemfile -- gem 'sorbet-rails'
-
安装依赖: 运行以下命令来安装依赖:
bundle install
-
生成 RBI 文件: 运行以下 Rake 任务来生成 RBI 文件:
bundle exec rake rails_rbi:all
-
运行类型检查: 使用 Sorbet 的类型检查命令来验证你的代码:
srb tc
3、应用案例和最佳实践
应用案例
Sorbet-Rails 已经被许多知名公司和项目采用,包括但不限于:
- Shopify
- Coinbase
- Chime
- Factorial
- Flexport
- GitHub
- Gusto
- HealthSherpa
- Hummingbird
- Instacart
- Kickstarter
- Marketplacer
- TaskRabbit
- TriumphPay
- Vonage
- Workforce.com
最佳实践
- 逐步引入类型检查:Sorbet 支持渐进式类型检查,建议从核心模块开始,逐步为代码添加类型注解。
- 定期运行类型检查:将
srb tc
添加到 CI 流程中,确保每次提交的代码都通过类型检查。 - 利用 IDE 集成:Sorbet 提供了与常见编辑器的集成,如 VSCode、Atom 等,可以提供自动补全、跳转到定义等功能,提升开发效率。
4、典型生态项目
- Sorbet:Sorbet 是 Sorbet-Rails 的基础,是一个快速、强大的 Ruby 静态类型检查器。
- Sorbet-Rails:本项目,专注于使 Sorbet 与 Ruby on Rails 无缝集成。
- Sorbet-Rails-RBI:用于生成 Rails 相关的 RBI 文件,支持 Rails 5+。
通过以上步骤,你可以快速上手并开始使用 Sorbet-Rails 进行类型检查,提升 Ruby on Rails 项目的代码质量和开发效率。