A Theory of Software Architecture
Move most of your code to pure functions, that is the number one mantra to solve most scaling problems in software development. Even in an OOP paradigm, it makes sense to make almost all objects as purely functional, with limited use of internal state.<p>The second mantra is to think a thousand times before you name something.
I actually keep a list of names (..Manager, ..aggregator,etc.) gleaned from various sources, to name my classes. Earlier, I used to name most of my classes as <Function/Operation>Manager<p>Edit : Here is a question, that actually prompted me to keep a list.<p><a href="https://stackoverflow.com/questions/1866794/naming-classes-how-to-avoid-calling-everything-a-whatevermanager" rel="nofollow">https://stackoverflow.com/questions/1866794/naming-classes-h...</a>