Defining the Rules – Game Mechanics
Typical business application development focuses on dividing the responsibilities of the application into logical segments that layer on top of one another, with the user on one side and the application’s foundational infrastructure on the other. Data and commands pass sequentially from one layer to another as user-initiated events propagate in concert with system and application events. Ideally, the code has the qualities of both being loosely coupled and tightly cohesive.
This may sound like a paradox or contradiction – how can something be both loose and tight at the same time? The answer is that it can be both because the two qualities tend to be inversely correlated with each other. Loose coupling between components means that making changes to one has little to no effect on the other. A tightly cohesive system is one where functionality is confined to a small number of code or application components; everything needed...