Skip to main content
thoughtbot thoughtbot
  • Live on Twitch!

    thoughtbot is livestreaming

    Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

  • Case Studies
  • Blog
  • Let’s Talk
Live on Twitch!

thoughtbot is livestreaming

Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

Let’s get started!
View all Services
Development
  • Ruby on Rails
  • Hotwire
  • AI and Machine Learning
  • Maintenance
  • Mobile
Design
  • Discovery Sprints
  • UX, UI, and Product Design
  • Design Systems
Product
  • MVP
  • Product Management
  • Accessibility
Team and Processes
  • Team Augmentation
  • Fractional Leadership
View all Services
View all Resources
Development
  • Tech Leadership Resources
  • Open Source
  • Books
  • The Bike Shed Podcast
  • Live Streaming on YouTube
  • Conference Talks
The business of great software
  • Playbook
  • Purpose Built
  • Giant Robots Smashing Into Other Giant Robots Podcast
  • Design Sprint Guide
  • Live Streaming on LinkedIn
View all Resources

Good Code Articles

Written by thoughtbot, your expert partner for design and development.

    • All Topics
    • Design
    • Development
    • Product
    • More topics
  1. Refactoring: Replace Conditional with Polymorphism

    How to work through existing code to add polymorphic behavior.

    Joe Ferris
    September 17, 2012
    • Web
    • Good Code
  2. Expressing the problem

    Trade-offs between data and behavior.

    Mike Burns
    August 1, 2012
    • Web
    • Ruby
    • Good Code
  3. Name It

    There will be Ruby in the middle of this blog post. But first, a tangent in...

    Mike Burns
    July 24, 2012
    • Web
    • Ruby
    • Good Code
  4. Tell, Don't Ask

    And now, a friendly message from your local Tell, don’t ask Department. ...

    Ben Orenstein
    July 19, 2012
    • Web
    • Ruby
    • Good Code
  5. How Much Should I Refactor?

    The Rails community has been abuzz with object-oriented programming, SOLID...

    Joe Ferris
    June 25, 2012
    • Web
    • Good Code
  6. Types of Coupling

    Those of you coming from a Google search are about to be disappointed.

    Ben Orenstein
    May 15, 2012
    • Web
    • Ruby
    • Good Code
  7. Beware Homonyms

    When you name a class, choose a name that’s unlikely to refer more than one...

    Ben Orenstein
    May 13, 2012
    • Web
    • Good Code
  8. Read between the lines

    Don’t try to cram too much into a small space.

    Joe Ferris
    May 10, 2012
    • Web
    • Good Code
  9. Humans Present: Refactoring

    In the latest Humans Present, I sit down with Joe Ferris, our CTO, and we...

    Chad Pytel
    May 5, 2012
    • News
    • Upcase
    • Web
    • Good Code
  10. Come Correct with Inject and Collect

    Here’s a refactoring example for a simple Ruby math problem using the inject...

    Adarsh Pandit
    May 3, 2012
    • Web
    • Ruby
    • Good Code
  11. Sign up to receive a weekly recap from thoughtbot

    Looking for even more ways to stay connected?
    RSS feed icon Check out our feeds
« First ‹ Prev … 3 4 5 6 7 8 9 10 Next › Last »

Footer

thoughtbot
  • Services
  • Case Studies
  • Resources
  • Let's Talk
  • Our Company
  • Careers
  • Purpose
  • Blog
  • Sponsor
  • Mastodon
  • Bluesky
  • GitHub
  • YouTube
  • Twitch
  • Feeds
© 2025 thoughtbot, inc.

The design of a robot and thoughtbot are registered trademarks of thoughtbot, inc.

  • US: +1 (877) 9-ROBOTS
  • UK: +44 (0)20 3807 0560
  • Beware of fraudulent thoughtbot job listings Learn more
  • Code of Conduct
  • Accessibility Statement
  • Privacy Policy