Not recommended.
This book isn’t badly written, it isn’t full of glaring errors. However, for me, there is a terrible mistake on the cover. The title is Software Architecture with C++. That is a gross misrepresentation of what this book contains. The title should have been something like C++ Best Practices using Microservices. I have almost no interest in microservices and I would never have bought the book if I’d seen such a title. There is a longer subtitle: Design modern systems using effective architecture concepts, design patterns, and techniques with C++ 20. Still no mention of microservices. My guess is that the authors have worked exclusively with microservices and can’t see the wood for the trees. For them, architecture IS microservices. It isn’t.
Section one covers ‘Concepts and Components’. It starts off well enough, but then wanders into an explanation of SOLID and DRY. I’d say that’s more programming principles than architecture. On the subject of styles: “Transitioning to microservices – Most companies have some kind of monolithic code that that they don’t want to immediately rewrite using microservices”. I’ve worked for three companies in the past 20-odd years and, in that sample, 100% are never going to rewrite their monolithic code using microservices. At the most they will use some peripheral code to allow running the monolithic products on cloud servers. I’m not going to hold my breath for BLAS and LAPACK microservices that are faster than the conventional library versions. There’s a reasonably good chapter on ‘Requirements’ but that’s not specific to architecture.
Section 2 on ‘Design and Development’ is decent, starting with a microservices-ish view of design and then a few chapters on general C++ practice. Stuff like Design Patterns and CMake. Section 3 continues in the same vein covering things like testing, CI/CD and performance.
I almost gave up reading Section 4 on ‘Cloud-Native Design Principles’. It just seemed like a mostly brief catalogue of microservices. Some only get a single bullet list. None of them were of any interest to me before and reading a few words about them did not pique my curiosity.
If you have a strong interest in microservices then ignore this review and perhaps consider reading this book. If, on the other hand, like me you have approximately zero interest in microservices then give this book a wide berth.
Website: https://www.packtpub.com/en-us/product/software-architecture-with-c-9781838554590
Code site: https://github.com/PacktPublishing/Software-Architecture-with-Cpp