
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Understand what this course is about and what you can get out of it as a C++ developer
Understand the structure of the labs and how they are supposed to be solved
Understand the Single Responsibility Principle, how real-life violations look like and how it relates to cohesion
Understand the Open-Closed Principle, how real-life violations look like and how it relates to using abstract interfaces
Understand the Liskov Substitution Principle, how real-life violations look like and how it relates to substitutability
Understand the Interface Segregation Principle, how real-life violations look like and how it relates to minimal interfaces and low coupling
Understand the Dependency Inversion Principle, how real-life violations look like and how it relates to loose coupling and leaking implementation details
Some final words on SOLID principles and C++
In this course, we learn how to develop C++ according to the SOLID Principles.
Have you ever heard of the SOLID principles? They are design principles that help us write maintainable and reusable code.
If you are familiar with SOLID, you might have watched a tutorial or two.
Were the tutorials using "Shape" or "Animal" classes in their oversimplified examples?
Were they written in Java or focused on some domain you are not interested in?
Well, this course is different.
First of all, you get a real insight into what the SOLID principles are about. No sugar-coating, no fancy design patterns, or exotic language features.
Secondly, the course is in C++. Simple, modern C++ with pragmatic examples you may encounter in production code-bases.
Production code is not always perfect, but it is normally not terrible either.
Violations of SOLID are subtle, and you will learn to recognize them.
Refactoring does not always makes sense, but after this course you will be able to determine when it does.
Step-by-step, we go through each principle and map it to well-known programming practices and quality attributes.
We look at several practical examples and discuss how they can be improved by following the SOLID principles.
We analyze code and identify violations of the principles.
Finally, we refactor C++ to make it more SOLID and discuss whether or when that makes sense.
You are looking a hands-on course. You will write a lot of SOLID C++ code yourself. There is a lab for each principle, where you will receive a piece of code, analyze it, and then refactor it to make it more SOLID.
Intrigued? Ready to take your C++ to the next level? Join me in this course, and let's get started!