~/talk

Sorbet at Grailed: Typing a Large Rails Codebase to Ship with...

Talkat RubyConf 2021 · 2021-11-08..11-10· [ruby, ruby-on-rails]
github:jmr0
slides:none on file

Grailed types a 150,000‑line Rails monolith with Sorbet to reduce nil errors and refactor fear, serving over 7 million users. Tooling includes Tapioca for RBI generation, Sorbet Rails for ActiveRecord signatures and a custom RBI generator using Parlor for service objects; runtime mismatches post‑deployment send Slack alerts rather than raising exceptions. Adoption reaches about 70% of calls typed while only ~8% of files remain untyped, and Dry Monads largely gets replaced.

AI-written summary · about

  1. 0:00Start
  2. 2:30Changes
  3. 8:06Signature Types
  4. 13:02RBI's (Ruby Interface Files)
  5. 15:32Exhaustiveness checking with Enum
  6. 18:48First steps
  7. 20:33Evangelize and Enforce
  8. 21:51Type your Dynamic Code: Service Objects at Grailed
  9. 22:59Type your Dynamic Code: Breaking Things
  10. 23:54Type your Dynamic Code: Parlour to the Rescue
  11. 24:50Removing Dynamic Code
  12. 25:23Replace Result Monad with Type union
  13. 26:37Challenges We Still Face
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.