Model-View-Controller (MVC) is een manier om een applicatie in te delen door hem op te splitsen in drie samenwerkende delen. De Model is de data en de regels die erover gaan. De View is de interface die de gebruiker ziet. De Controller is de tussenpersoon die invoer van de gebruiker oppakt, met de Model praat en de juiste View kiest om te tonen. Deze drie uit elkaar houden maakt een applicatie makkelijker om in de loop van de tijd te laten groeien en aan te passen.
Een restaurant maakt de splitsing helder. De keuken en voorraadkast zijn de Model: die bevatten de ingrediënten en kennen de recepten. Het opgemaakte bord op je tafel is de View: de presentatie die je echt beleeft. De ober is de Controller: die neemt je bestelling op, geeft hem door aan de keuken en brengt het resultaat terug. Niemand wil dat de ober kookt of dat de chef aan tafel bestellingen opneemt, en MVC dwingt diezelfde scheiding af in software. Het is een van de meest gebruikte ontwerppatronen in webontwikkeling.
De winst zit in onderhoudbaarheid. Omdat de View los staat, kan een designer de look vernieuwen zonder de bedrijfslogica te raken, en kan een developer de opslag veranderen zonder de schermen te breken. Frameworks als Laravel en Django bouwen deze structuur standaard in.
De bekende valkuil is de ‘dikke controller’. Wanneer bedrijfsregels in de Controller sluipen in plaats van in de Model, raakt het deel dat alleen verzoeken hoort door te sturen langzaam volgepropt met logica, en brokkelt de nette scheiding stilletjes af. Een handige vuistregel: kun je beschrijven wat een stuk code doet zonder een scherm of een klik te noemen, dan hoort het waarschijnlijk in de Model.
Bij TopDevs leunen we op heldere patronen als MVC, zodat over een jaar elke developer het project kan openen en meteen ziet waar elk stuk logica woont.