Book Reviews - Software design edition

Fundamentals of Software Architecture by Mark Richards and Neal Ford

There seems to be a pretty big shortage of well written, cohesive literature on software architecture and design. This particular book seeks to address that and it does to an extent. As the title suggests the shared fundamentals of software architecture are covered very well, including topics such as:

  • Architecture characteristics
  • Modularity
  • Architectural governance
  • Architecture styles (covered very extensively!)

Overall I think the most important point that this book hammers home is that most decisions in software engineering are tradeoffs and they need to be understood as such. Developers fall into the trap of presenting changes and technical decisions as if they were akin to Pareto improvements way too often, when in reality they just haven't evaluated the downsides of said decision properly.

I highly recommend this book to technical decision makers and people looking to become architects, but I struggle to recommend this book as a whole to people below senior level and even for seniors I'd recommend just skimming the book and only really reading the section on various architectural styles.

My rating: Recommended

Buy it here: oreilly.com

Building Microservices by Sam Newman

I picked this book up to refresh my memory about bits of microservice architecture. This booked seemed like the obvious choice given its good reviews and that the second edition is fairly new and up-to-date with industry standards.

The book covers all aspects of microservice architecture with just the right amount of detail so that you come away with a good understanding of the building blocks of microservices. Every chapter contains references to more in-depth books and articles if you feel like you need more details, which I really appreciate. I also really liked that the author gave his personal opinion on basically every decision point of microservice architecture, including whether you even need microservices or not.

I really, really think this book should be mandatory reading to every technical leader that's either considering microservice architecture for a project or is working on microservices currently. I also recommend it to any experienced software engineer looking to understand the landscape and tradeoffs of microservices.

My rating: Highly Recommended

Buy it here: oreilly.com

.NET Microservices: Architecture for Containerized .NET Applications

This book is essentially a compiled version of various MSDN articles that cover eShopOnContainers, which is a .NET reference project for distributed, containerized microservices. As such it is not nearly as cohesive as the previous two books, but it contains a lot of very useful information on .NET microservices and microservice architecture in general.

The book comes with a very reasonable set of technology recommendations such as Ocelot for API gateways and RabbitMQ for messaging, but it doesn't really cover alternatives like Building Microservices does and that is okay! As a reference it does a good job at providing a clear path for .NET-based microservices and that is exactly what it aims to do.

If you're a developer looking to jump into creating microservices with .NET you can probably get away with just reading this book and nothing else, and you're golden. I'd personally still highly recommend reading Building Microservices as well, but hey, not everyone has the free time to read through a 600 page book.

My rating: Recommended

Get it here: msdn.com

Previous articleBook Reviews - Part 1 of (n)
Next articleBook Reviews - Programming Languages