À retenir
- Modèle : Gère les données et les règles de calcul.
- Vue : S'occupe uniquement de l'affichage pour l'utilisateur.
- Contrôleur : Reçoit les clics ou les saisies et décide de l'action à mener.
Le modèle-vue-contrôleur (souvent abrégé MVC) est une méthode d'organisation du code qui divise une application en trois parties indépendantes. On peut le comparer à un restaurant : le Modèle est le cuisinier qui prépare les données, la Vue est la présentation du plat sur la table, et le Contrôleur est le serveur qui prend la commande et fait le lien entre la salle et la cuisine.
Étymologie
Il s'agit d'un calque de l'anglais Model-View-Controller. Ce concept a été inventé par Trygve Reenskaug à la fin des années 1970 au sein du célèbre centre de recherche Xerox PARC, afin de structurer les premières interfaces graphiques complexes.
Exemples d'usage
- Ruby on Rails : Un framework web qui a popularisé cette structure pour créer des sites rapidement.
- Django (Python) : Utilise une variante appelée MVT, mais repose sur la même logique de séparation.
- Laravel (PHP) : Structure les applications web modernes en séparant clairement la base de données de l'affichage HTML.
Cas d'usage
Le MVC est utilisé principalement dans le développement d'applications web et mobiles. Il est idéal pour le travail en équipe : un designer peut modifier l'apparence (la Vue) sans toucher au code qui gère les données (le Modèle).
Bonnes pratiques
La règle d'or est de garder les contrôleurs « fins » (skinny controllers) et les modèles « gras » (fat models). Cela signifie que la logique complexe doit rester dans le Modèle, tandis que le Contrôleur ne sert qu'à passer les ordres. Il faut absolument éviter de mettre des calculs mathématiques ou des accès à la base de données directement dans la Vue.
Synonymes
Antonymes
Conseil
Si vous débutez, ne voyez pas le MVC comme une contrainte, mais comme un système de rangement. En séparant l'affichage de la logique, vous pourrez changer tout le design de votre site sans jamais risquer de casser votre base de données.
Questions fréquentes
Le MVC est-il dépassé ?
Pas du tout. Bien que de nouvelles architectures comme MVVM existent, le MVC reste la base fondamentale de la plupart des frameworks web actuels.
Est-ce obligatoire ?
Non, mais coder sans structure (code spaghetti) rend la correction d'erreurs extrêmement difficile à mesure que le projet grandit.