Estudia el pasado si quieres pronosticar el futuro
Confucio

Code Kata – GWT

Kata sobre GWT con 4 ejercicios cortos cuyo objetivo es introducirse en la API de la vista, dominar la arquitectura de comunicación asíncrona y aprender a gestionar sus proyectos.

La versión de GWT recomendada es la v2.4, o al menos versiones v02.xx. Se recomienda utilizar Eclipse como IDE junto con el plugin de GWT para Eclipse que proporciona Google.

Si tienes dudas sobre el enunciado del ejercicio, sus objetivos o restricciones no dudes en contactarme, así como si tienes sugerencias o mejoras. La semana que viene espero publicar mi solución, pero antes de consultarla recomiendo fuertemente trates de hallar tu propia solución. También agradecería que compartieseis vuestras implementaciones.

La estructura del proyecto requerida se muestra en la siguiente imagen:

Se implementará un patrón MVC (Modelo Vista Controlador).

  • El Modelo será utilizado por todas las capas del proyecto, no sólo la Vista y el Controlador.
  • La Vista se encargará de la implementación de la  Interfaz de Usuario.
  • El Controlador se encargará de atender las llamadas procedentes del cliente y despacharlas al método de negocio que le corresponda.

Ejercicio 01 – GWT – Hello World!

Objetivos

  • Partiendo de un workspace vacío, debemos crear un proyecto web con GWT que al ser ejecutado nos muestre una página con un botón.
  • Al pulsar el botón nos debe aparecer un mensaje con el literal “Hello World!”.

Restricciones

  • Utilizaremos GWT para implementar la vista y el controlador
    • En la parte de la vista, crearemos un módulo GWT con un entry point que carga una página que contiene un botón que tiene asociado un manejador de eventos que dispara la ventana emergente con el mensaje recibido del servidor, todos ellos creados por nosotros como clases de nuestra aplicación.
    • En la parte del controlador, utilizar llamadas RPC para conseguir una comunicación asíncrona.
  • El controlador invocará un servicio.
  • El servicio invocará un DAO.
  • El DAO no consultará ninguna estructura de persistencia, sino que devolverá siempre el mismo mensaje esperado, “Hello World!”.
  • Utilizar APIs en servicio y persistencia.
  • Aunque es suficiente utilizar un objeto java.lang.String para transportar el mensaje, utilizar otro objeto de modelo creado por nosotros (por ejemplo, Message) para encapsularlo.

Ejercicio 02 – GWT – Bye World!

Objetivos

  • Partiendo del proyecto resultante de la kata anterior, Hello World!, ampliaremos el proyecto con otro nuevo módulo similar al anterior pero el mensaje que se nos devolverá será “Bye World!”.

Restricciones

  • Para el nuevo código seguiremos las mismas restricciones válidas para el Ejercicio 01.
  • Toda la nueva implementación debe ser completamente independiente del código anterior, y se empaquetará en paquetes diferentes, cero reutilización (“cero” quiere decir la mínima posible, obviamente sólo puede haber un fichero web.xml…).
  • En este punto, el proyecto debería tener dos módulos diferentes y funcionando.

Observaciones

  • Si utilizamos la palabra “Adiós”, comprobaremos que el carácter “ó” no lo muestra correctamente. Esto es un problema de internacionalización, pero a priori queda fuera del alcance y podría ser objeto de otra kata.

Ejercicio 03 – GWT – All World!

Objetivos

  • Partiendo del proyecto resultante de la kata anterior, Bye World!, refactorizar para llegar a un proyecto con otro nuevo módulo que nos cargue una página con dos botones.
  • Un botón devolverá el mensaje “Hello World!” y el otro devolverá el mensaje “Bye World!”.

Restricciones

  • Para el nuevo código seguiremos las mismas restricciones válidas para el Ejercicio 01.
  • Sólo implementar el código imprescindible, reutilizar cuando sea posible pero sin refactorizar el código existente.
  • En este punto deberíamos tener 3 módulos GET diferentes funcionando correctamente con código completamente independiente entre módulos.

Ejercicio 04 – GWT – All World! Reloaded

Objetivos

  • Partiendo del proyecto resultante de la kata anterior, All World!, refactorizar para llegar a un proyecto con las mismas tres funcionalidades pero con la máxima reutilización posible.

Restricciones

  • Máxima reutilización posible.

No related posts.

1 Comentario hasta el momento »

  1. Code Kata – Integración GWT, Maven y Spring Framework | Lycka Bonita dijo

    27 de February del 2012 a las 8:01 am

    [...] kata es una continuación de la anterior kata sobre GWT. El objetivo es conseguir gestionar el proyecto con Maven para poder utilizar GWT simplemente como [...]

Comentarios RSS · TrackBack URI

Dejanos tu Comentario

Nombre: (Requerido)

E-Mail: (Requerido)

Sitio WEB:

Comentario:

Comenta