REVIEW - Hands-On Design Patterns with C++ - 2nd Edition - Solve Common C++ Problems with Modern Design Patterns and Build Robust Applications


Title:

Hands-On Design Patterns with C++ - 2nd Edition

Solve Common C++ Problems with Modern Design Patterns and Build Robust Applications

Author:

Fedor G. Pikus

Publisher:

Packt Publishing (2023)

Pages:

592

Reviewer:

Paul Floyd

Reviewed:

March 2025

Rating:

★★★★☆


Recommended.

I find it increasingly hard to review books like this. The book is competently written but didn’t really stand out to me either. The main problem is that I’ve already read several similar books. I’d say that the book this is most similar to is Klaus Iglberger’s C++ Software Design (reviewed in CVu March 2023 [1] ). Of the two, which should you choose? In my case the answer is usually “both”. If you aren’t a bookworm, I’d say that Iglberger’s book is more ‘C++ language presented by a trainer’ whilst this book is more ‘C++ nitty gritty from a technical manager’.

The book builds up gradually from part 1 (3 chapters) on C++ features and concepts. Part 2 is idioms, or maybe mini-design patterns. I’m not too sure why CRTP merits being a design pattern but type erasure is only an idiom. Maybe just for the flow of the book. The last two parts cover various design patterns.

There isn’t that much overlap with Pikus’s other book (The Art of Writing Efficient Programs, see the review in CVu May 2023 [2]). The sections on Local Buffer Optimization and Patterns for Concurrency are the most performance oriented.

One little quote. In the section on The Non-Virtual Interface there’s a description of shadowing where a derived class overload hides a base class virtual function. Pikus says “ ‘shadowing’ ... is a very bad practice.” I couldn’t agree more, having worked on a large code base that suffers badly from this.

In conclusion, this book covers most of the C++ techniques that are currently considered as best practice. You should be able to go from the basics to applying these techniques. And possibly more important than just coding there are several sections covering design issues.

Website: https://www.packtpub.com/en-us/product/hands-on-design-patterns-with-c-9781788832564

GitHub: https://github.com/PacktPublishing/Hands-On-Design-Patterns-with-CPP-Second-Edition

References

[1] https://accu.org/bookreviews/2023/floyd_2001/

[2] https://accu.org/bookreviews/2023/floyd_2008/






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.