¿Por qué algunos programadores no recomiendan el uso de Lombok!

**

Lombok ¿Cuáles son los beneficios?

**
Lombok Java es una herramienta muy útil para ayudar a eliminar los desarrolladores de código Java es largo, especialmente para los objetos Java simples (POJO). Esto se logra mediante un comentario.

Para una mejor comprensión si Lombok, puede omitir esta sección, la espalda mirada directa, si no muy familiarizados con, sólo tiene que averiguar.

Lombok desea utilizar en el proyecto, que requiere tres pasos:

A, IDE plug-in de instalación Lombok

Actualmente Lombok es compatible con una variedad de IDE, incluyendo Eclips de corriente, Intellji IDEA, myeclipse son compatibles.

Instalación en IDEA de la siguiente manera:

Aquí Insertar imagen Descripción

En segundo lugar, la introducción de dependencias

Lombok es compatible con el uso de múltiples herramientas para la dependencia de la importación de construcción, es actualmente el principal experto de apoyo, gardle, el apoyo de hormigas, etc.

Tal como se utiliza Maven introducido como sigue:
Aquí Insertar imagen Descripción

En tercer lugar, el código usando las anotaciones

Lombok manera de simplificar el código se logra principalmente a través de anotaciones, que se utilizan comúnmente @ de datos, Getter @ / @ Setter, @ Builder, @ no nulo y así sucesivamente.

Tales como el uso anotaciones @Data, sólo tiene que definir un Java Bean:
Aquí Insertar imagen Descripción
Uso @Data anotación en la clase, el equivalente de usar ambas @ ToString, EqualsAndHashCode @, @ Getter , @ Setter y @RequiredArgsConstrutor estas anotaciones, clase POJO es útil para .

Ejemplos ayuda a la clase de forma automática Menú definido toString, Getter, Setter similares.

Por el ejemplo anterior, podemos ver que usamos @Data anotación reduce en gran medida la cantidad de código, el código es muy simple. Esta es también una gran cantidad de desarrolladores están dispuestos a usar la razón principal de Lombok.

Además, en Lombok, y diferentes personas tienen diferentes puntos de vista, ya que muchas personas han utilizado Lombok, por sus méritos son más comprensivos, por lo que vamos a hablar de las cuestiones sobre el enfoque del uso de Lombok traerá.

Lombok ningún daño?

  • X compañero de equipo fuerte

Dado que el uso de la reivindicación Lombok desarrollador correspondiente enchufe debe estar instalado en el IDE.
Si el enchufe no está instalado, a continuación, utilizar el IDE para abrir un proyecto basado en Lombok, a continuación, se le pedirá que encontrar métodos de error. Lo que resulta en la compilación proyecto fracasa.
Es decir, si hay un equipo que utiliza Lombok, a continuación, otras personas también deben instalar IDE plug-ins. De lo contrario no hay desarrollo de forma colaborativa.
Más importante aún, si definimos un paquete frasco utilizado en Lombok, a continuación, todas las aplicaciones requieren todos se basan en este paquete JAR debe instalar el plug-in, que es altamente invasiva.

  • La legibilidad del código, depuración baja

Utilizando este código en Lombok, de hecho puede ayudar a reducir la cantidad de código, porque Lombok ayudará a generar automáticamente una gran cantidad de código.

Sin embargo, el código se va a generar sólo en tiempo de compilación, por lo que en el proceso de desarrollo, de hecho, una gran cantidad de código falta realmente.

Utilizar una gran cantidad de Lombok en el código, ha llevado a la legibilidad del código será mucho menor, sino también traer algunos problemas a la depuración de código.

Por ejemplo, queremos saber a los métodos getter propiedad de una clase se referencian qué tipo de cosas, no es tan simple.

  • pozo

Debido a Lombok desarrollo de código hacen muy fácil, lo que hace parte de los desarrolladores a su dependencia excesiva.

Lombok proceso funcionando, si el principio subyacente para todo tipo de anotaciones no entienden las palabras, es fácil de producir resultados inesperados.

Para poner un ejemplo sencillo, sabemos que cuando usamos @Data una definición de clase, ayudará a generar automáticamente método equals ().

