Comprendre le modèle MVC<span class="wtr-time-wrap after-title"><span class="wtr-time-number">8</span> min read</span>
Schéma modèle vue controleur MVC

Comprendre le modèle MVC8 min read

Dans cet article on va étudier en détails le modèle MVC , son fonctionnement , ses avantages et ses défauts. A la fin de cet article vous serez incollable sur cette méthode et pourrez la mettre en pratique pour construire de superbes applications

Ça veux dire quoi MVC ?

Avant même de comprendre comment fonctionne le MVC, on dois comprendre ce que c’est… C’est ce que l’on va faire dans cette partie.

MVC pour modèle vue contrôleur est un design pattern, c’est à dire une façon de structurer votre code. Pourquoi utilise-on des design patterns ? Et bien pour avoir une application bien codée, facilement maintenable et très performante, après tout pourquoi réinventer la roue ?

Vous allez sûrement me dire, “Je sais coder je n’ai pas besoin que quelqu’un m’apprenne comment organiser mon code”. 

D’accord , laissez moi vous convaincre

Les raisons d’utiliser un design pattern

Si vous construisez une application , avec le temps il y a de grandes chances qu’elle scale, c’est à dire grandisse de plus en plus. C’est quelque chose de génial, votre application as de plus en plus de fonctionnalités et plaît a de plus en plus de gens.

Maintenant imaginez ne pas avoir d’organisations dans votre code, une fonction de routing par la, une fonction qui change la base de donnée par ici. Comment voulez vous être efficace ? Sérieusement lorsque j’ai commencé à coder j’ai essayé de créer des programmes en python sans suivre aucun design pattern, et bien aujourd’hui cette application n’existe pas.

Au bout de quelques jours, j’ai trouvé impossible de continuer à coder, à l’époque je ne connaissait pas les design patterns et j’ai cru que les programmeurs était des fou. Puis à force de chercher “comment organiser son application”, j’ai trouvé.

La solution c’était d’organiser mon code de manière a pouvoir faire correspondre chaque fonctionnalité, réutiliser un maximum mon code. Et surtout pouvoir greffer de nouvelles fonctionnalités sans tout recoder

MVC est un design pattern

MVC c’est juste une manière d’organiser son code, en fait c’est une des manière les plus efficace. A l’heure actuelle on utilise MVC ou Flux pour les applications web et majoritairement MVC pour les applications desktop.

C’est un modèle qui as fait ses preuves et qui est omniprésent en JAVA et en développement mobile tel que Swift ou Kotlin.

Sachez une chose, si vous voulez intégrer une boîte qui ont besoin de programmeurs, il y a de forte chances que leurs applications respectent le MVC, c’est vraiment le standard des applications d’entreprises.

Comment fonctionne le MVC

Rentrons dans le vif du sujet parce que ça doit déjà vous saouler… Comment est-ce que l’on code une application MVC.

Schématiquement, le MVC ressemble à ça

Schéma modèle vue controleur MVC
Schéma modèle vue controleur MVC

J’ai piqué le schéma a openclassroom sur cette page parce que je trouve qu’il es bien fait.

Bon, en gros on as un schéma qui nous explique qu’on dois séparer la logique de notre application en 3 parties. Le modèle, la vue et le contrôleur. Détaillons maintenant chaque partie, puis voyons les interactions entre les parties.

Le modèle

Commençons par la partie la plus simple de l’application, le modèle. C’est le cœur de notre programme, c’est ici que l’on stock les objets manipulant les bases de données. Que ce soit des ORM ou des fonction SQL / NOSQL , toute la logique DB et gestion de données est gérée dans le modèle.

La vue

Passons maintenant à la partie graphique de notre application. A moins de vouloir coder une simple console application, vous allez avoir besoin des vues.

La vue représente en fait les données contenues dans le modèle. En plus de ces données elle ajoute une couche graphique afin de pouvoir gérer les interactions de l’utilisateur.

Dans le cas ou l’on place un bouton par exemple, la vue va envoyer l’information au controlleur

Le controlleur

C’est la partie qui gère l’interaction entre la vue et le modèle. Lorsque une interaction utilisateur est faite, le contrôleur va dire au modèle de changes ses données. Et lorsque les données changent, il va recevoir un événement du modèle et envoyer un événement à la vue.

Le contrôleur c’est ce qui va coller la vue et le modèle grâce à un système événementiel. Lorsqu’il se passe ceci sur la vue, fait cela, et vise-versa.

Pourquoi utiliser le MVC

Maintenant que vous savez comment fonctionne ce design pattern, on va voir ses avantages ainsi que pourquoi vous devriez l’implémenter dans vos applications.

Comme vous l’avez vu, le MVC permets de structurer logiquement votre code, une des premières raisons qui me vient en tête c’est la réutilisation de votre code.

Imaginez que vous avez deux vues différentes qui ont le même besoin. Et bien en MVC il suffit de greffer les actions sur le même événement et le tour es joué.

A l’inverse, si vous modifiez une donnée qui est affichée sur deux vues, encore une fois c’est facile, le contrôleur va simplement envoyer l’événement aux vues et elles vont se modifier

Dans le monde profesionnel

J’ai parlé des avantages lorsque vous développiez un projet en solo, voyons maintenant les avantages lorsque l’on travaille en entreprise ou que l’on as plusieurs développeurs sur un projet.

Bien souvent , plus une application est grosse, plus on as besoin de développeurs pour la maintenir. Et c’est souvent pas mal le bordel. Le MVC as l’avantage de créer une structure des fichiers et permet d’éviter de réécrire du code et donc de tout péter.

L’idée c’est que l’on peux greffer une nouvelle partie sans avoir à péter et reconstruire l’ancienne, le rêve non ?

Le modèle MVC est utilisé dans beaucoup d’applications web ou logiciel d’entreprises. Pourquoi ? Et bien car il permets un développement rapide, efficace et organisé du projet. C’est pour ça qu’il est devenu un standard dans le domaine de la programmation.

Les défauts du MVC

Rien n’es jamais parfait, le MVC aussi génial qu’il soit as aussi des défauts.Déjà c’est quelque chose de plutôt abstrait, c’est un concept applicable à n’importe quelle application mais il n’y a pas de code par défaut ou de setup. A vous de trouver la solution, pas cool hein ?

Ensuite, le MVC est plutôt adapté aux applications “classiques”, mais une nouvelle vague d’app, notamment web mettent en péril ce système. On as déjà parlé des single page app dans l’article sur react et l’introduction a react

Les systèmes SPA sont de plus en plus utilisés et ils ne peuvent pas dépendre du modèle SPA. Pourquoi ? Et bien car la gestion des données n’es pas relié directement a l’application, on passe par une API.

On as pas de contrôleur permettant de relier notre logique backend de notre frontend. Donc on utilise d’autres design pattern comme flux.

En gros, le modèle MVC c’est génial mais difficile à prendre en main et pas adapté à toutes les applications.

Aller plus loin

Si vous voulez apprendre comment structurer une application MVC ou apprendre un autre design pattern comme flux.

Si cet article vous as plu, vous pouvez vous abonner à ma newsletter pour recevoir le guide GRATUIT Ultime pour bien débuter la programmation

Vous abonner à notre newsletter

* champ requis

Merci d’avoir lu cet article, au plaisir de vous voir sur mon blog !

Laisser un commentaire

Fermer le menu
×
×

Panier