Buy New
-
To see product details, add this item to your cart.
Ships from: Amazon.com Sold by: Amazon.com
Used - Like New
-
To see product details, add this item to your cart.
Ships from: WeBuyBooks-UK Sold by: WeBuyBooks-UK
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the author
OK
C++ Software Design: Design Principles and Patterns for High-Quality Software
Purchase options and add-ons
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 properties: maintainability, changeability, and extensibility.
- Learn how to evaluate your code with respect to software design
- Understand what software design is, including design goals such as changeability and extensibility
- Explore the advantages and disadvantages of each design approach
- Learn how design patterns help solve problems and express intent
- Choose the right form of a design pattern to get the most out of its advantages
- ISBN-101098113160
- ISBN-13978-1098113162
- Edition1st
- PublisherO'Reilly Media
- Publication dateOctober 25, 2022
- LanguageEnglish
- Dimensions7 x 0.75 x 9 inches
- Print length435 pages
Frequently bought together

Customers who viewed this item also viewed
- Tour of C++, A (C++ In-Depth Series)PaperbackFREE Shipping by AmazonGet it as soon as Sunday, Sep 20
- C++ Concurrency in ActionPaperbackFREE Shipping by AmazonGet it as soon as Sunday, Sep 20Only 4 left in stock (more on the way).
- Operating Systems: Three Easy PiecesPaperbackFREE Shipping on orders over $35 shipped by AmazonGet it as soon as Monday, Sep 21
- Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14PaperbackGet it as soon as Monday, Sep 28
- Beautiful C++: 30 Core Guidelines for Writing Clean, Safe, and Fast CodeJ. DavidsonPaperbackFREE ShippingGet it Sep 22 - 25
- Introducing C++: The Easy Way to Start Learning Modern C++PaperbackFREE Shipping by AmazonGet it as soon as Sunday, Sep 20
Customers also bought or read
- Beautiful C++: 30 Core Guidelines for Writing Clean, Safe, and Fast Code
Paperback$48.09$48.09FREE delivery Sep 22 - 25 - Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture
Paperback$46.15$46.15FREE delivery Mon, Sep 21 - Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
Paperback$44.32$44.32FREE delivery Sep 28 - Oct 14 - Operating Systems: Three Easy Pieces#1 Best SellerComputer Operating Systems Theory
Paperback$28.27$28.27Delivery Mon, Sep 21 - Modern C++ Programming Cookbook: Master Modern C++ with comprehensive solutions for C++23 and all previous standards
Paperback$26.53$26.53Delivery Mon, Sep 21 - C++ Memory Management: Write leaner and safer C++ code using proven memory-management techniques
Paperback$29.99$29.99Delivery Mon, Sep 21 - Design Patterns: Elements of Reusable Object-Oriented Software
Hardcover$24.35$24.35Delivery Mon, Sep 21 - The Art of Writing Efficient Programs: An advanced programmer's guide to efficient hardware utilization and compiler optimizations using C++ examples
Paperback$39.59$39.59FREE delivery Mon, Sep 21 - C++17 In Detail: Learn the Exciting Features of The New C++ Standard!
Paperback$31.99$31.99Delivery Mon, Sep 21 - C++ High Performance: Master the art of optimizing the functioning of your C++ code, 2nd Edition
Paperback$59.99$59.99FREE delivery Mon, Sep 21 - Modern CMake for C++: Effortlessly build cutting-edge C++ code and deliver high-quality solutions
Paperback$26.81$26.81Delivery Mon, Sep 21 - C++: A Beginner's Guide, Second Edition: A Beginner's Guide, Second Edition
Paperback$35.00$35.00FREE delivery Sep 29 - Oct 1 - Fluent Python: Clear, Concise, and Effective Programming
Paperback$43.99$43.99FREE delivery Sun, Sep 20 - Programming: Principles and Practice Using C++ (C++ In-depth)#1 Best SellerC++ Programming Language
Paperback$56.72$56.72FREE delivery Sun, Sep 20 - C++ in Embedded Systems: A practical transition from C to modern C++
Paperback$29.99$29.99Delivery Mon, Sep 21 - Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Addison-Wesley Professional Computing Series)
Paperback$24.00$24.00Delivery Sep 28 - Oct 1 - A Philosophy of Software Design, 2nd Edition#1 Best SellerSoftware Testing
Paperback$19.87$19.87Delivery Sun, Sep 20 - C++ Best Practices: 45ish Simple Rules with Specific Action Items for Better C++ (With Color Syntax Highlighting)
Paperback$25.99$25.99Delivery Mon, Sep 21 - Modern C++ Design: Generic Programming and Design Patterns Applied (C++ In-Depth Series)
Paperback$36.28$36.28FREE delivery Sep 23 - 25 - Making Embedded Systems: Design Patterns for Great Software#1 Best SellerComputer Hardware Embedded Systems
Paperback$32.74$32.74Delivery Sun, Sep 20 - Software Architecture with C++: Designing robust C++ systems with modern architectural practices
Paperback$33.99$33.99Delivery Mon, Sep 21
From the brand
-
Your partner in learning
-
Bestsellers
-
Software Development
-
Programming Languages
-
AI / Machine Learning
-
Data Science
-
Data, Databases and more
-
Cloud Services
-
Business
-
Finance
-
Blockchain / Cryptocurrency
-
Security
-
Lean series
-
Cookbooks
-
Head First series
-
97 Things series
-
Sharing the knowledge of experts
O'Reilly's mission is to change the world by sharing the knowledge of innovators. For over 40 years, we've inspired companies and individuals to do new things (and do them better) by providing the skills and understanding that are necessary for success.
Our customers are hungry to build the innovations that propel the world forward. And we help them do just that.
From the Publisher
From the Preface
Why I Wrote This Book
By the time I was really digging into the language (that was a few years after the first C++ standard had been released), I had read pretty much every C++ book there was. But despite the fact that many of these books were great and definitely paved the way for my current career as a C++ trainer and consultant, they were too focused on the little details and the implementation specifics, and too far away from the bigger picture of maintainable software.
At the time, very few books truly focused on the bigger picture, dealing with the development of large software systems. Among these were John Lakos’s Large Scale C++ Software Design, a great but literally heavy introduction to dependency management, and the so-called Gang of Four book, which is the classic book on software design patterns. Unfortunately, over the years, this situation hasn’t really changed: most books, talks, blogs, etc., primarily focus on language mechanics and features—the small details and specifics. Very few, and in my opinion way too few, new releases focus on maintainable software, changeability, extensibility, and testability. And if they try to, they unfortunately quickly fall back into the common habit of explaining language mechanics and demonstrating features.
This is why I’ve written this book. A book that does not, in contrast to most others, spend time on the mechanics or the many features of the language, but primarily focuses on changeability, extensibility, and testability of software in general. A book that does not pretend that the use of new C++ standards or features will make the difference between good or bad software, but instead clearly shows that it is the management of dependencies that is decisive, that the dependencies in our code decide between it being good or bad. As such, it is a rare kind of book in the world of C++ indeed, as it focuses on the bigger picture: software design.
Who This Book Is For
This book is of value to every C++ developer. In particular, it is for every C++ developer interested in understanding the usual problems of maintainable software and learning about common solutions to these problems (and I assume that is indeed every C++ developer). However, this book is not a C++ beginner’s book. In fact, most of the guidelines in this book require some experience with software development in general and C++ in particular. For instance, I assume that you have a firm grasp of the language mechanics of inheritance hierarchies and some experience with templates. Then I can reach for the corresponding features whenever necessary and appropriate. Once in a while, I will even reach for some C++20 features (in particular C++20 concepts). However, as the focus is on software design, I will rarely dwell on explaining a particular feature, so if a feature is unknown to you, please consult your favorite C++ language reference. Only occasionally will I add some reminders, mostly about common C++ idioms (such as the Rule of 5).
Editorial Reviews
About the Author
Product details
- Publisher : O'Reilly Media
- Publication date : October 25, 2022
- Edition : 1st
- Language : English
- Print length : 435 pages
- ISBN-10 : 1098113160
- ISBN-13 : 978-1098113162
- Item Weight : 2.31 pounds
- Dimensions : 7 x 0.75 x 9 inches
- Best Sellers Rank: #100,108 in Books (See Top 100 in Books)
- #8 in C++ Programming Language
- #12 in Object-Oriented Software Design
- #15 in Object-Oriented Design
- Customer Reviews:
About the author

Klaus Iglberger is a freelance C++ trainer and consultant. He completed his PhD in Computer Science in 2010 and has subsequently concentrated on large-scale C++ software design. He shares his expertise through popular C++ courses all around the world. He is also the creator and lead designer of the Blaze C++ math library (https://bitbucket.org/blaze-lib/blaze/), one of the organizers of the Munich C++ user group (MUC++) (https://www.meetup.com/MUCplusplus/), and the (co-)organizer of the Back-to-Basics (https://cppcon.org/b2b/) and Software Design (https://cppcon.org/softwaredesign/) tracks at CppCon (https://cppcon.org).

















