Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
We began adopting gradual typing on Shopify's giant monolith almost 3 years ago. Today, we are running the monolith with great type coverage and even see some internal teams commit to stricter typing in their components. The road to get here was not easy, though. We had to work with our developers to solve the right problems at the right levels of abstraction to ensure the adoption was healthy. This talk will go over some of the challenges and some of our wins along the way. It will also help you decide if gradual typing might work for your codebase and your team, as well.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In their presentation "Gradual Typing in Ruby" at RubyConf 2021, Ufuk Kayserilioglu and Alexandre Terrasa from Shopify discussed their three-year journey of adopting gradual typing in their codebase utilizing Sorbet. They emphasized that Ruby is inherently a dynamically typed language and that the introduction of gradual typing aims to enhance type safety without sacrificing the dynamic nature that developers love. They outlined several critical points regarding this adoption journey: - **Human and Technical Challenges**: The transition to gradual typing posed both human and technical challenges. It was crucial to address the developers' understanding and perception of the benefits of adopting this methodology. - **Importance of Gradual Adoption**: Emphasizing a gradual approach allowed teams to incrementally adopt the typing process, as opposed to a forceful complete overhaul which could lead to resistance. This flexibility meant developers could adopt typing at varying levels of rigor at their own pace. - **Building Support Tools**: The team created a suite of tools, including Robocop Sorbet, tapioca (for generating RBI files), and an internal metrics dashboard called Sorbet Metrics. These tools facilitated quicker adaptation by automating error checks and generating documentation for gem dependencies, which helped developers communicate better about their code and expectations. - **Positive Metrics and Feedback**: After implementing these strategies, the teams observed a significant increase in type coverage in their monolith, with only 8% of their files remaining untyped. Feedback from developers improved over time, demonstrating growing satisfaction and understanding of the benefits of typing. Surveys showed increased recognition of Sorbet catching errors before code reached production. - **Continuous Improvement**: The speakers highlighted the importance of continuous adaptation and tool improvement while also contributing back to the community to enhance Sorbet's capabilities, especially regarding Ruby on Rails functionalities. - **Culture of Collaboration**: By treating developers like customers, the team ensured that their needs were constantly assessed through feedback, which directed future enhancements and support for using Sorbet effectively. In conclusion, the journey towards gradual typing in Ruby at Shopify illustrates that with the right tools, methodology, and collaboration among teams while respecting the dynamic nature of Ruby, significant improvements in code quality and developer satisfaction can be achieved.
Suggest modifications
Cancel