What does MVW stand for?

AngularjsAcronymMvw

Angularjs Problem Overview


Here's the content description for AngularJS page:

> AngularJS is what HTML would have been, had it been designed for building web-apps. Declarative templates with data-binding, MVW, MVVM, MVC, dependency injection and great testability story all implemented with pure client-side JavaScript!

So what does MVW stand for? (Considering the MVC, MVVW, MVP etc squabble, I would guess "whatever", Model-View-Whatever =P)

Angularjs Solutions


Solution 1 - Angularjs

It stands indeed for whatever, as in whatever works for you per Igor Minar from 2012 (emphasis mine):

> MVC vs MVVM vs MVP. What a controversial topic that many developers > can spend hours and hours debating and arguing about. > > For several years +AngularJS was closer to MVC (or rather one of its > client-side variants), but over time and thanks to many refactorings > and api improvements, it's now closer to MVVM – the $scope object > could be considered the ViewModel that is being decorated by a > function that we call a Controller. > > Being able to categorize a framework and put it into one of the MV* > buckets has some advantages. It can help developers get more > comfortable with its apis by making it easier to create a mental model > that represents the application that is being built with the > framework. It can also help to establish terminology that is used by > developers. > > Having said, I'd rather see developers build kick-ass apps that are > well-designed and follow separation of concerns, than see them waste > time arguing about MV* nonsense. And for this reason, I hereby declare > AngularJS to be MVW framework - Model-View-Whatever. Where Whatever > stands for "whatever works for you". > > Angular gives you a lot of flexibility to nicely separate presentation > logic from business logic and presentation state. Please use it fuel > your productivity and application maintainability rather than heated > discussions about things that at the end of the day don't matter that > much.

Solution 2 - Angularjs

MVW stands for Model-View-Whatever.

For completeness, here are all the acronyms mentioned:

> MVC - Model-View-Controller > > MVP - Model-View-Presenter > > MVVM - Model-View-ViewModel > > MVW / MV* / MVx - Model-View-Whatever

And some more:

> HMVC - Hierarchical Model-View-Controller > > MMV - Multiuse Model View > > MVA - Model-View-Adapter > > MVI - Model-View-Intent

Solution 3 - Angularjs

> Having said, I'd rather see developers build kick-ass apps that are > well-designed and follow separation of concerns, than see them waste > time arguing about MV* nonsense. And for this reason, I hereby declare > AngularJS to be MVW framework - Model-View-Whatever. Where Whatever > stands for "whatever works for you".

Credits : AngularJS Post - Igor Minar

Solution 4 - Angularjs

Solution 5 - Angularjs

I feel that MWV (Model View Whatever) or MV* is a more flexible term to describe some of the uniqueness of Angularjs in my opinion. It helped me to understand that it is more than a MVC (Model View Controller) JavaScript framework, but it still uses MVC as it has a Model View, and Controller.

It also can be considered as a MVP (Model View Presenter) pattern. I think of a Presenter as the user-interface business logic in Angularjs for the View. For example by using filters that can format data for display. It's not business logic, but display logic and it reminds me of the MVP pattern I used in GWT.

In addition, it also can be a MVVM (Model View View Model) the View Model part being the two-way binding between the two. Last of all it is MVW as it has other patterns that you can use as well as mentioned by @Steve Chambers.

I agree with the other answers that getting pedantic on these terms can be detrimental, as the point is to understand the concepts from the terms, but by the same token, fully understanding the terms helps one when they are designing their application code, knowing what goes where and why.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionslacktracerView Question on Stackoverflow
Solution 1 - AngularjsChristian.KView Answer on Stackoverflow
Solution 2 - AngularjsSteve ChambersView Answer on Stackoverflow
Solution 3 - AngularjsAdrian EnriquezView Answer on Stackoverflow
Solution 4 - AngularjsxgqfrmsView Answer on Stackoverflow
Solution 5 - AngularjsJames DrinkardView Answer on Stackoverflow