Code Design
Courses and Workshops on Effective Code Design

SOLID Principles Insights

Florin Coroș

Florin Coroș


By participating to this training you will get a deep understanding of the object oriented design principles also known as the SOLID Principles. You will understand how by following them you can structure your code in a way that you will enjoy working on it, long after the first lines were written in your project.

This course explains the programming principles starting from the symptoms of the badly designed code and shows how complying with some of them you can eliminate these symptoms. By the same token the course shows that over-conformance to a principle or applying the principle just because it is a principle may be a mistake and may lead to other symptoms of a bad design. It is important to understand when a principle helps and when it damages as well as the tradeoffs involved when deciding to apply a principle over another.

Another important perspective the course gives is change. All the principles and the tradeoffs are presented in a way that shows how we can design the code that it is inexpensive to change. The factors of change and anticipating change becomes one of key discussions during the course and the main driver for making a design choice.


You should invest in mastering the Object Oriented Design Principles because:

  • you will see the symptoms of badly designed code and you will know how to eliminate them
  • you will exercise a way of thinking that will prevent you from falling into the most common mistakes in software design
  • you will design towards a better Separation of Concerns and you will have more means to manage the complexity
  • it will help you designing code that is inexpensive to change

Even if the SOLID Principles are known by most of the developers, this course presents through examples the subtlest aspects of each principle and gives the “Aha!” moments to most of the attendees. Once you master them, you will have insights that will make your approach to software design more mature, knowing the tradeoffs you make when you conform to a principle or another.

Target Audience

Any software developer would benefit greatly from this training.


Object Oriented Programming basics (inheritance; encapsulation; polymorphism; interfaces; abstract classes; virtual methods; overriding; overloading).

Format and Agenda

The training is structured in more sections. The first section is dedicated to the symptoms of badly designed code, and then each of the sections presents one of the principles.

The sections are:

  • Rotting Software Smells
  • Single Responsibility Principle
  • Open Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Injection Principle
  • Don’t Repeat Yourself

The recommended format for delivering the course is one day. This assures a balanced pace between explaining each principle, showing examples and discussing different implementations.


Please contact me for requesting an offer tailored to your needs.

You've successfully subscribed to Code Design
Great! Next, complete checkout to get full access to all premium content.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Error! Billing info update failed.