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
Radiolab by WNYC Studios

Radiolab

43,981 Listeners

Planet Money by NPR

Planet Money

30,795 Listeners

Marketplace by Marketplace

Marketplace

8,772 Listeners

Tentative by thoughtbot

Tentative

9 Listeners

The Changelog: Software Development, Open Source by Changelog Media

The Changelog: Software Development, Open Source

287 Listeners

Giant Robots Smashing Into Other Giant Robots by thoughtbot

Giant Robots Smashing Into Other Giant Robots

88 Listeners

Build Phase by thoughtbot

Build Phase

44 Listeners

Ruby Rogues by Charles M Wood

Ruby Rogues

45 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

624 Listeners

Soft Skills Engineering by Jamison Dance and Dave Smith

Soft Skills Engineering

288 Listeners

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

Syntax - Tasty Web Development Treats

989 Listeners

REWORK by 37signals

REWORK

210 Listeners

Crossroads by thoughtbot

Crossroads

2 Listeners

Remote Ruby by Chris Oliver, Andrew Mason

Remote Ruby

34 Listeners

Reboot by thoughtbot

Reboot

12 Listeners

Hard Fork by The New York Times

Hard Fork

5,522 Listeners

Shell Game by iHeartPodcasts and Kaleidoscope

Shell Game

1,126 Listeners

Complex Systems with Patrick McKenzie (patio11) by Patrick McKenzie

Complex Systems with Patrick McKenzie (patio11)

134 Listeners

The Pragmatic Engineer by Gergely Orosz

The Pragmatic Engineer

71 Listeners

Rails Business by Brendan Buckingham & Ryan Frisch

Rails Business

0 Listeners