Wird das MVC-Muster in der Industrie häufig verwendet? Was ist der ganze Hype? [geschlossen]

16

Ich bin Student, aber ich hoffe, bald in die Software-Branche einzusteigen. Es scheint viel Hype um das MVC-Softwaremuster zu geben. Mir ist aufgefallen, dass PHP-Frameworks oft MVC sind. Was ist mit Nicht-Web-Sprachen? Ist es dasselbe mit ihnen? Für meine Masterarbeit (C ++) habe ich das MVC-Muster gewählt, weil es die Logik und die Benutzeroberfläche gut voneinander trennt.

Wird es in der Industrie häufig verwendet? Wenn ja, was sind die Hauptgründe und was sind andere konkurrierende, beliebte Designs?

Ale
quelle
13
MVC ist einfach eine beliebte Implementierung der Trennung von Bedenken. SoC ist wichtig, nicht MVC selbst.
Raynos
1
Vielleicht möchten Sie in Martin Fowlers 'Katalog der Enterprise Application Architecture' nach Alternativen / Variationen zu MVC suchen
Mchl
3
Beachten Sie auch, dass viele Dinge, die mit "MVC" gekennzeichnet sind, tatsächlich nicht wirklich MVC sind, sondern dem (neueren) mehrschichtigen Anwendungsmodell folgen: Datenspeicherung - Logik - Präsentation (was meiner Meinung nach sowieso sinnvoller ist).
Tdammers
MVC ist älter als die Webprogrammierung, wenn das etwas aussagt.
Jeremy

Antworten:

6

MVC stößt auf Hype und wird häufig verwendet, da es ein sehr nützliches Muster für seine Domain ist.

MVC fördert die Trennung von Bedenken. Dies kann die Entwicklung vereinfachen, wenn es richtig gemacht wird. Jede Anwendung, die in einem Datenspeicher enthaltene Daten anzeigt und / oder ändert, verfügt über die MVC-Funktionalität, kann jedoch nicht getrennt werden. Wenn die Komponenten nicht aufgeteilt werden, kommt es wahrscheinlich zu einer unerwünschten Kopplung zwischen den Bedenken.

Mit MVC sollte es relativ einfach sein, die Front-End-Oberfläche (View) einer Anwendung zu ändern, ohne den Controller oder das Modell zu ändern. Dies kann wünschenswert sein, wenn Sie den Zugriff über ein Smartphone, das Internet und eine oder mehrere Anwendungen zulassen müssen.

Für große Teams ermöglicht MVC möglicherweise eine bessere Ressourcennutzung, da Entwickler mit der Arbeit in einer der Ebenen beauftragt werden können und in den anderen Ebenen möglicherweise nicht viel Geschick erforderlich ist. Je nach Aufwand für die Koordinierung der Ressourcen kann dies effizienter sein.

BillThor
quelle
12

Ja, es wird viel benutzt. iPhone / iPad-Anwendungen sind alle als MVC eingerichtet. Ich habe in letzter Zeit viele asp.net MVC-Apps gesehen.

MVC sorgt für mehr Flexibilität und ermutigt Entwickler, für jede Funktion einen eigenen Code zu schreiben. Erleichtert die Wartung.

Trevor
quelle
Das Cocoa-Framework von Apple (das unter MacOS X verwendet wird) ist die Weiterentwicklung von NextStep, die bis in die späten 1980er Jahre zurückreicht. NextStep, Cocoa und Cocoa Touch (in iOS verwendet) nutzen MVC in hohem Maße gemeinsam.
Caleb
4

Es ist im Moment in Mode.

Unterschätze niemals die Kraft des Hype. Bald hat jemand etwas Neues, Glänzenderes und Einfacheres, und jeder entschlüsselt MVC als die Wurzel allen Übels (passiert mit Webformularen), oder es wird so viele Leute geben, die es benutzen, dass die Veteranen mehr Grizzles machen entschlüssle es als "Managementbulle" * * " - Sache (passiert mit XML). Oder es wird eine Verschiebung zu einem anderen Muster geben, weil MVC "nicht flexibel genug für das superharte Problem ist, das ich lösen muss" (statisch typisierte Sprachen vs. dynamische Sprachen).

Letztendlich ist MVC ein Framework-Ansatz, der sich für eine Reihe von Problemen eignet, die bei der Webprogrammierung auftreten. Es wird noch eine Weile dauern, aber ich kann mir vorstellen, dass der Grund, warum die meisten Leute es verwenden, darin besteht, dass es mit dem Schlagwort konform ist.

BEARBEITEN

Bitte beachten Sie: Mir ist klar, dass es das MVC-Muster schon seit Jahren gibt und es in Frameworks vor asp.net MVC verwendet wurde. Ich sage nur, dass es im Moment ziemlich beliebt ist, also wird es dringender als andere Ansätze. Ich benutze MVC für alle meine persönlichen Projekte und habe es auch für kommerzielle Projekte verwendet (ich bin ein .NET-Entwickler).

