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. Design Patterns in the Wild: Null Object

    I knocked out a pretty decent refactoring of some of the internals of Factory...

    Josh Clayton
    November 1, 2011
    • Web
    • Ruby
    • Testing
    • Good Code
  2. Separate your filters

    Separate the things which are not searching from the things which are indeed actually searching.

    Mike Burns
    October 6, 2011
    • Web
    • Rails
    • Good Code
  3. Getting Sequential: A look into a Factory Bot Anti-pattern

    I’ve noticed a handful of what I’d consider Factory Bot anti-patterns, either...

    Josh Clayton
    October 3, 2011
    • Web
    • Open Source
    • Testing
    • Rails
    • Good Code
    • Factory Girl
    • Factory Bot
  4. Unobtrusive Ruby

    Thoughts on ruby that lets you work.

    Mike Burns
    September 12, 2011
    • Web
    • Good Code
    • Ruby
  5. A Paperclip Refactoring Tale: Part One: Dependency Injection

    High level walk through of a paperclip feature refactor.

    Mike Burns
    September 6, 2011
    • Web
    • Paperclip
    • Ruby
    • Good Code
  6. ActiveRecord, Caching, and the Single Responsibility Principle

    I was working on a messaging system earlier this week and noticed a pretty...

    Josh Clayton
    August 19, 2011
    • Web
    • Rails
    • Good Code
  7. If You Gaze Into nil, nil Gazes Also Into You

    Every developer runs into the dreaded nil object error: NoMethodError in...

    Joe Ferris
    July 28, 2011
    • Web
    • Ruby
    • Good Code
  8. Switching on an Attribute of Another Object

    It is a bad idea to do a switch based on an attribute of another object. If...

    July 8, 2011
    • Web
    • Ruby
    • Good Code
  9. The Common Threads through AntiPatterns

    For a few years, I’ve been developing content and giving talks on the theme...

    Chad Pytel
    May 24, 2011
    • News
    • Web
    • Good Code
  10. Let it REST

    You are building a boring blog application. A blog has many comments. Your...

    Harold Giménez
    December 22, 2010
    • Web
    • Good Code
    • Rails
  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 … 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