SOLID Principles
SOLID is a set of five object-oriented design principles that make software easier to understand, change and test. Single Responsibility: a class should have only one reason to change. Open/Closed: classes should be open for extension but closed for modification.
Liskov Substitution: a subclass should be usable anywhere its parent is expected. Interface Segregation: prefer several small, specific interfaces to one large one. Dependency Inversion: depend on abstractions such as interfaces, not on concrete classes.