DEV Community

Claire D.
Claire D.

Posted on • Edited on

Le modèle MVC expliqué

Les concepts clés et les avantages

Avez-vous déjà essayé de créer un site Web avec plusieurs personnes ?
Cela peut vite devenir la pagaille si vous ne décidez pas comment organiser vos fichiers.
De plus, vous pourriez passer des heures à chercher comment résoudre un seul bug si vous ne savez pas où se trouve le code.
Quelqu'un pourrait accidentellement supprimer un code important et casser votre site Web !

employé épuisé et dépassé qui travaille sur un ordinateur

La solution en trois lettres : MVC

MVC est un paradigme architectural de programmation conçu en 1979 par Trygve Reenskaug.

Qu'est-ce qu'un paradigme ?

une personne qui s'interroge sur les paradigmes

C'est comme un modèle utilisé pour structurer le code. Le but de MVC est de rendre votre code plus modulaire et plus facile à maintenir.

MVC est l'abréviation de Model View Controller

Notre code sera séparé en 3 parties : le modèle, la vue et le contrôleur.

Pour mieux comprendre cela, comparons le modèle MVC à une bibliothèque.

Si MVC était une bibliothèque

Disons que vous cherchez un nouveau livre à lire.

Tout d'abord, vous allez à votre bibliothèque locale pour voir ce qui s'y trouve.

l'utilisatrice de la bibliothèque

Vous êtes l'UTILISATEUR de la bibliothèque

Dans la bibliothèque, les livres sont présentés de manière attrayante. Vous pouvez regarder la couverture, le titre et trouver quelque chose qui vous plaira.

Vous ne pouvez voir que les livres à l'intérieur de la bibliothèque. Aucune information stockée dans le dos, ou des détails sur qui a acheté quel livre.

Gens lisant dans une bibliothèque

L'interface utilisée par l'utilisateur s'appelle la VUE .

l'utilisateur interagit avec la vue

utilisateur ➡️ vue
c'est vous ➡️ les choses que vous voyez à l'écran
➡️ la seule chose à laquelle l'utilisateur a accès

Vous trouvez un livre sympa à lire,
et vous demandez à votre bibliothécaire de l'emprunter.

Bibliothécaire

  • Le bibliothécaire gère la collection de livres
  • Il aide également les usagers à trouver les livres dont ils ont besoin

Le bibliothécaire serait le CONTRÔLEUR dans le modèle MVC.

Les informations de l'utilisateur sont communiquées au contrôleur.

utilisateur communique via la vue, la vue envoie les informations au contrôleur

Le bibliothécaire va consulter le catalogue des livres pour traiter la demande de l'utilisateur.

Le modèle est un système de stockage

Le système de stockage définit la logique de classement des livres (par auteur, genre, sujet...)

Le système de stockage serait le MODÈLE dans le modèle MVC.

Le contrôleur envoie une requête au modèle.

le contrôleur envoie une requête au modèle

contrôleur modèle
traite les informations de l'utilisateur et communique avec le modèle ajoute et récupère des informations de la base de données
contient tout le stockage

Ensuite, le contrôleur met à jour la vue.

Le contrôleur met à jour la vue

contrôleur ➡️ vue ➡️ utilisateur
indique à la vue ce qu'il faut afficher affiche les données demandées

Qu'est-ce que le modèle MVC sur mon ordinateur ?

MODÈLE = base de données

Le composant Modèle gère les données de l'application.

Il communique avec le composant Contrôleur pour fournir et mettre à jour les données selon les besoins, et représente les données et les opérations qui peuvent être effectuées sur ces données.

serveur

Le modèle est une base de données. Elle peut être écrite avec MySQL, PostSQL ou MongoDB.


C'est quoi Mongoose ?

Mongoose est une bibliothèque ODM (Object Data Modeling) populaire pour les applications Node.js qui permet aux développeurs de créer des modèles pour leurs données et d'interagir avec les bases de données MongoDB.

logo de Mongoose

Mongoose fournit une solution simple basée sur un schéma pour modéliser vos données d'application. Il comprend la conversion de type intégrée, la validation, la création de requêtes, les crochets de logique métier et plus encore, prêts à l'emploi.

https://mongoosejs.com/

Et un schéma, c'est quoi ?

une personne qui s'interroge sur le sens de "schéma"

Un schéma contient une collection d'objets de base de données.
C'est comme un plan pour **organiser et gérer les données **de votre base de données.

VUE = NAVIGATEUR

Le composant View de l'architecture MVC est chargé de présenter les données à l'utilisateur d'une manière facile à comprendre et à interagir.

Il définit l'interface utilisateur (UI) et gère les événements d'entrée utilisateur.

Les vues peuvent être créées à l'aide de HTML, CSS et JavaScript pour créer la structure, le style et l'interactivité de l'interface utilisateur.

ordinateur

CONTRÔLEUR = SERVEUR

Le composant Controller de l'architecture MVC gère le flux de données et les interactions entre les composants Model et View. Il reçoit les entrées de l'utilisateur via la vue, les traite et met à jour le modèle en conséquence.

serveur

On utilise des langages backend pour écrire le serveur, comme PHP, Python ou Ruby.

En bref, ça se passe comme ça

schéma récapitulatif du MVC

Le modèle Model-View-Controller (MVC) aide à organiser le code en séparant les préoccupations en trois composants distincts.

Le composant Model gère les données et la logique métier
Le composant View** gère la présentation** de l'interface utilisateur
Le composant Controller** gère le flux de données **et les interactions entre le modèle et la vue.

Le modèle MVC est important dans le développement de logiciels car il promeut un code modulaire plus facile à maintenir et à tester. De plus, il rend la collaboration entre les membres de l'équipe plus efficace en fournissant des directives claires sur la façon dont le code doit être organisé.

Top comments (3)

Collapse
 
thomasbnt profile image
Thomas Bnt

Bonjour, c'est clair comme article, mais dommage que ça soit qu'avec des images. Ce n'est pas accessible pour tout le monde 😶

Collapse
 
kureru profile image
Claire D.

Bonjour Thomas, merci beaucoup d'avoir lu mon article. C'est juste, j'aurais du rédiger cet article de manière plus accessible. Je m'en occupe ce week-end 😃

Collapse
 
thomasbnt profile image
Thomas Bnt

Superbe ! 🌟