Proposed by Robert C. Martin in 2000.
They are recommendations for writing maintainable, scalable and robust code. The idea is to implement some principles so that the code is clean and maintainable over time. It is not mandatory, they are recommendations.
- High Cohesion: refers to collaboration between classes.
- Low coupling: Prevent one class from strongly depending on another class.