La structure MVC est une architecture qui a pour principe de permettre la séparation des données des méthodes qui les utilisent. Dans la théorie cette méthode peut permettre à un développeur front-end et back-end de collaborer en même temps sur une même application.

Cette structure de programmation n'est pas propre aux applications web et vient en fait du développement logiciel mais elle a été adapté au web pour permettre d'avoir un code mieux organiser et surtout, réorganisable. Comme les mots le laisse supposer, le principe est de séparer notre code en 3 parties

Les modèles

Les modèles sont chargé de gérer les données et leur persistance . Il se comporte comme un portail permettant au reste de l'application d'accéder au données et de les conserver au besoin. Souvent on associera les modèles à une base de données mais il est tout à fait possible d'avoir des modèles intéragissant avec une API externes (comme twitter par exemple)

Les vues

Les vues permettent de gérer l'affichage final de nos page. Elles génèreront le code HTML qui sera affiché aux utilisateurs à partir des variables récupérées depuis le controller.

Le controller

Le controller est le dernier élément de la structure MVC et c'est aussi l'élément liant. Il va s'occupper de recevoir les données entrées par l'utilisateur et de communiquer les changements aux modèles. Il pourra aussi communiquer avec les modèles pour obtenir des informations qu'il pourra ensuite transférer à la vue.