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. How to Extract an Intention-Revealing Name Using Vim

    This method has a magic number: def wait_time @env[QUEUE_WAIT_HEADER].to_i...

    Joe Ferris
    May 2, 2012
    • Good Code
    • Vim
  2. What is good code?

    What are the fundamentals of good code?

    Joe Ferris
    April 25, 2012
    • Playbook
    • Good Code
  3. Decorators Compared To Strategies, Composites, and Presenters

    We’ve been paying closer attention lately to how we use design patterns in...

    Dan Croak
    April 12, 2012
    • Web
    • Good Code
    • Ruby
  4. Rails Refactoring Example: Introduce Null Object

    You probably don’t write code like this: if object.kind_of?(User) do_this...

    Dan Croak
    April 11, 2012
    • Web
    • Rails
    • Good Code
  5. Watch for Turbulence

    Give low complexity to your high-churn code.

    Mike Burns
    February 24, 2012
    • Web
    • Good Code
  6. Derive #inject for a better understanding

    Let’s talk about Enumerable#inject. It’s special to me. In other cultures...

    Mike Burns
    February 17, 2012
    • Web
    • Ruby
    • Good Code
  7. Inject that Rails Configuration Dependency!

    Setting up configuration settings in a Rails app has been fairly...

    Josh Clayton
    January 25, 2012
    • Web
    • Rails
    • Testing
    • Good Code
  8. Evaluating Alternative Decorator Implementations In Ruby

    Thinking about decorations.

    Dan Croak
    December 26, 2011
    • Web
    • Rails
    • Good Code
  9. Tidy Views and Beyond with Decorators

    The problem Here’s a view serving monkeys#show. What’s wrong...

    Harold Giménez
    December 2, 2011
    • Web
    • Ruby
    • Testing
    • Rails
    • Good Code
  10. The One-Method Silent Killer in Your Cucumber Suite

    A regular expression bug in selector_for.

    Jason Morrison
    November 3, 2011
    • Web
    • Testing
    • 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 … 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