Loading…
RubyConf 2021: The Talks You Might Have Missed
2023-10-18
- Source
- Shopify
- Published
- Added to Yomu
Summary
RubyConf 2021: The Talks You Might Have Missed compiles talks presented by Shopify’s Ruby and Rails infrastructure engineers at the November conference in Denver, offering ways to revisit sessions for attendees who missed them. The program covers Ruby implementation topics including compiler history, Aaron Patterson’s pure-Ruby JIT compiler, YJIT’s incremental integration inside CRuby, parser generators, variable-width allocation, and Ruby memory layout. Other sessions address gradual Sorbet adoption, native extension compilation and security, pair programming, memoization performance, executable code as data, Ruby archaeology, fast CI, and Ractor-based parallel testing. The roundup reports early YJIT performance results, describes a CI environment with 2.8 million Rails monolith lines and 210,000 Ruby tests, and notes variable-width allocation passed Shopify’s Rails CI while serving more than 500 million requests in a week of limited production traffic.
Context
Shopify engineers gathered at RubyConf 2021 to learn, share, and build relationships around Ruby. The roundup is also intended for people who did not attend the conference or want to revisit its content.
Approach / What changed
The piece brings together descriptions and selected quotations from talks by Shopify engineers, covering Ruby compilers, JITs, parsing, typing, native extensions, metaprogramming, testing, CI, memory layout, and related development practices. It also points to companion material and includes an AMA with Shopify’s Ruby and Rails infrastructure team.
Takeaways
- The Sorbet retrospective presents gradual typing as a way to begin at lower strictness levels and increase adoption as teams become more comfortable with the tools.
- MemoWise’s performance work used observation, hypothesis, experiment, and analysis, with repeatable benchmarks to investigate object allocations and Ruby metaprogramming costs.
- A Ractor-based testing approach treats tests as organized code blocks whose execution can be parallelized, while also considering the advantages and limitations of existing solutions.