Pero si sólo @Data, sin necesidad de utilizar @EqualsAndHashCode (callSuper = true), entonces por defecto es @EqualsAndHashCode (callSuper = false), esta vez generados los iguales () método compara únicamente la subclase de la propiedad, no se considerará , independientemente de los padres acceso a la propiedad de clase está abierta a partir de los atributos de clase hereda de los padres.

Esto puede obtener resultados inesperados.

  • Afectar a la actualización

Debido a que el código para Lombok tiene una fuerte invasivo, puede llevar a un problema más grande que nos afecta actualizar el JDK.

Hoy en día, de acuerdo con la frecuencia de la JDK actualización cada seis meses se lanzará una nueva versión, pero Lombok como una herramienta de terceros, y es mantenido por el equipo de código abierto, no se garantiza su velocidad de iteración.

Por lo tanto, si hay que actualizar a una nueva versión del JDK tiempo, si una de las propiedades que no son compatibles en Lombok con palabras se verá afectada.

  • Puede traer un problema, es decir, Lombok propia actualización será limitado.

Debido a que una aplicación puede depender de un número de paquete frasco, y cada paquete frasco puede tener que depender de diferentes versiones de Lombok, lo que llevó a las necesidades de las aplicaciones que se harán en la versión de arbitraje, y sabemos, versiones de los paquetes tarro de arbitraje no es tan fácil, y la probabilidad de la ocurrencia del problema también es alta.

  • encapsulación destrucción

Más de unas pocas preguntas, creo que hay maneras que hay que evitar. Sin embargo, algunas personas utilizan la exclusión hay otra razón importante Lombok, es decir, que va a destruir la encapsulación.

Como todos sabemos, tres características principales de Java incluyen la encapsulación, herencia y polimorfismo.

Si utilizamos Lombok directamente desde el código, entonces él le ayudará a generar automáticamente captador, métodos setter, lo que significa que todos los parámetros están en una clase proporciona automáticamente los métodos de configuración y lectura.

Como un simple ejemplo, definimos una clase carrito de compras:
Aquí Insertar imagen Descripción
Sabemos que hay una relación entre el carro delante del número de productos, detalles y el precio total de los tres, si es necesario modificar las palabras deben ser modificados juntos.

Sin embargo, utilizamos notas @Data en Lombok, y por itemsCount TotalPrice estas dos propiedades. A pesar de que los definen como de tipo privado, sino que proporciona un captador pública, métodos setter.

cambio externo los valores de estas dos propiedades por el método opcionalmente setter. Podemos llamar a los métodos setter arbitrarias volver a configurar itemsCount, TotalPrice valor de la propiedad, que puede conducir a la incompatibilidad con los artículos cuyo valor de la propiedad.

Y el paquete orientado a objetos se define: por el control de acceso, ocultar datos internos, interfaz externa para acceder sólo a una clase limitada proporcionados mediante la modificación de los datos internos. Por lo tanto, el método de exposición de la moda no debe ser expuesto a una clara violación de las características orientadas a objetos del paquete.

La buena práctica no debe proporcionar captador / definidor, pero sólo para proporcionar un método público addItem, así como para modificar itemsCount, artículos TotalPrice así como tres propiedades.

resumen

Este documento resume las ventajas y desventajas de las herramientas de desarrollo Java utilizadas comúnmente en Lombok.

La ventaja de usar anotaciones para ayudar a generar código automáticamente, reduciendo considerablemente la cantidad de código, el código es muy simple.

Pero eso no significa que el uso de Lombok sin ningún problema, el uso de Lombok en el proceso, no puede ser hostil a sus compañeros de equipo, código hostil, depuración, actualización hostiles hostiles y otras cuestiones.

Lo más importante, el uso de Lombok también conducen a problemas de encapsulación de la destrucción.

Aunque Lombok hay una gran cantidad de conveniencia, pero también trajo algunos problemas.

Pero en la construcción final no se recomienda su uso en el desarrollo diario, en realidad mantener una actitud neutral, no recomendamos el exceso de confianza no le pide que no tiene que completar.

Publicado 24 artículos originales · ganado elogios 1 · visitas 508

Supongo que te gusta

Origin blog.csdn.net/Mr_YXX/article/details/104638736
Recomendado
Clasificación