2012-04-30 9 views
5

¿Se considera MVP la mejor práctica para * todas * las aplicaciones GWT?¿El MVP siempre vale la pena?

  • ¿Qué tal una pequeña aplicación web interna?
  • ¿Es un error no usar unit testing para dicha aplicación o cualquier aplicación?
  • Para una aplicación que no va a someterse a pruebas unitarias, ¿hay otras razones por las que podría querer usar MVP?

Respuesta

7
  1. En general, MVP se considera una mejor práctica para desarrollar aplicaciones GWT. Varias razones para aplicar el patrón se pueden encontrar en this Google I/O Presentation.
  2. MVP tiene un precio, e introducirá varias clases más y complejidad en su aplicación. Pero también minimizará el acoplamiento y hará que su aplicación sea más comprobable; por lo que depende de usted como diseñador decidir si el patrón vale la pena.
  3. Algunas metodologías, like Extreme Programming, fomentan la inclusión de pruebas automatizadas en un proceso de desarrollo de software. Nuevamente, la inclusión de pruebas requerirá que su equipo escriba más código, pero a cambio su código será robusto y confiable. Le sugiero que incluya pruebas unitarias, incluso si la aplicación es pequeña.
  4. Como dije antes, la prueba fácil es uno de los beneficios de MVP, pero no es el único beneficio. De acuerdo con este article from Google:

MVP desacopla el desarrollo de una manera que permite que varios desarrolladores trabajar simultáneamente

1

No usar MVP no significa necesariamente que no se puede verificar. Siempre puede probar su aplicación a través de la interfaz de usuario utilizando herramientas de prueba automatizadas, pero esas son más difíciles de escribir y más frágiles. Si su aplicación es compleja, o necesita mantenerla, hacerla comprobable por unidad pagará a largo plazo.

2

Bueno, es subjetivo, las cosas de diseño siempre son intercambiables.

Aunque el alcance/tamaño/futuro de las pequeñas aplicaciones también es discutible, por lo general no complicar las cosas para las pequeñas aplicaciones para reducir la complejidad o evitar la muerte de volar con un canon

Sin embargo, si su equipo ya está cómodo con el MVP , Recomendaría encarecidamente ir a MVP porque, como su tamaño aumentará, el patrón te ayudará a evitar el código de spaghetti.

+0

El caso es que mi equipo es nuevo tanto para GWT como para MVP. Es fácil escribir un sitio GWT pero no mientras usa MVP. para un proyecto que solo tiene dos personas durante dos meses, me parece que aprender MVP tendrá un gran impacto en el presupuesto ... – kroiz

+0

Sí, estoy de acuerdo con eso ... aprender a hacer patrones es una tarea que lleva mucho tiempo ... – Adil

1

puedo ver el mérito en el paradigma de MVP, pero para mí mismo que prefieren no tener una capa de presentación adicional entre el modelo y las clases de vista específicas de GWT. Me aseguro de mantener rigurosamente todas las reglas de negocio fuera de las clases de vista (las cosas de UIBinder), y ponerlo en las clases de modelo en su lugar.

Del mismo modo, guardo todo GWT.create(..) cosas fuera del modelo. Esto me permite acceder a las clases de modelo en el lado del servidor sin problemas. Luego uso mucho SyncProxy en mis pruebas JUnit para las llamadas RPC.

En definitiva, cuando está escribiendo un cliente web enriquecido, no puede confiar demasiado en las pruebas automatizadas de la vista, especialmente no cuando se genera mediante código generado para una variedad de plataformas (es decir, navegadores).La prueba del pudín está en lo que Internet   Explorer, Firefox y Chrome hacen de él.