Desarrollo de software web con Grails

Logo de GrailsLlevo varios meses analizando y leyendo documentación sobre este moderno framework libre para el desarrollo de software libre de aplicaciones web JavaEE.

Lo descubrí poco después de conocer Openxava y me he llevado una grata impresión porque su funcionamiento se basa en reutilizar tecnologías ya probadas Java.

Grails es una plataforma que intenta aportar máxima productividad a los programadores basándose en dos grandes premisas:

Convención sobre configuración, de esta forma se hace innecesario realizar aquellas tareas para las que la convención ha definido un comportamiento teniendo que desarrollar aquello que se salga de las reglas convenidas o cuando la convención dota de un comportamiento insuficiente, el desarrollador puede alterar su  comportamiento por defecto y así adaptarlo a la necesidad requerida.

DRY: Don’t repeat yourself! (“‘¡No te repitas!”), cuya finalidad de este principio es evitar la duplicidad de código y así evitar el mayor número de cambios en distintos lugares del código para conseguir una mejor evolución y mantenimiento de la aplicación.

Las características principales de Grails podríamos resumirlas en las siguientes:

  • Se basa  sobre el patrón MVC (Model, View y Controller).
  • Grails es un framework web construido sobre cinco fuertes pilares como he comentado:
    • Groovy para la creación de propiedades y métodos dinámicos en los objetos de la aplicación. Con Groovy necesitamos menos código para obtener el mismo resultado que si lo hiciéramos con Java tradicional. Menos código significa menos errores y menos líneas de código de mantener.
    • Spring para los flujos de trabajo e inyección de dependencias.
    • Hibernate para la persistencia de base de datos.
    • SiteMesh para la composición de la vista.
    • Ant para la gestión del proceso de desarrollo.
  • Generación del modelo de datos con simples clases GroovyBeans.
  • Scaffolding, desde Grails podemos generar el controlador y las vistas necesarias para realizar operaciones CRUD (acrónimo para las operaciones básicas de Creación, Lectura (Read), Actualización (Update) y Borrado (Delete) con las entidades definidas como GroovyBeans de forma automática.
  • Soporte para AJAX.
  • Para las vistas de la aplicación se usa una versión simplificada de JSP llamada Groovy Server Pages que permite intercalar expresiones en el código HTML y emplear una serie de etiquetas al estilo JSTL.
  • Inexistencia de configuración en archivos XML.
Como conclusión, Grails es un entorno de desarrollo de software para Java empresarial que encapsula diferentes componentes que hacen que el desarrollo sea mucho más productivo y ágil para aplicaiones JavaEE.
Por buscarle alguna pega, la venta de encapsular componentes como Spring o Hibernate hace que ello mismo sea un inconveniente, por lo que recomiendo conocer estos frameworks de forma independiente para llegar a conocer más a fondo que hace Grails por debajo con ellos. Además, las aplicaciones deben estar desarrolladas meticulosamente porque si no es así, es posible que sean demasiado lentas.