Le modèle MVC est-il beaucoup utilisé dans l'industrie? Quel est tout le battage médiatique? [fermé]


16

Je suis étudiant mais j'espère que je vais bientôt entrer dans l'industrie du logiciel. Il semble y avoir beaucoup de battage médiatique sur le modèle de logiciel MVC. J'ai remarqué que les frameworks PHP sont souvent MVC, qu'en est-il des langages non-web .. est-ce la même chose avec eux? Pour ma thèse de master (C ++), j'ai choisi le modèle MVC car il sépare bien la logique et l'interface utilisateur.

Dans l'industrie, est-il beaucoup utilisé? Si oui, quelles sont les principales raisons et quelles sont les autres conceptions concurrentes et populaires?


13
MVC est simplement une implémentation populaire de séparation des préoccupations. SoC est ce qui est important, pas MVC lui-même.
Raynos

1
Vous voudrez peut-être consulter le «Catalogue de l'architecture des applications d'entreprise» de Martin Fowler pour trouver
Mchl

3
Notez également que beaucoup de choses qui sont étiquetées `` MVC '' ne sont en fait pas vraiment MVC, mais suivent plutôt le (plus récent) modèle d'application à plusieurs niveaux: stockage de données - logique - présentation (qui, à mon humble avis, a plus de sens de toute façon).
tdammers

MVC est antérieur à la programmation Web, si cela vous dit quelque chose.
Jeremy

Réponses:


6

MVC obtient beaucoup de battage médiatique et d'utilisation car c'est un modèle très utile pour son domaine.

MVC encourage la séparation des préoccupations. Cela peut simplifier le développement s'il est bien fait. Toute application qui affiche et / ou modifie des données contenues dans une banque de données aura la fonctionnalité MVC, mais elle ne peut pas être séparée. Ne pas diviser les composants est susceptible d'introduire un couplage indésirable entre les problèmes.

Avec MVC, il devrait être relativement facile de changer l'interface frontale (View) d'une application sans modifier ni le contrôleur ni le modèle. Cela peut être souhaitable si vous devez autoriser l'accès à partir d'un smartphone, du Web et d'une ou plusieurs applications.

Pour les grandes équipes, MVC peut permettre une meilleure utilisation des ressources car les développeurs peuvent être chargés de travailler dans l'une des couches et peuvent ne pas avoir besoin de beaucoup de compétences dans les autres couches. Selon les frais généraux de coordination des ressources, cela peut être plus efficace.


12

Oui, il est beaucoup utilisé. Les applications iPhone / iPad sont toutes configurées en tant que MVC. J'ai vu beaucoup d'applications asp.net MVC récemment.

MVC permet plus de flexibilité sur la route et encourage vraiment les développeurs à écrire du code séparé pour chaque fonction. Rend plus facile à entretenir.


Le framework Cocoa d'Apple (utilisé sur MacOS X) est l'évolution de NextStep, qui remonte à la fin des années 1980. NextStep, Cocoa et Cocoa Touch (utilisés dans iOS) partagent tous une utilisation intensive de MVC.
Caleb

4

C'est en vogue en ce moment.

Ne sous-estimez jamais le pouvoir du battage médiatique. Bientôt, quelqu'un trouvera quelque chose d'autre plus récent, plus brillant et plus facile à comprendre, et tout le monde décriera MVC comme la racine de tout mal (arrivé aux formulaires Web), ou il y aura tellement de gens qui l'utiliseront que les vétérans les plus grizzlés le décrions comme une chose "gestion bull * * " (arrivé à XML). Ou il y aura un changement vers un autre modèle parce que MVC "n'est pas assez flexible pour le problème super dur que je dois résoudre" (langages de type statique vs langages dynamiques).

En fin de compte, MVC est une approche de cadre qui convient à un certain nombre de problèmes que la programmation Web soulève. Il existera pendant un certain temps, mais j'imagine que la plupart des gens l'utilisent pour être conforme aux mots à la mode.

ÉDITER

Veuillez noter: Je suis bien conscient que le modèle MVC existe depuis des années et a été utilisé sur les frameworks avant asp.net MVC. Je dis simplement que c'est assez populaire en ce moment, donc cela reçoit plus de presse que d'autres approches. J'utilise MVC pour tous mes projets personnels et je l'utilise également sur des projets commerciaux (je suis développeur .net).

