Monday, 15 February 2016

Desarrollando wiklimb Parte 3

Han sido un par de semanas de desarrollo intensas en wiklimb. Por un lado había que quitarse el oxido de encima, dejar limpio el entorno de desarrollo y borrar mucho código; por otro lado había que desarrollar funcionalidades completamente nuevas, no mejoras sobre las ya existentes. 

La limpieza
Para empezar se refactorizó toda la capa de negocio y datos, dejandolo mas limpio  y sencillo de desarrollar. En un primer momento se usó una herramienta para generar código a partir de una BBDD, pero había demasiado código, algunas cosas era complicadas de seguir y además contenia algunos fallos serios. Estaba bien para probar un concepto, pero si queriamos avanzar había que hacer de tripas corazón y eliminarlo todo.

No fué tan traumático. Cosas del diseño por capas.

La preparación
Había que hacer muchos cambios al modelo así que para no andar peleando con la base de datos decidimos especificar una bbdd de partida y definir los cambios con Liquibase. Liquibase es un una herramienta que te permite definir cambios en la bbdd mediante xml, de forma que cada desarrollador de un equipo puede hacer un cambio que afecte al modelo y subir al repositorio los cambios. Cuando un compañero se actualice los cambios se aplicarán a su bbdd local. Por ejemplo, así se define una creación de tabla con dos FK.

Usamos el plugin SQL de maven para cargar una bbdd limpia y el liquibase para ir creando los cambios para la nueva versión. Un simple mvn clean en el proyecto de negocio aseguraba una bbdd local estable y con datos limpios.

Las mejoras
Si algo bueno tiene trabajar en un proyecto propio es la falta de restricciones, así que nos actualizamos a usar las últimas versiones de las librerias más importantes que usamos en wiklimb.

  • Nos pasamos a Java 8 para sacar probecho de sus expresiones lambda y trabajo con streams.
  • Spring 4.2.4
  • Primefaces 5.3
  • Hibernate 5.0.6
Además agregamos la Querydsl. Este fraework permite hacer querys programaticamente sobre las entidades JPA con una facilidad pasmosa. Por ejemplo, si tenemos una entidad Event podemos definir la siguiente consulta:


Nos ha ayudado mucho ahorrando problemas a la hora de acceder a los datos.

El resultado
Tal y como ha quedado el entorno actualmente es muy rápido añadir funcionalidades a wiklimb siendo la parte que se come más tiempo la usabilidad y la correcta muestra en el navegador.

Os invito a registraros en http://wiklimb.com y verlo vosotros mismos.

No comments:

Post a comment