Rule 10:Optimize judiciously
Don’t sacrifice sound architectural principles for performance. Strive to write good programs rather than fast ones.
Good programs embody the principle of information hiding: where possible, they localize design decisions within individual components, so individual decisions can be changed without affecting the remainder of the system.
Changing a fundamental facet of your design after the fact can result in an ill-structured system that is difficult to maintain and evolve.
Strive to avoid design decisions that limit performance.