http://webpro.github.io/programming-principles/
http://www.artima.com/weblogs/viewpost.jsp?thread=331531
Generic
Module/Class
http://www.artima.com/weblogs/viewpost.jsp?thread=331531
Generic
- KISS (Keep It Simple Stupid)
- YAGNI
- Do The Simplest Thing That Could Possibly Work
- Separation of Concerns
- Keep Things DRY
- Code For The Maintainer
- Avoid Premature Optimization
- Boy-Scout RuleInter-Module/Class
- Minimise Coupling
- Law of Demeter
- Composition Over Inheritance
- Orthogonality
Module/Class
- Maximise Cohesion
- Liskov Substitution Principle
- Open/Closed Principle
- Single Responsibility Principle
- Hide Implementation Details
- Curly’s Law
- Encapsulate What Changes
- Interface Segregation Principle
- Command Query Separation