Giter Site home page Giter Site logo

packtpublishing / software-architecture-with-cpp Goto Github PK

View Code? Open in Web Editor NEW
467.0 23.0 144.0 957 KB

Software Architecture with C++, published by Packt

License: MIT License

C++ 97.14% CMake 2.25% C 0.09% Python 0.17% Nix 0.10% Shell 0.14% Dockerfile 0.05% HCL 0.06%

software-architecture-with-cpp's Introduction

Software Architecture with C++

Software Architecture with C++ by Packt Publishing

Table of Contents

Chapter 1: Importance of Software Architecture and Principles of Great Design

Chapter 2: Architectural Styles

Chapter 3: Functional and Nonfunctional Requirements

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: Continuous Integration and Continuous Deployment

Chapter 9: Writing Testable Code

Chapter 10: Security in Code and Deployment

Chapter 11: Performance

Chapter 12: Service Oriented Architecture

Chapter 13: Microservices

Chapter 14: Containers

Chapter 15: 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++20

What is this book about?

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!

https://www.packtpub.com/

Errata

  • Page 196: The sentence "This is one example of a more general optimization named Small Object Optimization (SSO)" must be read as "This is one example of a more general optimization named Small Object Optimization (SOO)".

Instructions and Navigations

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).

Software and Hardware List

You need at least one of the following compilers:

No. Software required OS required
1 Microsoft Visual C++ 16.8 Windows
2 Clang 16 Windows, Mac OS X, and Linux (Any)
3 GCC 13 Windows, Mac OS X, and Linux (Any)

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. Click here to download it.

Related products

Get to Know the Authors

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.

Download a free PDF

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.

https://packt.link/free-ebook/9781838554590

software-architecture-with-cpp's People

Contributors

andreashafischer avatar aostrowski avatar divyavijayan123 avatar doomhammer avatar gaal-dev avatar gaurav-packt avatar packt-itservice avatar packt-pradeeps avatar packtutkarshr avatar zheltkov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

software-architecture-with-cpp's Issues

nix-build error on macos

Hi, looks like nix-build on macos generates:

error: Package ‘lsb_release’ in /nix/store/6gyh8gqb20hn0xnz5a2rifhncnzwicmb-source/pkgs/os-specific/linux/lsb-release/default.nix:16 is not supported on ‘x86_64-darwin’, refusing to evaluate.

any workaround ?

**Could not find a package configuration file provided by "Microsoft.GSL"**

I'm getting the following error when trying to build the Chapter02 example:

Could not find a package configuration file provided by "Microsoft.GSL"

With the following profile:

conan profile show
Host profile:
[settings]
arch=x86_64
build_type=Release
compiler=clang
compiler.cppstd=gnu14
compiler.libcxx=libc++
compiler.version=11
os=Macos

Build profile:
[settings]
arch=x86_64
build_type=Release
compiler=clang
compiler.cppstd=gnu14
compiler.libcxx=libc++
compiler.version=11
os=Macos

CMake Error at CMakeLists.txt:14 (find_package):
Could not find a package configuration file provided by "Microsoft.GSL"
with any of the following names:

Microsoft.GSLConfig.cmake
microsoft.gsl-config.cmake

Add the installation prefix of "Microsoft.GSL" to CMAKE_PREFIX_PATH or set
"Microsoft.GSL_DIR" to a directory containing one of the above files. If
"Microsoft.GSL" provides a separate development package or SDK, be sure it
has been installed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.