Software Architecture with C++, Second Edition, Published by Packt
Part 1: Concepts and Components of Software Architecture
Chapter 1: Importance of Software Architecture and Principles of Great Design
Chapter 2: Architectural Styles
Chapter 3: Functional and Nonfunctional Requirements
Part 2: The Design and Development of C++ Software
Chapter 4: Architectural and System Design Patterns
Chapter 5: Leveraging C++ Language Features
Chapter 6: Design Patterns and C++
Chapter 7: Building and Packaging
Chapter 8: Package Management
Chapter 9: The Future of C++ Code Reuse: Using Modules
Part 3: Developing Quality Software
Chapter 10: Writing Testable Code
Chapter 11: Observability
Chapter 12: Continuous Integration and Continuous Deployment
Chapter 13: Security in Code and Deployment
Chapter 14: Performance
Part 4: Cloud Native design and distributed systems
Chapter 15: Architecture of Distributed Systems
Chapter 16: Inter-Process Communication
Chapter 17: Service Oriented Architecture
Chapter 18: Designing Microservices
Chapter 19: Containers
Chapter 20: Cloud Native Design
This is the code repository for Software Architecture with C++, published by Packt.
Design modern systems using effective architecture concepts, design patterns, and techniques with C++23
Software architecture refers to the high-level design of complex applications. It is evolving just like the languages we use. Modern C++ allows developers to write high-performance apps in a high-level language without sacrificing readability and maintainability. If you're working with modern C++, this practical guide will help you put your knowledge to work and design distributed, large-scale apps. You'll start by getting up to speed with architectural concepts, including established patterns and rising trends. The book will then explain what software architecture is and help you explore its components. Next, you'll discover the design concepts involved in application architecture and the patterns in software development, before going on to learn how to build, package, integrate, and deploy your components. In the concluding chapters, you'll explore different architectural qualities, such as maintainability, reusability, testability, performance, scalability, and security. Finally, you will get an overview of distributed systems, such as service-oriented architecture, microservices, and cloud-native, and understand how to apply them in application development.
This book covers the following exciting features:
- Understand how to apply the principles of software architecture
- Apply design patterns and best practices to meet your architectural goals
- Write elegant, safe, and performant code using the latest C++ features
- Build applications that are easy to maintain and deploy
- Explore the different architectural approaches and learn to apply them as per your requirement
- Simplify development and operations using application containers
- Discover various techniques to solve common problems in software design and development
If you feel this book is for you, get your copy today!
All of the code is organized into folders. For example, Chapter02.
The code will look like the following:
int count = 0;
for (std::size_t i = 0; i < len; ++i) {
if (str[i] == '.') count++;
}
Following is what you need for this book: This software architecture C++ programming book is for experienced C++ developers who are looking to become software architects or are interested in developing enterprise-grade applications.
With the following software and hardware list you can run all code files present in the book (Chapter 1-15).
You need at least one of the following compilers:
No. | Software required | OS required |
---|---|---|
1 | GCC 14 | Windows, Mac OS X, and Linux (Any) |
2 | Clang 19 | Windows, Mac OS X, and Linux (Any) |
3 | Microsoft Visual C++ 14.42 | Windows |
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. 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.
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.
Andrey Gavrilin
If you have already purchased a print or Kindle version of this book, you can get a DRM-free PDF version at no cost.
Simply click on the link to claim your free PDF.