Single Responsibility Principle (SRP)
  • How to Ask Questions
  • Download Source Code and Slides
  • Join .NET Community of Students
  • Outline
  • SOLID Intro
  • SRP Definition. Problem Statement
  • Demo of the Problem
  • Refactoring to a Better Design
  • More Examples of SRP Violations
  • SRP Related Patterns
  • Conclusion
Open/Closed Principle (OCP)
  • Outline
  • OCP Definition. Problem Statement
  • Demo of the Problem
  • Refactoring to a Better Design
  • OCP Related Patterns
  • Common Smells of OCP Violation
  • Conclusion
Liskov Substitution Principle (LSP)
  • Outline
  • LSP Definition. Problem Statement
  • Contracts
  • Demo of the Problem
  • Refactoring to a Better Design
  • More Examples of LSP Violations
  • Common Smells of LSP Violation
  • Conclusion
Interface Segregation Principle (ISP)
  • Outline
  • ISP Definition. Problem Statement
  • Demo of the Problem
  • Refactoring to a Better Design
  • Demo of the Problem. Example 2
  • Refactoring to a Better Design. Example 2
  • Common Smells, Fixes and Related Patterns
  • Conclusion
Dependency Inversion Principle (DIP)
  • Outline
  • DIP Definition. Problem Statement
  • Dependencies
  • Volatile and Stable Dependencies
  • IoC and DI Definitions
  • DIP Violation Demo
  • Refactoring to a Better Design Applying Dependency Injection (DI)
  • DI Techniques
  • Architectural Implications
  • Pure DI and IoC-Containers
  • Building a Simple IoC-Container
  • Demo of a Real-World App Built with an IoC-Container
  • Common Smells of DIP Violations
  • Conclusion
Metaprinciples and SOLID
  • Outline
  • DRY - Don't Repeat Yourself
  • KISS - Keep it Simple, Stupid
  • YAGNI - You Ain't Gonna Need It
  • SoC - Separation of Concerns
  • CQS - Command Query Separation Principle
  • Violation of Law of Demeter
  • Principle of Least Astonishment
  • Encapsulation and Information Hiding
  • General Principles of Building APIs
  • SOLID VS YAGNI
  • OCP VS YAGNI
  • SRP and ISP. What's the Difference?
  • Architecture and Design
  • Conclusion
  • Final Quiz
  • BONUS Lecture