Buscar
Social
Ofertas laborales ES
« Aprobada la adquisición de Sun por parte de Oracle | Main | Modela y crea diagramas mediante textos y frases »
martes
sep012009

Project Lombok, eliminando código "boilerplate" en Java

Project Lombok es un proyecto opensource que pretende disminuir la cantidad de código "boilerplate" de los programas Java. Actualmente, tiene soporte para crear value objects de un modo más conciso y para "neutralizar" las excepciones checked,  aunque en el futuro tiene intención de abordar otros temas más complejos como crear propiedades dentro de las clases Java.


Project Lombok emplea anotaciones para generar de modo automático el código "boilerplate", aunque este código realmente sólo se genera como bytecode en la fase de compilación, y no como código fuente Java (como suelen hacer los entornos de desarrollo Java). En el caso de los value objects, con sólo añadir una anotación "@Data" a la clase, podremos tener una clase donde sólo se declaren campos privados y, cuando se compile, de modo automático se nos generará un constructor al cual se le pasan dichos campos, métodos getter y setter para todos ellos, y una implementación de los métodos hashCode y Equals que tiene en cuenta los campos de la clase. También es posible indicar que la clase debe ser inmutable.


La ventaja es que ahora la clase sólo ocupa unas pocas líneas, y es evidente cuando abrimos el fichero de código fuente que la clase es un simple value object. Si tenemos todo el código correspondiente con los métodos que este proyecto crea automáticamente, la clase fácilmente ocuparía unas 100 líneas y sería necesario echarle un vistazo más detallado para darse cuenta que no tiene realmente ninguna funcionalidad.


Como ya he comentado, el proyecto consigue este efecto modificando el bytecode en la fase de compilación. Además, un entorno de desarrollo no va a "ver" todos estos métodos en el código fuente. Por tanto, para que este proyecto funcione de modo adecuado es necesario tener instalado un plugin en el entorno de desarrollo. Actualmente, el autor sólo proporciona un plugin para Eclipse, aunque está buscando ayuda para crear plugins para Netbeans y Intellij.

 

El proyecto se distribuye bajo licencia MIT, por lo que puede ser usado en desarrollos comerciales. En la página del proyecto podéis ver un screencast que demuestra cómo funciona. 


¿Qué os parece este proyecto? Y ¿qué os parece generar la idea de mejorar la sintaxis de Java a través de trucos como anotaciones?

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.