Model-View-Controller and the Separation of Labor
Few architectural choices are more critical for your project’s success than MVC (model view controller). The idea being that by separating code into three separate entities, the application can grow more naturally and be easier to update.
To give some context around the premise for MVC, here are the words of Trygve Reenskaug, one of the first MVC practicioners:
I have sometimes been given more credit than is my due, so I should stress that…