Das war keine Schande.

Ed James
quelle
7
-1 für: 'Im Moment', wenn Sie nicht zum Beispiel den Beginn von Smalltalk oder Java / Swing als Technologie des Augenblicks betrachten, ist MVC dafür etwas zu alt.
Keppla
4
Außer "im Moment" ist ziemlich genau; MVC wurde bis vor kurzem kaum genutzt, was mir bekannt ist, außer in der Java-Welt. Überall sonst wurde es erst eingesetzt, als Rails populär wurde.
Wayne Molina
4
Die meisten GUI-Frameworks (nicht-html), auf die ich gestoßen bin, benutzten MVC, es schien die letzten 10 Jahre nicht "kaum gebraucht" zu sein.
Keppla
1
Tatsächlich wurde MVC in einigen Teilen des Universums bereits von MVP gehyped.
Tom Anderson
3
Ich persönlich hasste Webforms, lange bevor ASP.NET MVC überhaupt ein Konzept war. Manchmal sind Dinge populär, weil sie in den meisten Fällen die beste Option sind - und ja, sie können durch etwas Neueres und Stärkeres ersetzt werden, aber was nun? Das ist Fortschritt, kein Hype.
Aaronaught
3

Nach meiner Erfahrung wird es nicht so oft verwendet, wie es sollte. Es ist ein viel besseres Modell als einige der Alternativen, aber es hat in den letzten Jahren nur viel Hype bekommen. Aus diesem Grund gibt es eine Menge älterer Benutzer, die Angst haben, auf MVC umzusteigen, oder Angst haben, MVC für zukünftige Arbeiten zu verwenden, da es sich außerhalb ihrer Komfortzone befindet.

Wayne Molina
quelle
1

Ich denke, Sie werden feststellen, dass die Stack Exchange-Familie alle auf MVC läuft

Garry
quelle
Super, wusste nicht, dass +1
Ale
1

ASP.NET MVC hat bei Webanwendungen einen hohen Stellenwert erlangt, da .NET in der Branche häufig verwendet wird.

Microsoft-Webanwendungen wurden von klassischem ASP zu ASP.NET weiterentwickelt, das auf Web Forms basiert (damit die Fähigkeiten von VB6 Win Forms-Entwicklern problemlos auf die neue Grenze des Webs übertragen werden konnten).

Leider ist Web Forms zustandsbasiert und HTTP (auf dem das Web basiert) ist zustandslos, so dass viele unangenehme Problemumgehungen aufgrund von Dingen wie Ansichtsstatus erforderlich waren.

Mit ASP.NET MVC können die Fähigkeiten, die WebForms-Entwickler benötigen, in ein Webframework übersetzt werden, das über eine gute SoC-Funktionalität verfügt und dessen Testbarkeit mit viel Aufwand verbunden ist (da WebForms nicht sehr testbar ist, hat das MVC-Team viel getan) Aufwand in den Rahmen).

Das heißt, es ist kein Allheilmittel / Wundermittel, und wie bei jedem Framework gibt es Zeiten, um es zu verwenden, und Zeiten, um es nicht zu verwenden. Hoffentlich werden die Leute nicht versuchen, alles zu lösen: Wenn Ihr einziges Werkzeug ein Hammer ist, sieht jedes Problem aus wie ein Nagel.

StuperUser
quelle
1

Es ist nur ein Moment in der Geschichte, da MVC ein paar sehr sehr einfache Konzepte sind, die zufällig Hype von ein paar spezifischen Frameworks erhalten haben, die es prominent in ihrem Marketingmaterial darstellen. Es kommt auch vor, dass viele der bewährten Methoden, die sich in der Softwareentwicklung herausgebildet haben, nicht zu unterschätzen sind. Dies gilt doppelt für pseudozustandsbezogene Entwicklungen wie HTTP. So sehr, dass ich nur ein anderes, wirklich anderes "Muster" kenne, das in der Webwelt verwendet wird - das vielfach bösartige ereignisbasierte Modell von ASP.Net WebForms.

Ich bin ehrlich gesagt ein bisschen überrascht, dass es genug für eine ganze Dissertation gibt.

Aber um deine Frage zu beantworten. WebForms ist ein kleiner Teil des Web-Kreises, der hauptsächlich in Intranet-Geschäftsanwendungen zu Hause ist. Spaghetti-codierte Seiten ohne echtes Muster machen wahrscheinlich eine anständige Menge des Venn-Diagramms aus, aber so ziemlich alles, was ein Framework ist, wird zumindest stark von MVC beeinflusst, sodass Ihre kurze Antwort ein klares JA wäre .

George Mauer
quelle
@geroge: Danke für die Antwort. Ha .. keine Sorge, die in meiner Dissertation enthaltene Software verwendet MVC .. es ist eigentlich nicht auf MVC!
Ale