Wofür steht MVW?


351

Hier ist die Inhaltsbeschreibung für die AngularJS-Seite:

AngularJS ist das, was HTML gewesen wäre, wenn es zum Erstellen von Web-Apps entwickelt worden wäre. Deklarative Vorlagen mit Datenbindung, MVW, MVVM, MVC, Abhängigkeitsinjektion und großartiger Testbarkeitsgeschichte, die alle mit reinem clientseitigem JavaScript implementiert wurden!

Wofür steht MVW? (In Anbetracht der Streitigkeiten zwischen MVC, MVVW, MVP usw. würde ich "was auch immer" erraten, Model-View-Whatever = P)


Ich denke, Sie haben Recht mit Model-View-Whatever! code.google.com/p/dark-matter-data/wiki/MVWOverview
John

Antworten:


447

Es steht in der Tat für alles, was für Sie funktioniert

MVC gegen MVVM gegen MVP. Was für ein kontroverses Thema, über das viele Entwickler stundenlang diskutieren und streiten können.

AngularJS war mehrere Jahre lang näher an MVC (oder besser gesagt an einer seiner clientseitigen Varianten), aber im Laufe der Zeit und dank vieler Refactorings und API-Verbesserungen ist es jetzt näher an MVVM - das $ scope-Objekt könnte als ViewModel betrachtet werden durch eine Funktion dekoriert werden, die wir einen Controller nennen.

Die Möglichkeit, ein Framework zu kategorisieren und in einen der MV * -Buckets zu legen, hat einige Vorteile. Es kann Entwicklern helfen, sich mit seiner API besser vertraut zu machen, indem es die Erstellung eines mentalen Modells erleichtert, das die Anwendung darstellt, die mit dem Framework erstellt wird. Es kann auch hilfreich sein, eine Terminologie festzulegen, die von Entwicklern verwendet wird.

Trotzdem würde ich lieber sehen, wie Entwickler umwerfende Apps entwickeln, die gut gestaltet sind und der Trennung von Bedenken folgen, als dass sie Zeit damit verschwenden, über MV * -Nonsens zu streiten. Aus diesem Grund erkläre ich AngularJS hiermit zum MVW-Framework - Model-View-Whatever. Wo was auch immer für "was auch immer für Sie funktioniert" steht .

Angular bietet Ihnen viel Flexibilität, um die Präsentationslogik von der Geschäftslogik und dem Präsentationsstatus zu trennen. Verwenden Sie es, um Ihre Produktivität und Wartbarkeit der Anwendung zu steigern, anstatt heftige Diskussionen über Dinge zu führen, die am Ende des Tages nicht so wichtig sind.


8
@ FrançoisWahl: Ich habe mir das gleiche nicht fünf Sekunden vor dem Lesen Ihres Kommentars gesagt. MV * wäre für die überwiegende Mehrheit der Softwareentwickler, die wahrscheinlich bereits mit der allgegenwärtigen Wildcard-Konvention vertraut sind, wahrscheinlich offensichtlicher gewesen.
David Frye

2
Sie können Google MV * nicht verwenden. Auch ... "Was auch immer" vermittelt die Frustration, die viele Menschen empfinden, wenn sie die Semantik von MVx
Clintm


22

Trotzdem würde ich lieber sehen, wie Entwickler umwerfende Apps entwickeln, die gut gestaltet sind und der Trennung von Bedenken folgen, als dass sie Zeit damit verschwenden, über MV * -Nonsens zu streiten. Aus diesem Grund erkläre ich AngularJS hiermit zum MVW-Framework - Model-View-Whatever. Wo was auch immer für "was auch immer für Sie funktioniert" steht.

Credits: AngularJS Post - Igor Minar



1

Ich bin der Meinung, dass MWV (Model View Whatever) oder MV * ein flexiblerer Begriff ist, um meiner Meinung nach einige der Einzigartigkeiten von Angularjs zu beschreiben. Es hat mir geholfen zu verstehen, dass es mehr als ein MVC-JavaScript-Framework (Model View Controller) ist, aber MVC weiterhin verwendet, da es über eine Modellansicht und einen Controller verfügt.

Es kann auch als MVP-Muster (Model View Presenter) betrachtet werden. Ich stelle mir einen Presenter als Geschäftslogik für die Benutzeroberfläche in Angularjs for the View vor. Zum Beispiel durch die Verwendung von Filtern, die Daten für die Anzeige formatieren können. Es ist keine Geschäftslogik, sondern Anzeigelogik und erinnert mich an das MVP-Muster, das ich in GWT verwendet habe.

Darüber hinaus kann es sich auch um ein MVVM (Model View View Model) handeln, wobei der View Model-Teil die bidirektionale Bindung zwischen beiden ist. Zuletzt ist es MVW, da es andere Muster hat, die Sie verwenden können und die von @Steve Chambers erwähnt werden.

Ich stimme den anderen Antworten zu, dass es nachteilig sein kann, pedantisch mit diesen Begriffen umzugehen, da es darum geht, die Konzepte aus den Begriffen zu verstehen, aber aus dem gleichen Grund hilft es einem, die Begriffe vollständig zu verstehen, wenn sie ihren Anwendungscode entwerfen und wissen, was geht wohin und warum.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.