xpcoffee icon
This is my site. Please treat it gently. ❤

Patterns

This is my own reference-sheet for patterns. The aim is to make my own vocabulary explicit to align with others and to enhance my knowledge over-time.

Why care?

Patterns are ways of organizing/architecting code or logical systems that have proven useful at solving specific problems. They are useful for multiple reasons:

  1. They introduce you to the existence of certain types of problems; you don't need to go through the pain of dicovering them for yourself.
  2. You don't need to solve these problems from scratch. Even if a pattern doesn't fit your use-case perfectly, it can give you a strong head-start in solving your problem.
  3. They give you a vocabulary to use when speaking to other developers about high-level concepts. Not needing to talk through low-level details can save a lot of time during design discussions and reviews.
  4. They apply outside of code. These are ways to organize logical systems; you can apply patterns to any logically organized system e.g. companies/organizations, production lines, your workflow at home.

Patterns