Andrey Gavrilin, Adrian Ostrowski, Piotr Gaczkowski | Software Architecture with C++: Designing robust C++ systems with modern architectural practices [Second edition + Examples] (2025) [PDF] [EN]
Автор: Andrey Gavrilin, Adrian Ostrowski, Piotr Gaczkowski
Издательство: Packt Publishing
ISBN: 978-1803243016
Жанр: Программирование
Язык: Английский
Формат: PDF
Качество: Изначально электронное (ebook)
Иллюстрации: Цветные
Описание: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.
Архитектура программного обеспечения на C++: Проектирование надежных систем на C++ с использованием современных архитектурных методов. Адриан Островски, Андрей Гаврилин, Петр Гачовски
Разработка масштабируемого и поддерживаемого программного обеспечения на C++ требует не только знания языка, но и глубокого архитектурного мышления. Это практическое руководство даст вам навыки проектирования и создания надежных распределенных систем с использованием современного C++.
Начиная с фундаментальных архитектурных принципов и философии проектирования, книга знакомит вас с практическими подходами к проектированию и развертыванию надежных систем. Это издание содержит значительные обновления по всей книге, включая новые главы по наблюдаемости, управлению пакетами и модулям C++ для решения реальных задач разработки программного обеспечения. Вы изучите стратегии декомпозиции программного обеспечения, шаблоны проектирования и систем, отказоустойчивость, управление API и тестируемость — все это в применении к C++.
Кроме того, книга охватывает современные конвейеры CI/CD, облачное проектирование, микросервисы и модульную разработку, помогая разработчикам ориентироваться в быстро меняющемся мире программного обеспечения. Благодаря обновленным примерам и вновь акцентированному вниманию к поддерживаемым и наблюдаемым архитектурам, это издание готовит специалистов по C++ к проектированию современных систем. К концу книги вы сможете проектировать, создавать, тестировать и развертывать хорошо спроектированные решения, используя современный C++ и проверенные архитектурные методы.
Architect high-quality C++ applications using modern features and patterns, with expanded coverage and practical new examples throughout the book.
Создавайте высококачественные приложения на C++ с использованием современных возможностей и шаблонов, с расширенным охватом тем и новыми практическими примерами по всей книге.
Key Features
* Design modern C++ systems using features from C++11 through C++20 and beyond
* Explore distributed system design with observability, scalability, and maintainability in mind
* Manage and package C++ applications, and prepare them for deployment using CMake, Conan, and CI/CD
Ключевые особенности
* Разработка современных систем на C++ с использованием возможностей C++11, C++20 и более поздних версий.
* Изучение проектирования распределенных систем с учетом наблюдаемости, масштабируемости и удобства сопровождения.
* Управление и упаковка приложений на C++ и подготовка их к развертыванию с использованием CMake, Conan и CI/CD.
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 deployable C++ systems suited for modern development environments
Что вы узнаете
* Применение архитектурных основ для проектирования масштабируемых систем на C++
* Использование современных возможностей C++ для создания поддерживаемых и безопасных приложений
* Реализация архитектурных и системных шаблонов проектирования
* Разработка тестируемого кода и автоматизация проверок качества с помощью конвейеров CI/CD
* Управление зависимостями и сборка систем с использованием CMake и Conan
* Изучение микросервисов, контейнеров и облачных практик на C++
* Исследование наблюдаемости с помощью инструментов логирования, трассировки и мониторинга
* Создание развертываемых систем на C++, подходящих для современных сред разработки
Who this book is for
This 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.
Для кого предназначена эта книга
Эта книга предназначена для опытных разработчиков на C++ и инженеров-программистов, стремящихся расширить свои знания в области архитектуры, руководить проектами по разработке программного обеспечения или создавать масштабируемые системы. Предполагается, что читатели хорошо знакомы с современным C++ (C++11 и выше) и основными принципами и шаблонами проектирования.
Table of Contents
1. Importance of Software Architecture and Principles of Great Design
2. Architectural Styles
3. Functional and Nonfunctional Requirements
4. Architectural and System Design Patterns
5. Leveraging C++ Language Features
6. Design Patterns and C++ Idioms
7. Building and Packaging
8. Package Management
9. The Future of C++ Code Reuse: Using Modules
10. Writing Testable Code
11. Continuous Integration and Continuous Deployment
12. Security in Code and Deployment
13. Performance
14. Architecture of Distributed Systems
15. Interservice Communication
16. Containers
17. Observability
18. Cloud-Native Design
Содержание
1. Важность архитектуры программного обеспечения и принципы качественного проектирования
2. Архитектурные стили
3. Функциональные и нефункциональные требования
4. Архитектурные и системные шаблоны проектирования
5. Использование возможностей языка C++
6. Шаблоны проектирования и идиомы C++
7. Создание и упаковка
8. Управление пакетами
9. Будущее повторного использования кода C++: использование модулей
10. Написание тестируемого кода
11. Непрерывная интеграция и непрерывное развертывание
12. Безопасность кода и развертывания
13. Производительность
14. Архитектура распределенных систем
15. Межсервисное взаимодействие
16. Контейнеры
17. Наблюдаемость
18. Облачно-ориентированное проектирование
Скриншоты:
Время раздачи: с 9:00 до 20:00 (минимум до появления первых 3-5 скачавших)