Design Patterns Q&A - Q2 - But why did they even become a thing?
Tags: beginners, codenewbie, designpatterns, java
Published: 2023-11-19 18:28:10

## Newbie asked:
Recipes for design? That sounds intriguing. But why did they even become a thing? Was designing like the Wild West before?

## Master answered:
If you're interested in software development, you might wonder how it used to be done. Before design patterns, software design was done in silos.

Developers worked alone, sometimes without guidance, leading to less knowledge sharing and collaboration and that made many codebases unmaintainable. This meant developers had to spend a lot of time maintaining the code to keep businesses running. It was a lot of effort and not a very efficient way to develop software.

> 👉 **Remember**: The time invested in avoidable rework is time wasted in reality. Make productive use of your precious time.

The Gang of Four (GoF)[^1] were a group of software design pioneers who sought to bring order to the chaotic software design world.

![Organize things](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wvopi0416j11dt5e41v1.jpg)

In 1994, to address this issue, GoF wrote a book called "Design Patterns: Elements of Reusable Object-Oriented Software,"[^2] where they catalogued solutions to recurring design problems. It felt like embarking on a thrilling adventure, charting a course through the uncharted territory of design, and paving the way for others to follow without losing their way.

| ✍ **Note**: |
| --------- |
| GoF did not reinvent the idea of patterns. But more on this in the upcoming blog in this series. So stay tuned!|

Design patterns are like the set of best practices for designing. Design patterns are solutions to problems that software designers have developed and evolved, presented in an easily applicable form. They bring order to the chaos, providing a set of proven solutions.

Creating a beautiful design is like cooking a delicious meal. Just as a recipe has specific instructions to follow, design patterns give us a common language and a way to work together effectively in the wide world of design.

Expert designers reuse successful solutions instead of solving every problem from scratch. Design patterns help them solve specific design problems and make object-oriented designs more flexible, elegant, and reusable.

GoF wrote this book to extract the experience of object-oriented software designers in the form of design patterns. In object-oriented systems, each pattern has a systematic method of naming, explaining, and evaluating significant recurring design challenges. They had a goal to present this design experience in a practical form that people can effectively use. To achieve this, they compiled a catalogue of some of the most significant design patterns. I would encourage you to read that book to find out more. 

Design patterns emerged as a way to bring structure and organization to the chaos of designing solutions to recurring problems. They provide a structured approach to designing and serve as a reliable guide for designers.

Ready for more insights into this design adventure?

See you soon in the next episode of this series.

| ✍ **Note**: |
| --------- |
| If you enjoyed this blog, please consider liking, subscribing, commenting, and praising it. Your support will help us to continue sharing stories of hope and inspiration with others.|

Happy designing!

```properties
✍ Disclaimer: This post is enhanced with AI assistance.
```

[^1]: Gang of Four (AKA Gof): Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
[^2]: Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides