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
Web Development
  • Ruby on Rails
  • Hotwire
  • AI and Machine Learning
  • React
  • Maintenance
Mobile Development
  • React Native
  • iOS
  • Android
Design
  • UX, UI, and Product Design
  • Design Research
  • Design Systems
Product
  • Product Management
  • Product Design Sprint
  • Research and Strategic Insights
  • Accessibility
Team and Processes
  • Team Augmentation
  • Fractional Leadership
  • Level up your junior team
View all Services
View all Resources
Development
  • Tech Leadership Resources
  • Open Source
  • Books
  • The Bike Shed Podcast
  • Live Streaming on YouTube
The business of great software
  • Playbook
  • Startup Incubator
  • 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 strategy, design, product management, and development partner.

    • All Topics
    • Design
    • Web
    • iOS
    • Android
    • More topics
  1. Building Reusable Object-Oriented Systems: Inheritance

    Using inheritance to share common logic.

    Joël Quenneville
    October 31, 2016
    • Web
    • Ruby
    • Good Code
  2. Your Program is a Special and Unique Snowflake

    Simplify and clarify your code by carefully choosing abstractions.

    Joe Ferris
    May 26, 2016
    • Good Code
    • Ruby
  3. My issues with Let

    let can lead to bloat. Be careful.

    Jason Draper
    May 20, 2016
    • Testing
    • Ruby
    • Good Code
    • Web
  4. Refactor Until You Feel Almost Comfortable

    Duplication is cheaper than the wrong abstraction.

    Tute Costa
    December 15, 2015
    • Good Code
  5. Splitting an open source project in two with Git submodules

    How and why we split the doorkeeper project into different rubygems.

    Tute Costa
    June 2, 2015
    • Open Source
    • Good Code
  6. Keeping the Front-End Modular with BEM

    Using BEM when naming your classes makes being object-oriented easy and fits right in with MVC projects.

    Connie Chan
    February 24, 2015
    • CSS
    • BEM
    • Sass
    • Good Code
    • Design
  7. Lazy Refactoring

    Look over our shoulder as we refactor and optimize a set of queries.

    Joël Quenneville and Matt Sumner
    November 7, 2014
    • Web
    • Ruby
    • Good Code
  8. Collaboration is Other People

    You’ve heard a colleague say “You’re all smart coders. You can figure out how my code works!” as an excuse to let less-than-clear code slip in. This is bunk, and here’s why.

    Jon Yurek
    November 4, 2014
    • Style
    • Good Code
    • Hound
  9. Back to Basics: Anonymous Functions and Closures

    Anonymous functions and closures are a useful concepts included in most...

    Britt Ballard
    October 10, 2014
    • Web
    • Back To Basics
    • Good Code
    • Ruby
    • JavaScript
  10. How to Stop Voodoo Programming

    Voodoo programming is when we write code that we don’t really understand. We know we shouldn’t do it. But how do we stop?

    Rich Rines
    October 7, 2014
    • Good Code
  11. Sign up to receive a weekly recap from thoughtbot

« First ‹ Prev 1 2 3 4 5 6 7 8 … Next › Last »

Footer

thoughtbot
  • Services
  • Case Studies
  • Resources
  • Let's Talk
  • Our Company
  • Careers
  • Purpose
  • Blog
  • Sponsor
  • Mastodon
  • GitHub
  • Instagram
  • YouTube
  • Twitch
© 2024 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