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?
Antworten:
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.
quelle
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.
quelle
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.
quelle
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.
quelle
Ich denke, Sie werden feststellen, dass die Stack Exchange-Familie alle auf MVC läuft
quelle
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.
quelle
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 .
quelle