1 -Classes fundamentals
2 -Introduction to SOLID principles
3 -S - Single Responsibility Principle - theory
4 -S - Single Responsibility Principle - code & refactoring
5 -S - Single Responsibility Principle - Recognizing single responsibility
6 -S - Single Responsibility Principle - One reason to change
7 -Abstract types
8 -O - Open-closed Principle - theory
9 -O - Open-closed Principle - code
10 -O - Open-closed Principle - refactoring
11 -O - Open-closed Principle - limitations - toggle mechanism
12 -O - Open-closed Principle - limitations - cant predict all the changes
13 -O - Open-closed Principle - limitations - practicality
14 -L - Liskov Substitution Principle - theory
15 -L - Liskov Substitution Principle - violation of the interface
16 -L - Liskov Substitution Principle - violation of the interface - refactoring
17 -L - Liskov Substitution Principle - runtime type switching
18 -L - Liskov Substitution Principle - runtime type switching - refactoring
19 -L - Liskov Substitution Principle - condition strengthened for subtype
20 -L - Liskov Substitution Principle - condition strengthened for subtype - refac
21 -I - Interface Segregation Principle - theory
22 -I - Interface Segregation Principle - code
23 -I - Interface Segregation Principle - refactoring
24 -I - Interface Segregation Principle - reasoning
25 -D - Dependency Inversion Principle - theory
26 -D - Dependency Inversion Principle - relationship with Dependency Injection
27 -D - Dependency Inversion Principle - dynamic dependency creation
28 -D - Dependency Inversion Principle - code & refactoring
29 -Refactoring case study SOLID principles - code
30 -Refactoring case study SOLID principles - part 1
31 -Refactoring case study SOLID principles - part 2