SOLID design principles with Python in 60 minutes

Learn the ideas behind S.O.L.I.D., how it is connected to Object Orientated Programming and how to use it in Python

My name is Loek van den Ouweland, a senior software engineer with 25 years of experience. I am the creator of Wunderlist for windows, Microsoft To-do and Mahjong for Windows and I love to teach software engineering!

What you’ll learn

  • What are the S.O.L.I.D. design principles?.
  • Single Responsibility Principle.
  • Open-closed Principle.
  • Liskov Substitution Principle.
  • Interface Segregation Principle.
  • Dependency Inversion Principle.

Course Content

  • Introduction –> 1 lecture • 6min.
  • S.O.L.I.D. Principles –> 5 lectures • 50min.
  • Conclusion –> 1 lecture • 2min.

SOLID design principles with Python in 60 minutes

Requirements

  • Some experience with Object Oriented Programming.

My name is Loek van den Ouweland, a senior software engineer with 25 years of experience. I am the creator of Wunderlist for windows, Microsoft To-do and Mahjong for Windows and I love to teach software engineering!

In this course you will learn the SOLID design principles in 60 minutes! You learn how to use Inheritance and Polymorphism to apply the principles to your code. SOLID helps you to keep the quality and maintanability of your code high.

The course topics are:

  • Introduction to S.O.L.I.D.
  • Single Responsibility Principle
  • Open-closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

After this course, you understand how OOP and SOLID work together and how the ultimate Object Orientation goal — Dependency Management — is reached by implementing the S.O.L.I.D. design principles.

The course also explains the difference between applying Object Oriented Design principles in typed languages and in a dynamic language like Python. A very important difference: “Typed languages like c# or c++ need an interface to support Polymorphism. In a dynamic language like Python, you get polymorphism out of the box.”

The feedback I get from my students is that after this course, they understand how to design their software in a way that protects them from requirement changes!