REVIEW - C++ Software Design - Design Principles and Patterns for High-Quality Software


Title:

C++ Software Design

Design Principles and Patterns for High-Quality Software

Author:

Klaus Iglberger

Publisher:

O'Reilly Media (2023)

Pages:

438

Reviewer:

Aschwin Marsman

Reviewed:

May 2023

Rating:

★★★★★


Verdict: Highly recommended.

This book is, as the title gives away, about good software design. It explains what software design is and that includes design goals like design for change, testability and extension. It looks in great depth at the advantages and disadvantages of different design approaches. It then looks at different design patterns that are described in detail, looking at them from different angles with different ways of implementing them and how we can find them in e.g. the C++ standard library or other examples.

It has 11 chapters and each of them give different guidelines which can also be found in the table of contents so that you can quickly find them again later. The first chapter talks about the art of software design, the following chapter about the art of building abstractions and the third one about the purpose of design patterns.

The following chapters look at different design patterns in great depth: Visitor, Strategy, Command, Adapter, Observer, CRTP, Bridge, Prototype, External Polymorphism, Type Erasure, Decorator and Singleton. It looks at these from different perspectives to previous books about design patterns that I’ve read.

This should not be your first book on C++ but for every non beginning C++ developer from every experience level there is a lot to learn and think about, highly recommended! I can also highly recommend videos from conference talks from Klaus Iglberger which are good introductions to what is described in much more detail in the book.

Website: https://www.oreilly.com/library/view/c-software-design/9781098113155/






Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.