• Favor composition over inheritance.
  • Block of codes must not be more than 60 lines.
  • Cyclomatic complexity of 1 to 10 as long as you can still write unit tests.
  • Idempotent implementation.