OOW y JavaOne Brasil 2016 – Día 1

Mis notas del primer día de conferencias

Esta es la primera entrada de una serie de 3 respecto a lo que sucedió en Oracle Open World y JavaOne en Brasil. En realidad el evento inicia 2 días antes con un paseo en bicicleta por la ciudad de San Pablo, una BBQ en la casa de uno de los líderes Java de Brasil y un día de trabajo entre grupos de usuarios Oracle, en donde tenemos la oportunidad de reunirnos y sincronizar el trabajo que realizamos con nuestras comunidades.

oug-jug-summit

A continuación algunas de las charlas a las que asistí durante este primer día de conferencias:

  • Desarrollo de APIs REST escalables usando JAX-RS y Java SE 8
    Actualmente trabajo en proyectos donde el backend de la aplicación es una aplicación Java EE 7 + Java SE 8 y el frontend es desarrollado usando algún framework Javascript del mes. Por eso mi interés en esta charla es el de validar las mejores prácticas en el desarrollo de este tipo de aplicaciones. Durante la charla el expositor Fabio Velloso nos mostraba la importancia de contar con una API REST para la integración de diferentes frentes: IoT, Web, etc… Nos habló de algunos de los componentes importantes que podemos encontrar en JAX-RS para la implementación de dicha API: Filtros, procesamiento asíncrono, etc. Luego nos mostró la importancia de manejar la caché de los recursos para la escalabilidad de las aplicaciones, y código fuente de cómo podemos implementarla y validarla por medio de la API JAX-RS. Algo que es importante mencionar es que al usar la caché siempre es recomendado validar la información al momento de actualizarla para no caer en el error de sobreescribir información nueva con información obsoleta. Una buena práctica para la configuración de la caché es definir una anotación para marcar los recursos con una anotación: creamos un productor de CDI para producir instancias de CacheControl y luego laa}s inyectamos usando CDI, con esto logramos reuso, mayor flexibilidad y código más limpio.

Respecto a la ejecución asíncrona, pudimos apreciar la importancia de ésta en la escalabilidad de nuestras aplicaciones ya que evita bloqueos de peticiones, procesando la petición actual en otro hilo y liberando el hilo principal para que acepte nuevas. Nos mostró una estadística en la que se aprecia la combinación ganadora CompletableFuture + ManagedExecutorService para el manejo de grandes cantidades de datos en paralelo en ambientes JavaEE, cuidado, el uso de ManagedExecutorService es muy importante en estos ambientes. En la imagen a continuación se relacionan Clases vs Elementos en una lista y su tiempo en millis de procesamiento.

CompletableFuture

  • JavaOne Keynote
    Esta es la primera vez que aparezco en un keynote! La razón? tFactory, un proyecto open source, creado por el Java Champion Guatemalteco Cesar Hernandez, en el que he venido participando y que ha sido seleccionado como uno de los ganadores de los Duke’s Choice Awards latinoamerica. El participar en proyectos de este tipo me ha permitido hacer muchos contactos y aprender muchas cosas nuevas, recomiendo a quién este leyendo esto que se involucre en algún proyecto open source.DukeChoiceAwardWinners

    También se habló del JDK 9, su característica principal es la modularización del JDK, pero se mostraron también otras nuevas funcionalidades y mejoras al lenguaje. Todos podemos desde ya probar estas nuevas características y estar enterados del progreso de su desarrollo. Cada semana se cuenta con una versión nueva para ser probada. Visita la página oficial del OpenJDK para enterarte más acerca de esta nueva versión.
    Incluso NetBeans tiene una versión donde ya incorpora las nuevas características de la versión 9:

    netbeansjdk9

    Importante: Muchos de los elementos marcados con @Deprecated serán removidos de verdad, esto puede impactar tu aplicación, además, como parte del proyecto de modularización, los módulos ahora tendrán permisos y si de casualidad estás usando alguno de esos paquetes que se te ha recomendado no usar… Entonces también tendrás inconvenientes. Por lo anterior, se te aconseja que desde ya empieces a probar tu aplicación con las entregas tempranas que se están haciendo del OpenJDK.

El resto del día estuve en el Hackergarten, un espacio en el que puedes reunirte y participar de proyectos open source, liderado por el Java Champion Andres Almiray. Generalmente en este lugar se encuentran las personas encargadas de dichos proyectos, lo cual es una gran oportunidad para networking.

Ya en la noche, tuvimos una cena para JUG leaders y Java Champions en una de la mejores Churrascarias de la ciudad,  buena compañía y todo muy delicioso.

jc-jug-dinner