What is a design pattern?
Since you just purchased a book about design patterns, I guess that you have some idea of what they are, but let's just make sure that we are on the same page:
Abstract definition: A design pattern is a proven technique that can be used to solve a specific problem.
In this book, we apply different patterns to solve different problems and how to leverage some open source tools to go further, faster! Abstract definitions make people sound intelligent and all, but there is no better way to learn than by experimenting with something, and design patterns are no different.
If that definition does not make sense to you yet, don't worry. You should have enough information at the end of the book to correlate the multiple practical examples and explanations with that definition, making it clear enough.
I like to compare programming to playing with LEGO® because what you must do is mostly the same: snap small pieces together to create something. It could be a castle, a spaceship, or something else that you want to build. With that analogy in mind, a design pattern is a plan to assemble a solution that fits one or more scenarios; a tower or a reactor, for example. Therefore, if you lack imagination or skills in the case of LEGO®, possibly because you are too young, your castle might not look as good as someone else's that has more experience. Design patterns give you those tools, helping you build and glue beautiful and reliable pieces together to improve that masterpiece. However, instead of snapping LEGO® blocks together, you nest code blocks and interweave objects in a virtual environment!
Before going into more detail, well-thought-out applications of design patterns should improve your application designs. That is true when you design a small component or a whole system alike. However, be careful; throwing patterns into the mix just to use them can lead to the opposite. Aim to write readable code that solves the issue at hand, not at over-engineering systems with as many patterns as you can.
As we have briefly mentioned, there are design patterns applicable to multiple software engineering levels, and in this book, we start small and grow cloud-scale! We follow a smooth learning curve, starting with simpler patterns and code samples that bend good practices a little to focus on the patterns, and finally end with more advanced full stack topics, integrating multiple patterns and good practices.