Friday, May 27, 2016

Software Programming Principles

http://webpro.github.io/programming-principles/

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