Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

  1. DRY (Don't Repeat Yourself)
    http://en.wikipedia.org/wiki/Don%27t_repeat_yourself
  2. Separation of Concerns
    http://en.wikipedia.org/wiki/Separation_of_concerns
  3. Encapsulation
    http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)
  4. Dependency Abstraction through Interfaces
    Dependencies between classes should be through interfaces not classes.
  5. SOLID
    http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
    1. Single Responsibility
      http://en.wikipedia.org/wiki/Single_responsibility_principle
    2. Open/Closed
      http://en.wikipedia.org/wiki/Open/closed_principle
    3. Liskov Substitution
      http://en.wikipedia.org/wiki/Liskov_substitution_principle
    4. Interface Segregation
      http://en.wikipedia.org/wiki/Interface_segregation_principle
    5. Dependency Inversion - a superset of (Service Locator, Factory, Dependency Injection)
      http://en.wikipedia.org/wiki/Dependency_inversion_principle