Ce n'était pas une diatribe.


7
-1 pour: 'At the Moment', sauf si vous considérez par exemple le début de Smalltalk ou Java / Swing comme une technologie du Moment, MVC est un peu trop vieux pour ça.
keppla

4
Sauf que "dans l'instant" est assez précis; MVC était à peine utilisé jusqu'à récemment que je sache, sauf dans le monde Java. Partout ailleurs, il n'a été utilisé que lorsque Rails est devenu populaire.
Wayne Molina

4
La plupart des cadres graphiques (non html) que j'ai rencontrés utilisaient MVC, il ne semblait pas `` à peine utilisé '' pour les 10 dernières années.
keppla

1
En fait, MVC a déjà été excité par MVP dans certaines parties de l'univers.
Tom Anderson

3
Personnellement, je détestais les formulaires Web bien avant qu'ASP.NET MVC ne soit même un concept. Parfois, les choses sont populaires parce qu'elles sont en fait la meilleure option dans la plupart des cas - et oui, elles peuvent être remplacées par quelque chose de plus récent et de plus puissant, mais alors quoi? C'est du progrès, pas du battage médiatique.
Aaronaught

3

D'après mon expérience, il n'est pas utilisé autant qu'il le devrait. C'est un modèle bien meilleur que certaines des alternatives, mais il ne fait que beaucoup de battage médiatique au cours des dernières années; à cause de cela, il y a beaucoup d'héritage que les gens ont peur de convertir en MVC ou ont peur d'utiliser MVC pour de futurs travaux parce que c'est en dehors de leur zone de confort.


1

Je pense que vous constaterez que la famille Stack Exchange fonctionne sur MVC


Génial, je ne savais pas que +1
ale

1

ASP.NET MVC a acquis une grande importance pour les applications Web, car .NET est beaucoup utilisé dans l'industrie.

Les applications Web de Microsoft sont passées de l'ASP classique à ASP.NET, qui est basé sur les formulaires Web (pour permettre aux développeurs VB6 Win Forms de compétences devaient déjà être facilement traduits à la nouvelle frontière du Web).

Malheureusement, les formulaires Web sont basés sur l'état et HTTP (sur lequel le Web est basé) est sans état, donc de nombreuses solutions de contournement désagréables en raison de choses comme les états d'affichage étaient nécessaires.

ASP.NET MVC permet de traduire les compétences des développeurs WebForms en un framework Web qui a un bon SoC et qui a fait beaucoup d'efforts pour être testable (puisque WebForms n'est pas très testable, l'équipe MVC a mis beaucoup de effort dans le cadre).

Cela dit, ce n'est pas une panacée / solution miracle, et comme tout cadre, il y a des moments pour l'utiliser et des fois pour ne pas l'utiliser. J'espère que les gens ne l'utiliseront pas pour tout résoudre, après tout: quand votre seul outil est un marteau, chaque problème ressemble à un clou.


1

Ce n'est qu'un moment de l'histoire car MVC est un couple de concepts très très simples qui ont reçu un battage médiatique de la part de quelques cadres spécifiques qui le mettent en évidence dans leur matériel marketing. Il arrive aussi de jive avec la plupart des bonnes pratiques qui ont émergé dans le développement de logiciels. Cela s'applique double pour le développement pseudo-état tel que HTTP; à tel point que je ne connais qu'un autre "modèle" vraiment différent qui est utilisé dans le monde du Web - le modèle basé sur les événements ASP.Net WebForms, très décrié.

Je suis honnêtement un peu surpris qu'il y en ait assez pour toute une thèse.

Mais pour répondre à votre question. WebForms est une tranche étroite de la tarte Web qui fait principalement sa place dans les applications commerciales intranet. Les pages codées en spaghetti sans motif réel constituent probablement une quantité décente du diagramme de Venn, mais à peu près tout ce qui est un cadre est au moins fortement influencé par MVC, donc votre réponse courte serait un OUI retentissant .


@geroge: Merci pour la réponse. Ha .. ne vous inquiétez pas, le logiciel inclus avec ma thèse utilise MVC .. ce n'est pas réellement sur MVC!
ale
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.