What is a pattern, and what isn't?
- Published on Chris Richardson (microservices.io)
- Curated on
Software engineers draw on many kinds of reusable knowledge, including principles, practices, techniques, patterns, designs, methods, rules, reference architectures, and implementation approaches. Lots of people write about patterns, myself included. I’ve noticed, however, that like many concepts in software engineering, the concept of a pattern has suffered from semantic diffusion. There’s a tendency to label many different kinds of reusable knowledge as “patterns”, even when they don’t meet the definition, and to call any collection of them a pattern language.
This bothers me for a few reasons. I’ve been a fan of patterns and pattern languages since the Gang of Four’s Design Patterns book popularized them in the software community in the mid 90s, for the reasons I describe below. I like Domain-Driven Design, which is all about precise terminology. And as an author, I try to use words carefully.…