Good software design is essential for the success of your project, but designing software is hard to do. You need to have a deep understanding of the consequences of design decisions and a good overview of available design alternatives. With this book, experienced C++ developers will get a thorough, practical, and unparalleled overview of software design with this modern language.
C++ trainer and consultant Klaus Iglberger explains how you can manage dependencies and abstractions, improve changeability and extensibility of software entities, and apply and implement modern design patterns to help you take advantage of today's possibilities. Software design is the most essential aspect of a software project because it impacts the software's most important maintainability, changeability, and extensibility.
Learn how to evaluate your code with respect to software designUnderstand what software design is, including design goals such as changeability and extensibilityExplore the advantages and disadvantages of each design approachLearn how design patterns help solve problems and express intentChoose the right form of a design pattern to get the most out of its advantages
Legitimately awful software design practices. The author is a "consultant" who does not write real software, but rather, lives off pushing bloated unsubstantiated dogma. Basically: A quack.
# More
The "design philosophy" here could be summarized in 20 pages, and the remaining 480 are workarounds to the glaring issues caused by the forementioned "design philosophy." How deluded must one be to not realize how wrong this is?
Wasting the limited time engineers have on earth to make people's lives easier is outright evil.
# Conclusion
It took me very long to understand why effective engineers such as Linus Torvalds and John Carmack, pioneers who actually engineer software at scale, both hate the author's described approach of abusing OOP.
I invite you to search for John's Carmack's (an actual programmer, and not a quack) comments about writing DOOM 3 in the article "The Exceptional Beauty of Doom 3's Source Code" by Kotaku and read it in its entirety.
In my BSc, I studied the classical design patterns from the GoF book and was wondering if there was a C++ specific modern version. This book is the closest to that I was able to find, and it didn't disappoint. It has just the right amount of examples and explanations without overexplaining the never-ending flow of implementation details. The only thing missing is more patterns and slightly less programming dad jokes.