Architecture of C++ Applications: Design Patterns and Scaling
300 pages
English
PDF
4.5

Architecture of C++ Applications: Design Patterns and Scaling

Architecture of C++ Applications: Design Patterns and Scaling

Author:

Year:

Summary:

The book "Architecture of C++ Applications" is a comprehensive guide to designing and developing complex software systems in C++. Unlike many textbooks that focus on syntax, this book is dedicated specifically to architectural decisions: how to organize code so that it is flexible, testable, and easily maintainable over many years.



The author consistently guides the reader from basic principles to advanced techniques. The first part of the book introduces the fundamentals: SOLID, GRASP, composition and inheritance, dependency inversion. You will learn how to avoid "god objects" and "spaghetti code" at the design stage.



The second part thoroughly examines classic creational, structural, and behavioral GoF patterns with examples in modern C++ (C++17/20). Each pattern is considered not in isolation, but in the context of real-world tasks: working with external APIs, event handling, configuration management.



Special attention is paid to issues specific to C++: memory management (smart pointers, pools, allocators), RAII, multithreading and asynchrony (std::async, std::future, threads). You will learn to design systems that work correctly in a multithreaded environment without data races and deadlocks.



A separate chapter is devoted to architecture testing: unit tests, mock objects, integration testing, and how architecture affects code testability. Issues of documentation, code review, and refactoring legacy projects are also discussed.



The book is intended for C++ developers who already write code but want to move to a new level — from "it just works" to "it is well-designed." It will be useful for both middle-level developers and senior engineers wishing to systematize their knowledge. Senior students of technical specialties will also find practical examples here that complement academic theory.



After reading, you will be able to:

  • Apply SOLID and GRASP for designing flexible systems
  • Select and implement appropriate design patterns
  • Design safe multithreaded architecture
  • Efficiently manage memory in large projects
  • Write testable code and build architecture resilient to change
  • Refactor legacy code without losing functionality


The book contains many code examples, diagrams, and exercises for independent work. All examples are tested on current compilers (GCC, Clang, MSVC) and conform to the C++17/20 standards. This is not just a reference, but a practical guide that will help you create reliable and scalable applications in C++.

Recommendations