The 3 tenets of software design and architecture:

  1. focus on simplicity and conceptual integrity

  2. clarity is better than cleverness

  3. prototype before polishing

1. focus on simplicity and conceptual integrity

  • distrust all claims for "one true way"

  • provide low coupling and high cohesion with small, simple and strong concepts

  • fold knowledge into data so program logic can be simple

  • redundancy is bad

  • predictability is good

2. clarity is better than cleverness

  • explicit is better than implicit

  • when you must fail, fail noisily and as soon as possible

3. prototype before polishing

  • make it work before optimize

  • productivity before performance

  • programmer time is more expensive than machine time

© 2007-2008 Alexandre Girão