Three Rubyists having conversations and interviewing others about Ruby and web development.

Layered Rails Design with Vladimir Dementyev

September 29, 2023 0:47:41 91.57 MB Downloads: 0

In this episode, Jason and Andrew are joined by guest, Vladimir Dementyev of Ruby on Rails and Evil Martians fame. Today, they touch on Vladmir’s new book on designing Rails applications, and dive into the importance of sticking to Rails principles, even in the era of microservices.  Vladimir shares insights on working as a consultant on legacy Rails projects and the challenges that can arise when codebases deviate from Rails conventions. We’ll also explore the evolution of Rails applications, the power of open source contributions, and Vladimir’s journey to becoming a recognized figure in the tech community. Also, Vladimir introduces AnyCable, a performance-oriented solution for real-time communication in Rails applications and provides insights into its capabilities and evolution. Hit download now to hear much more! 


[00:02:29] Vladimir briefly describes his book on designing Rails applications. 


[00:05:40] Vladimir talks about sticking to Rails principles and not injecting foreign patterns into Rails applications and emphasizes the importance of maintaining a Rails oriented approach even when using microservices. 


[00:08:33] We hear about Vladimir working as a consultant on legacy Rails projects and the challenges of maintaining codebases that deviate from Rails principles. 


[00:10:29] Jason asks for more examples of where the Rails framework ends and developers have to steer their own course. Vladimir discusses the structure of the app folder in Rails applications and mentions the trend of putting everything in the model folder, and he talks about how Rails applications changed during the API-only era, leading to a shift away from Rails conventions and MVC patterns. 


[00:13:41] Andrew expresses how he feels vindicated for sticking to writing Rails apps even when the trend shifted towards API-only development. 


[00:15:08] Vladimir shares his journey to joining Evil Martians, starting as a solo developer, and his attraction to the simplicity of Rails. He mentions his experiments with different design patterns and how joining Evil Martians provided a collaborative environment for open source work. 


[00:19:15] Vladimir talks about how Evil Martians encouraged new engineers to propose conference talks, leading him to present on AnyCable, which sparked his open source contributions. 


[00:20:18]  He talks about how it took a couple of years for his efforts, including writing blog posts and working on AnyCable, to gain recognition and production users outside of Evil Martians. Also, he explains how writing became a way for him to cope with stress and how it contributed to the company’s visibility and recognition in the tech community. 


[00:26:20] We hear about Evil Martians’ shift in focus from consumer products to developer tools and how they use and contribute to products built by others. Vladimir briefly discusses HTTPie, and how they helped with its development. 

 

[00:28:44] Jason brings up AnyCable, and Vladimir tells us what it is, what problem it solves, and the benefits of using it. Also, he explains how AnyCable allows for seamless replacement of Action Cable in existing applications and its Go-based WebSocket server. 


[00:32:16] Vladimir mentions that AnyCable has evolved over seven years to offer additional features, including support for different transports and service-sent events, making it versatile for various use cases. 


[00:34:08] Vladimir discusses the versatility of AnyCable, highlighting that it can be deployed anywhere and used with platforms beyond Rails. He mentions that AnyCable is becoming the default choice for handling WebSockets in Rails applications as they continue to expand their reach into other ecosystems.


[00:38:09] We hear about some upcoming features for AnyCable, including presence tracking, and plans to make AnyCable compatible with other ecosystems. Vladimir teases a new feature he’s working on for Rails and Turbo.


[00:43:04] Andrew shares that he used to read Vladimir’s code on GitHub to learn new patterns and gain inspiration for his own work.  He mentions reading code from different libraries and ecosystems is a powerful way to expand one’s toolkit for problem-solving.


[00:43:47] Vladimir suggests the idea of a podcast or show where experts review codebases and discuss patterns, techniques, and the rationale behind certain code decisions. He believes it could be a great way to learn and share knowledge. 


[00:45:36] Jason shares that he appreciates Vladimir’s contributions to Ruby on Rails and the high-quality content shared by Evil Martian’s on their blog. 


[00:46:36] Find out where you can find Vladimir online.



Panelists:

Jason Charnes

Andrew Mason



Guest:

Vladimir Dementyev




Sponsor:

Honeybadger



Links:

Jason Charnes Twitter

Chris Oliver Twitter

Andrew Mason Twitter

Vladimir Dementyev Twitter

Vladimir Dementyev GitHub

StimulusReflex Discord

Evil Martians

Layered Design for Ruby on Rails Applications: Discover practical design patterns for maintainable web applications by Vladimir Dementyev

AnyCable

HTTPie

Rails World 2023

Ruby for All Podcast