lunes, 19 de marzo de 2018

Greach 2018: Micronaut Edition




Decir que he visto el futuro es sin duda exagerado. Pero tras el pasado Greach tengo una sensacion parecida a la de hace 6 años cuando descubrí Grails, Agile y tantas cosas en pocos dias.


Esta edición de Greach tenido muchos momentos excelentes. No solo el bombazo que ahora comentaré sino muchas otras cosas. Para empezar, el curso pre-Greach que impartió Sergio del Amo @sdelamo, autor de Groovy Calamari. El curso de dos dias fué un excelente resumen de todo lo que se puede hacer con Grails 3.3. Si hubiera que poner un pero, sería que el nivel de los alumnos era demasiado dispar: desde gente como yo mismo que lleva unos cuantos años programando con Grails y que queríamos profundizar en las novedades hasta alumnos que apenas estaban empezando (y que, supongo, pasarían algun mal rato con alguno de los conceptos de Groovy y la convención sobre configuración de Grails).



El primer dia de Greach como evento fué dedicado a Workshops. El primero al que asistí fué de nuevo con Sergio, aprendiendo a securizar correctamente una aplicación y testearla. En el segundo Hélain Schoonjans nos presentó una serie de tests para asegurar desde cero unos servicios REST. Muy interesante. Y para terminar, probablemente el mas interesante de Jacob Aae Mikkelsen en el que nos presentó una aplicación con múltiples errores de seguridad y estudiamos lo que estaba mal y como solucionarlo (Slides, Tool Slides y Codigo de la aplicacion)

No voy a entrar en detalle de todas las charlas. Si que quiero destacar la de Puneet Behl sobre DSLs en groovy (una de mis asignaturas pendientes, una de las cosas que tengo ganas de hacer desde hace tiempo), la de Jacob Aae Mikkelsen sobre las cosas que se pueden hacer con GString (no solo interpolación, muchas mas cosas y truquillos) o la de Vladimír Oraný usando un DSL para hacer mucho mas facil la creación de Hojas Excel con Apache POI. Casi hasta parece divertido hacer hojas de cálculo. Mención tambien el primer dia para la charla de los Salenders Alberto Barón y Alberto De Ávila sobre las mejoras que se pueden incluir en una aplicación Grails 3 para mejorar el rendimiento.



Pero el gran bombazo (ya Iván López, miembro de OCI y organizador de Greach había avisado de que algo grande se iba a presentar) estaba por venir: Graeme Rocher, creador y lider de Grails presentó el nuevo framework en el que lleva trabajando un tiempo: Micronaut (antes conocido como Particles). Se trata de un nuevo framework orientado a microservicios, reescrito desde cero y que podrá ser usado desde Java, Groovy y Kotlin.




Una de las grandes ventajas de Micronaut es la poca memoria que requiere: es posible realizar una aplicación en un JAR de tan solo 8Mb  que arranca en menos de un segundo en a version Java y alrededor de un segundo en Groovy. Simplemente increible teniendo en cuenta que incluye inyección de dependencias y muchas de las cosas a las que nos hemos acostumbrado con los años. Pero la resolución de muchas (por no decir todas) las dependencias y toda la magia se realiza en tiempo de compilación, no de ejecución.  El sistema es tan rápido y ligero que ¡es posible utilizar las aplicaciones Micronaut como tareas en AWS Lambda!

Micronaut incluye además de serie tanto cliente (Jackson) como servidor con lo que el testing es practicamente directo. La creación de servicios basados en anotaciones hace que la creacion de nuevos endPoints para nuestra aplicación se definan de forma realmente cómoda. Por ejemplo:

@Controller("/") class HelloController {
    
    @Get("/hello/{name}") String hello(String name) {
        return "Hello $name"
    }
}


Micronaut soportará ciertas partes de Grails (por ejemplo, Gorm) con lo que la migración (aparte del cambio de mentalidad que supone el paso a una infraestructura de Microservicios) puede ser menos traumático.

Si quieres conocer mas sobre este nuevo framework, Alvaro Sánchez-Mariscal, miembro tambien de OCI, dió una charla al dia siguiente y sus slides ya estan disponibles:




Decía al principio que no fué solo el bombazo comentado lo que me cambió la forma de pensar en como hacer ciertas cosas: la primera charla del último dia (Doc as Code, de Ralf D. Müller) tambien me hizo pensar en que se puede ir mas alla que la generación de documentos en AsciiDoctor para documentar el código, llegando desde las especificaciones a la integración con, por ejemplo, Confluence. Muy interesante.

Por supuesto, no puedo dejar pasar la gran actuación (porque eso fué) de Jorge Aguilera (@jagedn) y Miguel Rueda (@miguelruga) mostrando la utilidad del proyecto @101GroovyScript (Código en Gitlab. Este es uno de los mejores proyectos sobre groovy que estamos viendo crecer en los últimos tiempos en España y es justo agradecer a los autores su trabajo.

Para terminar. Por supuesto, no puedo dejar de agradecer un año más a Iván Lopez y Alberto Vilches por la organización de este evento de referencia internacional que mejora cada año y que está vez ha tenido además la sorpresa de la presentación mundial de un nuevo framework de desarrollo. Ahí es nada



Nota: las slides, codigo y otros enlaces, están siendo recopilados por Helain Schoonjans en este gist


Ultimos enlaces compartidos

Aerotrastornados - Blog Aeronáutico