Master Software Design Patterns and Architecture in C++

Gain insights into software design patterns and architecture in C++. Learn about C++ idioms, concurrency patterns, and apply the right solutions to improve code quality and productivity.

Intermediate

111 Lessons

30h

Certificate of Completion

Gain insights into software design patterns and architecture in C++. Learn about C++ idioms, concurrency patterns, and apply the right solutions to improve code quality and productivity.

AI-POWERED

Explanations

AI-POWERED

Explanations

This course includes

96 Playgrounds
11 Quizzes

This course includes

96 Playgrounds
11 Quizzes

Course Overview

Software engineering researchers and practitioners noticed that parts of software projects could often be solved using approaches that were discovered earlier to solve similar problems. This led to the documentation of software design and architectural patterns, which are known solution approaches to a class of problems. This course starts by putting software patterns into perspective by answering the question, “What is a software pattern, and how is it different from an algorithm?” You will then learn ab...Show More

What You'll Learn

An understanding of the differences between software design and architectural patterns

A working knowledge of the difference between patterns and algorithms

A deep understanding of common software design and architectural patterns

Hands-on experience working with useful C++ idioms

Familiarity with the key patterns for concurrency

What You'll Learn

An understanding of the differences between software design and architectural patterns

Show more

Course Content

1.

Introduction

Get familiar with enhancing software development through design, concurrency, and architectural patterns.
2.

Introduction to Design Patterns

Look at the foundations, origins, and components of design patterns in software development.
3.

Deep Dive into Design Patterns

Examine design patterns, including strategy, factory, singleton, adapter, bridge, and PImpl idiom.
4.

More Design Patterns

Enhance your skills in using and implementing various design patterns for software architecture.
5.

Idioms

Explore idioms like RAII, Copy-and-Swap, and CRTP for efficient resource management in C++.
6.

Architectural Patterns

6 Lessons

Focus on key architectural patterns like Layered, Pipes-and-Filters, Broker, MVC, and Reactor.
7.

Patterns for Concurrency

13 Lessons

Master the steps to implement safe concurrent programming using patterns like copied value, TLS, tasks, and locking strategies.
8.

Conclusion

1 Lesson

Get familiar with software design patterns, C++ idioms, and advanced architectural concepts.

Course Author

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

Instant Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor