C'est le résultat de ce que j'ai appris en recherchant MVC. Si vous avez des suggestions, je vous serais reconnaissant de bien vouloir commenter.
・ Les personnes qui connaissent le mot MVC et qui veulent savoir ce que c'est ・ Les gens qui veulent savoir comment les débutants perçoivent MVC
En un mot, c'est ** l'un des modèles d'organisation des programmes **. Sur la base de l'idée qu '«un système qui peut être contrôlé visuellement par l'utilisateur peut être divisé en parties appelées ** Modèle **, ** Vue ** et ** Contrôleur **», celles-ci sont abrégées en MVC.
Par exemple, considérez la page d'achat de produits Amazon que tout le monde a utilisée. Il s'agit du flux de traitement lorsque vous appuyez sur le bouton d'achat sur la page du produit Amazon. (Je ne connais pas l'implémentation interne, donc je vais l'écrire en supposant qu'elle est implémentée basée sur MVC)
L'image entière ressemble à ceci.
Le déroulement est le suivant (veuillez signaler tout point inapproprié).
Montrez la page du produit à l'utilisateur via le moniteur.
L'utilisateur qui voit la page du produit confirme la position du bouton d'achat.
L'utilisateur déplace le curseur de la souris sur le bouton d'achat et clique.
Envoie une notification au contrôleur indiquant que le bouton d'achat a été enfoncé. Cela déclenche le démarrage du traitement par le système.
À la réception de la notification, le contrôleur demande au modèle de «prendre les mesures appropriées car le bouton d'achat a été enfoncé».
Le modèle qui a reçu la demande traite le DB en fonction du contenu de la demande. Dans ce cas, il est lié à l'action «utilisateur achetant le produit», donc ・ Réduisez de 1 l'inventaire des produits cibles. ・ Obtenez des informations sur le produit cible Etc.
Demandez à View "d'afficher la page d'achat".
View va à Model pour obtenir les informations nécessaires pour dessiner la page de fin d'achat. Le traitement de la base de données étant terminé au stade de ⑤, le modèle dispose des informations nécessaires pour dessiner la page suivante.
Sur la base des données acquises, View dessine la page de fin d'achat.
Le flux est comme ... Maintenant que nous avons une idée approximative de ce que fait chaque contrôleur de vue modèle, trions-le en mots.
C'est difficile à comprendre à partir de Model, alors commençons par View. View est le plus intuitif et le plus facile à comprendre.
En un mot, View ** dessine la partie visible par l'utilisateur. Dans ce cas, ** le traitement pour afficher la page de fin d'achat ** est effectué.
Le travail de View est de ** connecter le système à l'utilisateur **. Grâce à View, des informations telles que «combien vous déplacez la souris et cliquez pour acheter le produit» et «l'achat du produit XX est terminé» sont transmises à l'utilisateur.
Vient ensuite le contrôleur. ** Le contrôleur ** reçoit les entrées de l'utilisateur et émet des commandes vers Model et View. C'est comme un commandant.
Dans ce cas, ** il reçoit l'action de l'utilisateur "en appuyant sur le bouton d'achat" et le convertit en une instruction qui peut être traitée par Model and View **.
Pour le modèle, "Veuillez réduire le stock du produit cible" "Obtenir les informations sur le produit cible"
Chaque vue a une instruction pour "dessiner l'écran après l'avoir ajouté au panier".
Quand je l'ai recherché,
Le modèle traite de l'ensemble de la logique métier.
On explique cela très souvent.
Cependant, lorsque nous étudions le mot «logique métier», nous constatons finalement que ** «il n'y a pas de définition claire» **.
En d'autres termes, la signification dépend du contexte.
Personnellement, l'explication du modèle qui convient le mieux est ** "Le modèle fait tout le travail sauf View et Controller" ** C'est.
Le processus d'acquisition des données de la base de données et le processus de traitement des données à afficher dans View sont tous effectués par modèle.
ici ・ Accédez à la base de données et réduisez l'inventaire des produits d'un ・ Obtenez des informations sur les produits dans votre panier Nous faisons le traitement.
Jusqu'à présent, nous avons expliqué chaque partie de MVC. Alors pourquoi avons-nous besoin de faire cela? Il y a deux principales raisons.
Supposons que l'équipe de développement ait "un ingénieur qui sait créer des traitements autour de la base de données" et "un ingénieur qui réfléchit bien à l'interface utilisateur".
A ce moment, si la source du système est séparée par MVC, le premier doit développer "Model" et le second doit développer "View".
Il y a un avantage que chaque responsable est clarifié et l'efficacité du travail est améliorée.
De cette façon, il est très important que chaque partie du système soit clairement organisée lors du développement en équipe.
Il n'y a rien de tel que "alors, est-il logique de séparer MVC dans le développement personnel?"
Lorsque vous organisez votre système avec MVC, chaque fonction devient indépendante.
En d'autres termes, ** Lorsqu'une partie change de fonction, l'influence sur les autres parties est réduite. ** **
Par exemple, changer la position du bouton du panier d'achat ne signifie pas changer le traitement du DB associé au bouton du panier.
Si vous avez écrit le traitement de la base de données dans View, vous devrez peut-être le modifier (le système que j'ai créé dans le passé est comme ça).
C'est une erreur que j'ai commise lorsque j'ai développé le système à partir de rien. J'ai écrit dans View le processus de connexion à la base de données et le processus de traitement des données.
Puisqu'il s'agit d'un système à petite échelle, je l'ai fait avec l'idée que "c'est OK si ça marche", mais avec cette idée, un programme avec une maintenabilité extrêmement faible peut être créé.
Modèle Un modèle pour organiser des programmes avec View Controller. L'objectif principal est de faciliter la division du travail et d'améliorer la maintenabilité.
Compte tenu du flux dans lequel l'utilisateur regarde la vue, fait fonctionner le contrôleur et le modèle le traite en arrière-plan, j'ai pensé qu'il serait plus facile de comprendre intuitivement en disant «VCM». Y a-t-il une raison à la commande de MVC?
https://hijiriworld.com/web/mvc-concept/ MVC compris par dessin animé https://www.slideshare.net/MugeSo/mvc-14469802 Après tout, votre MVC est faux https://qiita.com/s_emoto/items/975cc38a3e0de462966a À propos du modèle MVC https://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF Wikipédia "Logique métier" http://at-grandpa.hatenablog.jp/entry/2013/11/01/072636 Repensez au "malentendu MVC"
Recommended Posts