Design Patterns
Design patterns are the key to creating software that can easily evolve and be maintained for a long time with reasonable effort. Patterns not only allow us to have elegant designs, but also unify the way different development teams work.