miércoles, 9 de noviembre de 2016

Acabemos con la "verbosidad" de Java (I): Proyecto Lombok

Siempre se ha hablado de la verbosidad de Java. Y llevan toda la razón. ¿Para que tanto código "boiler plate"?

Una de las cosas mas estúpidas a mi parecer son los "getters" y "setters" o métodos para leer y asignar los atributos de una clase.

El problema aparece, en que por convenio, la nomenclatura preestablecida de los getters y setters se aprovecha en algunos frameworks, y por tanto, hayq ue descartar el crear los atributos como públicos.

A nuestra ayuda vienen algunas soluciones:

1. Lenguaje Groovy: Es una buenísima opción si no fuera por su lentitud (según he leído, es alrededor de 8 veces mas lento que Java, que de por si ya peca de lento respecto a C)

2. Lenguaje Klotin: Es una alternativa que no descarto hoy en dia, ya que tambien trabaja sobre la JVM y parece ser que tiene los índices de velocidad similares a Java.

3. Proyecto Lombok: Es lo que vamso a utilizar ahora. Para ello se utilizan las anotaciones @Getter y @Setter y no tenenos que crear nada más. Para mi es una buena idea.


Instalación y utilización

1. Primeramente nos descargamos la jar de lombok.

2. Podemos instalarla en nuestro entorno integrado (IDE de Eclipse, STS)  como una especie de plugin ejecutando:

  java -jar lombok.jar

  Seguimos las intrucciones y le indicamos cual es la ruta a nuestro ejecutable (eclipse o STS) y el programa se envarga de insertar una entrada al eclipse.ini o sts.ini que afecta a la máquina virtual (opción -vmargs) mediante el siguiente parámetro.

-javaagent:/home/eduard/sts-bundle/sts-3.8.2.RELEASE/lombok.jar


3. O podemos compilar las clases directamente mediante la orden de compilación

java -cp lombok.jar miclase.java

4. Si creamos una clase como Clas1, con tal de dar las anotaciones @Getter o @Setter y podemos ver el la vista "outline" los dichosos métodos.



Problemas surgidos

Si tenemos nuesto Eclipse o STS recargado con muchos plugins, la mayoria de veces, aunque se instale lombok, no va a funcionar.



No hay comentarios :

Publicar un comentario