Clean Architecture Course C++

Bundesamt für Seefahrt und Hydrographie Gothaer Bayerische Oberlandbahn PTB Continental Hochschule Esslingen Bosch Sky

Clean Architecture C++ Course: practical course for programmers and advanced

Are you familiar with the object-oriented features of C++, but unsure how to truly leverage them for your project? Have you successfully used inheritance and want to learn more about it? Or have you worked with object-oriented code that was difficult to understand and adapt to new problems, and you want to learn how to avoid such issues?

Then a course focused on modern object-oriented programming and clean architecture might be right for you. In this course, we cover both language-agnostic concepts and fundamentals, as well as specific features unique to C++, such as templates as a static alternative for certain design patterns. We'll also show you what has proven successful in practice and caution against pitfalls to avoid "object spaghetti."

All courses live

In the Academy or online

Your benefits at a glance

  • Lots of practice and immediately applicable knowledge for your projects

  • Certificate for active participation

  • Small groups with max. 8 participants

  • Your trainers are experts with years of teaching and industry experience

  • Comprehensive learning materials

  • Compact, lively, and sustainable

What do you learn

  • Effectively utilize object-oriented programming and templates
  • Learn to apply design patterns
  • Understand Responsibility-Driven Design
  • Acquire techniques to maintain program structure

Content

The course covers a selection of the following topics:

  • Object-Oriented Design (OOD)
  • Object-Oriented Programming (OOP) in C++
  • How to effectively employ OOD and OOP? How to avoid common pitfalls?
  • Templates as a static alternative for certain design patterns
  • Design patterns (e.g., Gang of Four patterns)
  • Architecture patterns (e.g., Clean Architecture, SOLID, GRASP)
  • Architectural styles (e.g., layered architecture, hexagonal architecture)

Prerequisite

This course is designed for individuals who want to elevate their design and architecture skills to the next level.

Since this course includes many practical exercises in C++, it is recommended to have at least a basic understanding of C++. If you are completely new to programming or have limited programming knowledge, then the "C++ Basics Course" would be the appropriate course for you.

Description

This course teaches you in a simple and structured manner how to effectively utilize modern object-oriented techniques to enhance the design of your programs and avoid common pitfalls that can occur when these techniques are applied without proper understanding.

You will learn the fundamentals of object-oriented design and object-oriented programming, and see how they can be implemented in C++ specifically. We will discuss numerous concrete design and architecture patterns, as well as the benefits and challenges that arise from the intentional use of patterns.

Schedule

We will start with a brief discussion of design principles and how C++ supports these concepts. We will explore why design patterns are excellent tools for learning object-oriented design and why one must be cautious not to fall into the trap of "patternitis."

Next, we will delve into the "Gang of Four" patterns and discuss foundational design patterns such as the Factory Method, Abstract Factory, Observer, Adapter, Composite, and Template Method. We will not only abstractly discuss these patterns but also show how they can be implemented in C++ and highlight any specific considerations. In particular, we will explore how templates can be used as an alternative to inheritance in certain situations and when it is beneficial to do so.

We will then shift our focus to various aspects of clean code and Responsibility-Driven Design, diving into the SOLID and GRASP principles in detail. You will learn about principles such as the Dependency Inversion Principle, which allows you to control the direction of dependencies in your software. While it may not seem spectacular at first, it is one of the most critical means of keeping your software architecture under control.

Finally, we will apply the knowledge gained so far to software architecture. We will discuss how selecting an appropriate architectural style can drastically reduce the complexity of your software, and how you can iteratively adapt your software architecture to meet current requirements.

Throughout this journey, we will use case studies to demonstrate how patterns can be combined to solve various design problems, even when their goals may sometimes compete with each other.

Certificate

Of course, as a participant in the C++ Clean Software Architecture course, you will receive a certificate. The prerequisite for this is complete participation in all course units and programming tasks.

Where do we go from here?

If you are interested in learning how to write "clean" and well-structured code - code that is easy to maintain, extend, and can be relied upon to function as intended - then our course, "C++ Clean Code and Clean Test," is the right course for you. In this course, you will learn various techniques to enhance the quality of your software.

We are excited to welcome you to this and future courses at the Coding Academy!

Course formats

3-day on-site course

The course takes place in our modern and top-equipped training rooms. We provide each participant with a modern laptop during the training. Drinks are provided by the Coding Academy. Access to the material will be provided at the latest on the first day of the course

3-day online course
The course takes place online. You only need a computer with Internet access; however, for some courses it is necessary to install the software used; this is specified in the description of the respective course. Access to the material will be provided at the latest on the first day of the course.

4-week program

A new and innovative learning concept. More information about the 4 weeks program can be found here.

YOUR TRAINERS

The C++ Clean Software Architecture course is conducted by one of the following trainers:

Dr. Matthias Hölzl
Dr. Matthias Hölzl

Expert: Python, C++, Clean Code, Unit Test, Clean Design

Dr. Stefan Behnel
Dr. Stefan Behnel

Expert: Python, Pytest, Clean Code, Fast Python, Cython

Dr. Max Meier
Dr. Max Meier

Expert: .NET/C#, Software Architecture, Microservice

Customer testimonial

We thank our customers for their trust

Thomas Christl

I can absolutely recommend the Coding Academy. I attended an introductory course on programming with Python. The training materials were top notch and very comprehensive. In addition to the clear explanation of the theory, there were many exercises a...

Show full testimonial

Thomas Christl,
Innovation Manager Mobility TÜV SÜD

Astrid Elbe 02 lrg web

My joint projects with the Coding Academy have been very successful and absolutely reliable. The course catalog includes the programming languages that are currently most relevant in companies. The courses on improving software quality and productivi...

Show full testimonial

Dr. Astrid Elbe,
Vice President Aviat Networks und ehemalige Managing Director Intel Labs Europe

Request