Fundamental Coding Principles
by Brian Russin

  1. Make Decisions at the Highest Possible Level

  2. Member variable access should be public for Data-centric objects and private for Function-centric objects.

  3. The Only Reliable Analysis of Behavior is Derived Through Observation