Part 2 Core patterns
Core patterns are those that we use over and over, almost to the point at which they become clichés. So it’s vital for our success to master these core patterns and understand them well. Also, we need to make sure that we speak the language of patterns in a way that enables us to communicate our systems and designs to other people.
Occasionally, it’s good to remember that patterns are not the goal. We may need to step back from our work and view it from a higher level to ensure that we’re not applying patterns mindlessly without understanding the problem we’re trying to solve.
The goal of software design is rarely to use all the features of a language or maximize the number of lines of code. Rather, the goal is to solve problems and create enduring value. Patterns are tools that help us reach that goal, but they’re not the only ones we have at our disposal. Sometimes, the best solution is the simplest one or the one that is best understood. We also write software for fun sometimes, and that’s fine too.