The SOLID principle
Single responsibility principle
Open/closed principle
Interface segregation principle
Dependency inversion principle