The Bike Shed

435: Cohesive Code with Jared Norman


Listen Later

How easy is it for a layperson to understand your systems? Jared Norman is a software consultant, speaker, and host of the Dead Code Podcast who specializes in building e-commerce applications in Ruby on Rails. This episode follows two recent talks at RailsConf and covers a theme that emerged from both of them: coupling and cohesion. Tuning in, you’ll gain insights on how to create more cohesive components to allow for change and improve your understanding of value objects, systems, and more. You’ll also hear about navigating the complexity of domain-driven design and learn how to gauge if your code is easy to understand through a simple rule of thumb. We discuss what it might look like to improve the cohesion of individual objects, identify your systems’ seams to create simplicity, and the liminal space between inheritance and composition and the role of decorators in moving through it. Join us today to hear all this and more!

Key Points From This Episode:

Introducing Jared Norman recent speaker at RailsConf and Ruby on Rails specialist.

Jared’s interests outside of coding: cycling.
Themes that emerged from Jared and Stephanie’s talks: coupling and cohesion.
A rule of thumb for achieving high cohesion.
How value objects tie into the idea of cohesion.
Creating more cohesive components in order to have code and systems that are easier to change.
The relationships between objects in increasing cohesion and how complex nestings of objects can hinder this.
Rearranging systems in order to find seams and create cohesion.
Simplifying code in order to facilitate it working independently to support functionality.
Improving systems by identifying opportunities for decoupling and other relationships.
Inheritance, composition, and decorators and the liminal space between.
The complexity of domain-driven design.
A rule that indicates when a system is easy to understand.

Links Mentioned in Today’s Episode:

  • Jared Norman
  • Jared Norman on X
  • The Most Useful Design Pattern
  • Dead Code
  • So Writing Tests Feel Painful. What Now?
  • Dungeons & Dragons & Rails by Joël Quenneville
  • Building Reusable Object-Oriented Systems: Composition
  • Debugging at the Boundaries
  • Working Effectively with Legacy Code
  • Growing Object-Oriented Software Guided by Tests
  • What’s in a Name
  • Joel Quenneville on LinkedIn
  • 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,890 Listeners

    Planet Money by NPR

    Planet Money

    30,734 Listeners

    Marketplace by Marketplace

    Marketplace

    8,765 Listeners

    Tentative by thoughtbot

    Tentative

    9 Listeners

    The Changelog: Software Development, Open Source by Changelog Media

    The Changelog: Software Development, Open Source

    289 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

    986 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,510 Listeners

    Shell Game by iHeartPodcasts and Kaleidoscope

    Shell Game

    1,113 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