Pregunta

Mi proyecto está implementando lentamente anotaciones Java. La mitad de los desarrolladores - me incluyo - encontrar que hacer nada complejo con anotaciones parece añadir a nuestra carga de mantenimiento general. La otra mitad del equipo piensa que son rodillas de la abeja.

¿Cuál es su experiencia en el mundo real con equipos de desarrolladores ser capaz de mantener el código anotado?

¿Fue útil?

Solución

Me siento se rompe en dos usos de las anotaciones - anotaciones para proporcionar una 'descripción' de una clase frente a las anotaciones para proporcionar una 'dependencia' de la clase.

Estoy bien con un uso 'descripción' de anotaciones en la clase - que es algo que pertenece a la clase y la anotación ayuda a hacer una versión abreviada de que - anotaciones JPA se incluyen en esta.

Sin embargo, no me gusta mucho las anotaciones 'dependencia' - si usted está poniendo la dependencia directa de la clase - incluso si se determina en tiempo de ejecución de una anotación en lugar de en tiempo de compilación en la clase - no es que la ruptura de la inyección de dependencia? (Tal vez en el espíritu y no en regla ...)

Puede ser preferencia personal, pero como el archivo XML grande que contiene toda la información de dependencia de mi solicitud - Veo esto como 'configuración de la aplicación' en lugar de 'configuración de clases'. Yo prefiero buscar a través de la ubicación conocida de búsqueda a través de todas las clases de la aplicación.

Otros consejos

Mi experiencia personal es que, en promedio, que trata de anotaciones es mucho más fácil para la mayoría de los desarrolladores que se trata de su infierno de configuración XML estándar de Java. Por cosas como la APP y la primavera de pruebas que son absolutos salvavidas.

Lo bueno de anotaciones es que hacen su configuración en clases de auto-documentado. Ahora, en vez de tener que buscar a través de un enorme archivo XML para tratar de encontrar la manera de un marco está usando su clase, su class te dice.

Por lo general, el problema con los cambios de este tipo es que acostumbrarse a ellos simplemente lleva tiempo. La mayoría de las personas, incluyendo desarrolladores, se resisten al cambio. Recuerdo cuando empecé a trabajar con la primavera. Durante las primeras semanas me preguntaba por qué alguien podría soportar los dolores de cabeza asociados con ella. Luego, unas semanas más tarde, me preguntaba cómo que jamás había vivido sin él.

absolutamente amor anotaciones. Las uso de Hibernate / JPA, costura, JAXB .... todo lo que pueda. OMI no hay nada peor que tener que abrir un archivo XML sólo para averiguar cómo se maneja una clase.

A mis anotaciones oculares permiten una clase para hablar por sí mismo. También son anotaciones (con suerte) parte de su contenido IDE ayudar, mientras que con la configuración XML son por lo general por su cuenta.

Sin embargo, puede venir abajo a cómo las configuraciones XML y anotaciones se utilizan realmente en ninguna biblioteca en particular (como la mayoría ofrecen ambos), y qué tipo de anotación se utiliza. Me puedo imaginar que las anotaciones que definen algo que es construir-específica (por ejemplo, rutas de archivos / URL.) En realidad puede ser más fácil ya que config XML.

Depende en gran medida del soporte IDE. Siento que las anotaciones deben mantenerse en sincronía con el código a través de cheques en el IDE, pero que el apoyo a esta es un poco deficiente.

por ejemplo. la versión anterior de IDEA advertiría si sustituimos una función sin @Override, pero no eliminaría la etiqueta @ Override si ha cambiado el método de la firma (o la firma de la superclase, para el caso) y se rompió la relación.

Sin el apoyo de los encuentro una manera engorrosa para añadir metadatos al código.

Personalmente, creo que el caso específico del uso que usted ha mencionado (formularios web de auto-generar) es un gran caso de uso para anotaciones. cualquier tipo de escenario "marco" en el que puede escribir código simplificado y dejar que el marco do la pesada (a menudo repetitivo) de elevación sobre la base de algunas sugerencias (también conocidos como anotaciones) es, creo, el caso de uso ideal para anotaciones.

Tengo curiosidad por qué No como anotaciones en esta situación, y lo que se tiene en cuenta que la "carga de mantenimiento"? (Y, no estoy tratando de insultar a su posición, simplemente entenderlo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top