This article uses Laravel for the code snippets, but the paradigm can be easily adapted to every other MVC framework out there.
To make things more interesting, we will lay this article out by posting an imaginary conversation between 2 professionals:
Stan, a seasoned developer, who has made many architectural mistakes (but thankfully seems to be learning from them), and
Ollie, a novice developer, who just started delving into the world of serious programming and has some simple applications. ...