Introduction
The following software design principles are well agreed to at Pentaho. Understand these and keep them in-mind as you develop software with Pentaho
- DRY (Don't Repeat Yourself)
http://en.wikipedia.org/wiki/Don%27t_repeat_yourself
- Separation of Concerns
http://en.wikipedia.org/wiki/Separation_of_concerns
- Encapsulation
http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)
- Dependency Abstraction through Interfaces
Dependencies between classes should be through interfaces not classes.
- SOLID
http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
- Single Responsibility
http://en.wikipedia.org/wiki/Single_responsibility_principle
- Open/Closed
http://en.wikipedia.org/wiki/Open/closed_principle
- Liskov Substitution
http://en.wikipedia.org/wiki/Liskov_substitution_principle
- Interface Segregation
http://en.wikipedia.org/wiki/Interface_segregation_principle
- Dependency Inversion - a superset of (Service Locator, Factory, Dependency Injection)
http://en.wikipedia.org/wiki/Dependency_inversion_principle