¿Qué significa MVW?

351

Aquí está la descripción del contenido de la página AngularJS:

AngularJS es lo que habría sido HTML, si hubiera sido diseñado para crear aplicaciones web. ¡Plantillas declarativas con enlace de datos, MVW, MVVM, MVC, inyección de dependencia y una gran historia de comprobabilidad implementadas con JavaScript puro del lado del cliente!

Entonces, ¿qué significa MVW? (Teniendo en cuenta la disputa MVC, MVVW, MVP, etc., supongo que "lo que sea", Model-View-Whatever = P)

slacktracer
fuente
¡Creo que tienes razón con Model-View-Whatever! code.google.com/p/dark-matter-data/wiki/MVWOverview
John

Respuestas:

447

Es sinónimo de lo que sea, como en lo que sea que funcione para ti

MVC vs MVVM vs MVP. Qué tema tan controvertido que muchos desarrolladores pueden pasar horas y horas debatiendo y discutiendo.

Durante varios años + AngularJS estuvo más cerca de MVC (o más bien una de sus variantes del lado del cliente), pero con el tiempo y gracias a muchas refactorizaciones y mejoras de la API, ahora está más cerca de MVVM: el objeto $ scope podría considerarse el ViewModel que es estar decorado por una función que llamamos un controlador.

Ser capaz de clasificar un marco y ponerlo en uno de los cubos MV * tiene algunas ventajas. Puede ayudar a los desarrolladores a sentirse más cómodos con sus apis al facilitar la creación de un modelo mental que represente la aplicación que se está creando con el marco. También puede ayudar a establecer la terminología utilizada por los desarrolladores.

Una vez dicho esto, prefiero ver a los desarrolladores crear aplicaciones innovadoras que estén bien diseñadas y seguir la separación de preocupaciones, que verlas perder el tiempo discutiendo sobre las tonterías de MV *. Y por esta razón, declaro que AngularJS es el marco MVW: Model-View-Whatever. Donde lo que sea que significa "lo que sea que funcione para ti" .

Angular le brinda mucha flexibilidad para separar muy bien la lógica de presentación de la lógica de negocios y el estado de presentación. Úselo para aumentar su productividad y el mantenimiento de la aplicación en lugar de acaloradas discusiones sobre cosas que al final del día no importan tanto.

Christian.K
fuente
8
@ FrançoisWahl: Me dije lo mismo a mí mismo no cinco segundos antes de leer tu comentario. MV * probablemente habría sido más obvio de inmediato para la gran mayoría de los desarrolladores de software que probablemente ya estén familiarizados con la omnipresente convención comodín '*'.
David Frye
2
No puedes Google MV *. Además ... "Lo que sea" transmite la frustración que sienten muchas personas cuando discuten la semántica de MVx
Clintm
22

Una vez dicho esto, prefiero ver a los desarrolladores crear aplicaciones innovadoras que estén bien diseñadas y seguir la separación de preocupaciones, que verlas perder el tiempo discutiendo sobre las tonterías de MV *. Y por esta razón, declaro que AngularJS es el marco MVW: Model-View-Whatever. Donde lo que sea que significa "lo que sea que funcione para ti".

Créditos: AngularJS Post - Igor Minar

Adrián Enríquez
fuente
1

Siento que MWV (Model View Whatever) o MV * es un término más flexible para describir algunas de las singularidades de Angularjs en mi opinión. Me ayudó a entender que es más que un marco de JavaScript MVC (Model View Controller), pero aún usa MVC ya que tiene una Vista de modelo y un Controlador.

También se puede considerar como un patrón MVP (Model View Presenter). Pienso en un presentador como la lógica empresarial de la interfaz de usuario en Angularjs for the View. Por ejemplo, mediante el uso de filtros que pueden formatear datos para su visualización. No es lógica de negocios, sino lógica de visualización y me recuerda el patrón MVP que utilicé en GWT.

Además, también puede ser un MVVM (Modelo, Vista, Modelo de Vista), siendo la parte del Modelo de Vista el enlace bidireccional entre los dos. Por último, es MVW, ya que tiene otros patrones que puede usar, así como los mencionados por @Steve Chambers.

Estoy de acuerdo con las otras respuestas de que ser pedante en estos términos puede ser perjudicial, ya que el punto es entender los conceptos a partir de los términos, pero de la misma manera, comprender completamente los términos ayuda cuando se está diseñando su código de aplicación, sabiendo qué va a dónde y por qué.

James Drinkard
fuente