The Bike Shed

440: When we stray from Rails defaults


Listen Later

When does it make sense to step away from Rails conventions? What are the limits of convention over configuration? While Rails conventions provide a solid foundation, there are times when customization is necessary to meet specific project needs. In this episode, Joël and Stephanie dive into the tradeoffs of breaking away from Rails defaults. They explore the limits of convention over configuration and share their experiences with customizing beyond the typical Rails setup. Joël offers insights from a recent project where the client opted for all dry-rb objects, and they unpack the benefits and potential challenges of this approach. Stephanie talks about why people tend to shy away from certain Ruby features and her lessons regarding leveraging callbacks for code development. Explore different testing frameworks, the situations when following Ruby defaults is better, the benefits of the ActiveModel ecosystem, and more! Whether you are a Rails purist or looking to bend the rules, this episode will help you understand the pros and cons of stepping outside the Ruby on Rails box. Don’t miss it!

Key Points From This Episode:

Joël shares details about a large-scale refactoring initiative he has been working on.

Stephanie’s recent legacy-code production problem and lessons from her experience.
What Joël would have done differently when building his refactoring initiative.
The problems of renaming background applications during code development.
Why the open-close principle is valuable for making class changes to a system.
Reasons that a migration strategy is vital for navigating new and legacy code.
Explore approaches for overcoming synchronization issues between systems.
Learn about the concept of connascence for coupling systems together.
Considerations for using asynchronous tools with a connascence approach.
Practical ways to maintain naming consistency during code development.
The importance of differentiating between web and business-logic layers.
Situations where relying on callbacks for connascence becomes problematic.
Other issues that callback problems can reveal during code development.
Joël unpacks the scenarios where he deviates from the Ruby on Rails standard.
Frameworks for testing code and final takeaways from Joël and Stephanie.

Links Mentioned in Today’s Episode:

'Refactoring Legacy Code with the Strangler Fig Pattern'

Connascence of Name (CoN)
ActiveModel docs
GitHub | activemodel
'Vanilla Rails is plenty'
GitHub | minitest
GitHub | test-unit
Episode 435: Cohesive Code with Jared Norman
Ruby on Rails
The Bike Shed
Joël Quenneville on LinkedIn
Support The Bike Shed

Support The Bike Shed

...more
View all episodesView all episodes
Download on the App Store

The Bike ShedBy thoughtbot

  • 4.9
  • 4.9
  • 4.9
  • 4.9
  • 4.9

4.9

121 ratings


More shows like The Bike Shed

View all
Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

Software Engineering Radio - the podcast for professional software developers

262 Listeners

The Changelog: Software Development, Open Source by Changelog Media

The Changelog: Software Development, Open Source

285 Listeners

Startups For the Rest of Us by Rob Walling

Startups For the Rest of Us

694 Listeners

Giant Robots Smashing Into Other Giant Robots by thoughtbot

Giant Robots Smashing Into Other Giant Robots

89 Listeners

Build Phase by thoughtbot

Build Phase

45 Listeners

The Ruby on Rails Podcast by Elise Shaffer

The Ruby on Rails Podcast

53 Listeners

Thoughtworks Technology Podcast by Thoughtworks

Thoughtworks Technology Podcast

43 Listeners

Reboot by thoughtbot

Reboot

12 Listeners

Tentative by thoughtbot

Tentative

9 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

630 Listeners

Soft Skills Engineering by Jamison Dance and Dave Smith

Soft Skills Engineering

271 Listeners

Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Syntax - Tasty Web Development Treats

984 Listeners

REWORK by 37signals

REWORK

212 Listeners

Crossroads by thoughtbot

Crossroads

2 Listeners

CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

CoRecursive: Coding Stories

185 Listeners

Remote Ruby by Chris Oliver, Andrew Mason

Remote Ruby

34 Listeners

Practical AI by Practical AI LLC

Practical AI

196 Listeners

Code and the Coding Coders who Code it by Drew Bragg

Code and the Coding Coders who Code it

6 Listeners

IndieRails by Jess Brown & Jeremy Smith

IndieRails

5 Listeners