I recently finished reading the book "Software Architecture Patterns" by Mark Richards, published by O'Reilly.
Usually, on my free time, I occasionally like to code and take a more hands-on approach to things, and I still think that such a way works best for me in terms of learning and grasping technical concepts. However, from time to time I like to read technical books, especially general-purpose books, because they help me put my own knowledge in perspective and see how far I've come, or how much more I still can learn and improve.
Here are a few of my own personal takeaways from the book:
Architecture patterns are the foundation upon which applications will be built and are somewhat neglected as most shops simply "accept" things as they are;
Your shop's culture can and will affect the way your architecture (and as a consequence, your application and code) will be shaped. Corporate environment is linked to architectural technical decisions, more than some of us (devepolers!) might think. This is known as Conway's law;
Patterns can be combined where sensible to do so, as there's rarely a "one-size-fits-all" type of solution;
Some of the patterns can be derived by yourself, while you are working on your own side-projects;
Patterns change and follow industry trends and/or new solutions to "old problems";
What I really liked about this short book as also the way the author enumerated several technologies and/or technical artifacts to really realize the abstractions inherent to each pattern in practice: your service layer in a certain micro-services architecture can be a Spring service class. This abstraction can be a JavaBean, etc. I think it's always great to put it into practice, and personally, I think this shows how experienced the author probably is (despite the book being very high level), since these kind of almost 1-to-1 mappings between pattern abstractions and concrete, actionable code implementations is very hard to get right.
Review: 3.5/5 - enjoyable read.
I definitely liked reading this and get a good overview of some of the most common architecture patterns, and I even got familiar with some new concepts.