Co oznacza skrót MVW?


351

Oto opis zawartości strony AngularJS:

AngularJS byłby tym, czym byłby HTML, gdyby został zaprojektowany do tworzenia aplikacji internetowych. Deklaratywne szablony z wiązaniem danych, MVW, MVVM, MVC, wstrzykiwaniem zależności i świetną historią testowania zaimplementowane z czystym skryptem JavaScript po stronie klienta!

Więc co oznacza MVW? (Biorąc pod uwagę sprzeczki MVC, MVVW, MVP itp., Zgadłbym „cokolwiek”, Model-View-Whthing = P)


Myślę, że masz rację z Model-View-Whothing! code.google.com/p/dark-matter-data/wiki/MVWOverview
Jan

Odpowiedzi:


447

To rzeczywiście oznacza wszystko, co działa dla ciebie

MVC vs MVVM vs MVP. Co za kontrowersyjny temat, o którym wielu programistów spędza godziny debatując i kłócąc się.

Przez kilka lat + AngularJS był bliżej MVC (a raczej jednego z jego wariantów po stronie klienta), ale z czasem i dzięki wielu udoskonaleniom i ulepszeniom interfejsu API jest teraz bliższy MVVM - obiekt $ scope można uznać za ViewModel, który jest ozdobiony funkcją, którą nazywamy Kontrolerem.

Możliwość kategoryzacji frameworka i umieszczenia go w jednym z segmentów MV * ma pewne zalety. Może pomóc programistom w zwiększeniu komfortu korzystania z apis, ułatwiając stworzenie modelu mentalnego, który reprezentuje aplikację, która jest budowana za pomocą frameworka. Może także pomóc w ustaleniu terminologii używanej przez programistów.

Powiedziawszy, wolałbym, żeby programiści budowali wyśmienite aplikacje, które są dobrze zaprojektowane i stosują oddzielne obawy, niż tracenie czasu na kłótnie o nonsens MV *. Z tego powodu oświadczam, że AngularJS jest frameworkiem MVW - Model-View-Whothing. Gdzie cokolwiek oznacza „cokolwiek działa dla ciebie” .

Angular zapewnia dużą elastyczność w ładnym oddzielaniu logiki prezentacji od logiki biznesowej i stanu prezentacji. Używaj go, aby napędzać produktywność i łatwość konserwacji aplikacji, a nie ożywioną dyskusję na temat rzeczy, które pod koniec dnia nie mają tak wielkiego znaczenia.


8
@ FrançoisWahl: Powiedziałem to samo nie pięć sekund przed przeczytaniem twojego komentarza. MV * prawdopodobnie byłby bardziej oczywisty od razu dla zdecydowanej większości programistów, którzy prawdopodobnie już znają wszechobecną konwencję symboli wieloznacznych „*”.
David Frye

2
Nie możesz Google MV *. Także… „Cokolwiek” przekazuje frustrację, którą wielu ludzi odczuwa, omawiając semantykę MVx
Clintm


22

Powiedziawszy, wolałbym, żeby programiści budowali wyśmienite aplikacje, które są dobrze zaprojektowane i stosują oddzielne obawy, niż tracenie czasu na kłótnie o nonsens MV *. Z tego powodu oświadczam, że AngularJS jest frameworkiem MVW - Model-View-Whothing. Gdzie cokolwiek oznacza „cokolwiek działa dla ciebie”.

Kredyty: AngularJS Post - Igor Minar



1

Wydaje mi się, że MWV (Model View Whothing) lub MV * jest bardziej elastycznym terminem opisującym niektóre z wyjątkowości Angularjs, moim zdaniem. Pomogło mi to zrozumieć, że jest to coś więcej niż framework JavaScript MVC (Model View Controller), ale nadal używa MVC, ponieważ ma widok Model i kontroler.

Można go również uznać za wzorzec MVP (Model View Presenter). Myślę o Presenter jako o logice biznesowej interfejsu użytkownika w Angularjs for the View. Na przykład za pomocą filtrów, które mogą formatować dane do wyświetlenia. To nie jest logika biznesowa, ale logika wyświetlania i przypomina mi wzorzec MVP, którego użyłem w GWT.

Ponadto może to być również MVVM (Widok modelu Widok modelu), przy czym część Widok modelu jest dwukierunkowym połączeniem między nimi. Na koniec jest to MVW, ponieważ ma inne wzory, których możesz używać, o których wspomina @Steve Chambers.

Zgadzam się z innymi odpowiedziami, że pedantyczne na tych warunkach może być szkodliwe, ponieważ chodzi o zrozumienie pojęć z terminów, ale z tego samego powodu pełne zrozumienie warunków pomaga w projektowaniu kodu aplikacji, wiedząc, co idzie gdzie i dlaczego.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.