SOLID November 27, 2024 Dependency Inversion Principle Interface Segregation Principle Liskov Substitution Principle Open-Closed Principle Single Responsiblity Principle solid +