Architect high-quality C++ applications using modern features and patterns, with expanded coverage of observability and cloud-native tooling, plus new content on monadic design techniques for modular C++ development.
Key Features
Architect high-performance C++ systems using C++20 and beyond
Build, test, and secure production-ready systems by applying solid design principles
Manage, package, and deploy cloud-native applications using CMake, Conan, and CI/CD
Book DescriptionDesigning scalable and maintainable software with C++ requires more than language expertise-it demands architectural thinking and an ability to deliver systems in dynamic environments. This practical guide equips you with the architectural skills needed to design and build robust, distributed software systems using modern C++.
Starting with fundamental architectural principles and design philosophies, the book walks readers through practical approaches to designing and deploying reliable systems. This edition includes significant updates and new content: chapters on observability, package management, and C++ modules address real-world software challenges. Readers 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, production-grade systems. By the end of this book, you will be able to design, build, test, and deploy enterprise-grade software solutions using modern C++ and proven architectural techniques.What you will learn
Apply architectural fundamentals to design scalable C++ systems
Use modern C++ features to create maintainable and secure applications
Implement architectural and system design patterns
Design testable code and automate quality checks via CI/CD pipelines
Manage dependencies and build systems using CMake and Conan
Explore microservices, containers, and cloud-native practices in C++
Improve observability with logging, tracing, and monitoring tools
Build secure, fault-tolerant, and high-performance production-grade software
Who this book is forThis book is intended for experienced C++ developers and software engineers aiming to expand their architectural knowledge, lead software projects, or build scalable systems. It assumes readers are comfortable with modern C++ (C++11 onwards) and familiar with basic design principles and patterns.
Auflage
Sprache
Verlagsort
Editions-Typ
Maße
Höhe: 235 mm
Breite: 191 mm
ISBN-13
978-1-80324-301-6 (9781803243016)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Klassifikation
Andrey Gavrilin is a senior software engineer working for an international company that provides treasury management cloud solutions. He has an MSc degree in engineering (industrial automation) and has worked in different areas such as accounting and staffing, road data bank, web and Linux distribution development, and fintech. His interests include mathematics, electronics, embedded systems, full-stack web development, retro gaming, and retro programming. 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 more than 8 years of experience with 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. Currently, he's one of the architects of Intel and Habana's integration with machine learning frameworks. 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.
In his spare time, Adrian used to promote music bands together with Piotr and has learned how to fly a glider. Currently, he likes riding his bicycle, going to music events, and browsing memes.
Table of Contents
Importance of Software Architecture and Principles of Great Design
Architectural Styles
Functional and Nonfunctional Requirements
Architectural and System Design
Leveraging C++ Language Features
Design Patterns and C++
Building and Packaging
Package Management
The Future of C++ Code Reuse: Using Modules
Writing Testable Code
Observability
Continuous Integration and Continuous Deployment
Security in Code and Deployment
Performance
Architecture of Distributed Systems
Interservice Communication
Containers
Cloud-Native Design