loading...

Takeaways from reading Software Architecture Patterns

brunooliveira profile image Bruno Oliveira ・2 min read

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.

Discussion

markdown guide