Skip to main content

Gang of Four Design Patterns

By Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

Design Patterns: Elements of Reusable Object-Oriented Software

TLDR

  • Iconic book of computer science education fame regarding code design patterns. Despite its age, nearly every pattern is still viable, in use today, and there are no better replacements.
  • Read the newest edition.

Why?

For every issue you encounter in code, you are likely implementing one of these patterns, but this book gives it a name, and you awareness of that fact.

Who should read?

Anyone who is interested in taking their code design knowledge one level deeper, having heightened awareness of the behaviors and solutions they are undertaking on a daily basis.

Important concepts

  • Many design patterns have to do with legacy or uncontrolled software, these are valuable in many, many situations, but are unlikely to apply too heavily to us, at least in the short term.
  • Naming is a very important programming concept, and this book gives you the proper name for many of the items you design.
  • Do not take this book too far: Just because you know a cool pattern, doesnt mean the level of complexity is required in your next ticket (but feel free to experiment OUTSIDE the code base 😃)
  • For TypeScript/JavaScript users, don't take "class" too literally, you can apply most class based patterns to Objects/Functions.