32,39 €
Designing scalable and maintainable software with C++ requires more than language expertise—it demands strong architectural thinking. This practical guide equips you with the skills to design and build robust, distributed systems using modern C++.
Starting with fundamental architectural principles and design philosophies, the book walks you through practical approaches to designing and deploying reliable systems. This edition contains significant updates across the book, including new chapters on observability, package management, and C++ modules to address real-world software challenges. You will explore software decomposition strategies, design and system patterns, fault tolerance, API management, and testability—all applied with C++.
Additionally, the book covers modern CI/CD pipelines, cloud-native design, microservices, and modular development, helping developers navigate today's fast-evolving software landscape. With updated examples and a renewed emphasis on maintainable and observable architectures, this edition equips C++ professionals to architect modern systems. By the end of this book, you will be able to design, build, test, and deploy well-architected solutions using modern C++ and proven architectural techniques.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 1090
Veröffentlichungsjahr: 2025
Software Architecture with C++
Second Edition
Designing robust C++ systems with modern architectural practices
Andrey Gavrilin
Adrian Ostrowski
Piotr Gaczkowski
Software Architecture with C++
Second Edition
Copyright © 2025 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Portfolio Director: Kunal Chaudhari
Relationship Lead: Denim Pinto
Project Manager: K. Loganathan
Content Engineer: Richa Singh
Technical Editor: Aditya Bharadwaj
Copy Editor: Safis Editing
Indexer: Rekha Nair
Proofreader: Richa Singh
Production Designer: Ganesh Bhadwalkar
Growth Lead: Vinishka Kalra
First published: April 2021
Second edition: December 2025
Production reference: 1161225
Published by Packt Publishing Ltd.
Grosvenor House
11 St Paul’s Square
Birmingham
B3 1RB, UK.
ISBN 978-1-80324-301-6
www.packtpub.com
I hate the way you require semicolons,
I hate the way templates confuse my mind,
I hate the way memory leaks quietly,
But most of all, I love that you let me hack reality,
With nothing but text, logic, and caffeine.
– Andrey Gavrilin
Andrey Gavrilin is a seasoned software engineer whose eagerness for computer games led him to explore C++, Pascal, and assembly language. He holds an MSc degree in engineering (industrial automation) and has worked across several domains, which allowed him to understand the importance of quality software architecture. His interests include system programming, embedded development, game programming, and electronics. An enthusiast of retro gaming and vintage computing, he enjoys studying how older technologies inform modern system design. These hobbies complement his professional work, providing creative inspiration and a fresh perspective on the IT evolution.
Adrian Ostrowski is a modern C++ enthusiast interested in the development of both the C++ language itself and the high-quality code written in it. A lifelong learner with over a decade of experience in the IT industry and in C++ specifically, he’s always eager to share his knowledge. His past projects range from parallel computing, through fiber networking, to working on a commodity exchange’s trading system.
In his spare time, Adrian used to promote music bands together with Piotr and has learned how to fly a glider. He likes riding his bicycle, going to music events, and browsing memes.
Piotr Gaczkowski has more than 10 years of experience in programming and practicing DevOps and uses his skills to improve people’s lives. He likes building simple solutions to human problems, organizing cultural events, and teaching fellow professionals. Piotr is keen on automating boring activities and using his experience to share knowledge by conducting courses and writing articles about personal growth and remote work.
He has worked in the IT industry both in full-time positions and as a freelancer, but his true passion is music. When not making his skills useful at work, you can find him building communities.
DeákFerenc began his fearless journey into the realm of software development at a time when coding meant deciphering cryptic mnemonics from the pages of a magazine and manually keying them into a real ICE Felix HC-91 computer (a clone of the famous Sinclair ZX Spectrum). From these modest origins, he progressed through the rapidly shifting tides of technology, joyfully upgrading to a 386 with an EGA display. Those 16 colors left an indelible impression, binding him forever to the fascinating world of software creation.
Over the years, he has grown into a security- and safety-focused software developer with more than two decades of experience. Specializing in low-level system programming, optimization, and application safety analysis, he considers himself quite proficient in C and C++, but also skilled in Go, Java, Python, and various web technologies. His favorite areas of development include security, compilers, graphics, and networking, though he’s always ready to explore new challenges as they arise. His goal is to tackle demanding software design and engineering problems while continually broadening his expertise and contributing to the ever-growing landscape of open source software. In his spare time, he channels his enthusiasm for technology into writing technical articles for various programming magazines.
When not bound to a keyboard, he is usually found in his second-most-favored spot in the world, next to a kitchen bench, where he hopefully cooks delicious meals following traditional recipes from the hills, mountains, and forests of Transylvania.
I’d like to extend my sincere thanks to the Packt community for reaching out and inviting me to be part of this exciting journey once again. I’m also deeply grateful to the authors for introducing me to numerous tips and technologies I wasn’t familiar with, many of which have broadened my perspective and inspired me to explore new directions in my own work.
Alexei Kondratiev is a mission-critical software and embedded systems engineer with 20+ years of experience in medical, automotive, Advanced Driver Assistance Systems (ADAS), and aerospace domains, specializing in low-latency and high-throughput concurrent and asynchronous C++ software development. He has a solid background in network programming and protocols, distributed systems, system and embedded programming, troubleshooting, integration with open source projects, performance analysis, and optimization.
He is currently a C++ software developer at LTA Research, an aerospace research and development company that builds experimental and certified manned airships. At LTA, he is the owner of the Soft Real-Time Embedded Linux Airship Helium Gas Cells Volume Monitoring System, Soft Real-Time Hardware Simulation System, and Soft Real-Time Dynon Avionics SkyView HDX Emulator for the Glass Cockpit Electronic Flight Instrument System R&D C++ projects.
Read this book alongside other users, developers, experts, and the author himself.
Ask questions, provide solutions to other readers, chat with the authors via Ask Me Anything sessions, and much more. Scan the QR or visit the link to join the community.
https://packt.link/deep-engineering-cpp
Once you’ve read Software Architecture with C++, we’d love to hear your thoughts! Please https://packt.link/r/1803243015 for this book and share your feedback.
Your review is important to us and the tech community and will help us make sure we’re delivering excellent quality content.
This part introduces you to the basics of software architecture, demonstrating effective approaches to its design and documentation.
This part contains the following chapters:
Chapter 1, Importance of Software Architecture and Principles of Great DesignChapter 2, Architectural StylesChapter 3, Functional and Nonfunctional Requirements