En el pasado, utilizaba la forma estándar de agregar @Deprecated
anotaciones a los métodos API que se eliminarán en una versión posterior.
Ahora estoy preparando una versión principal para una biblioteca, con muchas partes de API eliminadas y renombradas.
Para facilitar la transición a los usuarios existentes, tal vez podría ser útil si la nueva versión de la biblioteca se puede utilizar junto con la versión anterior.
Ventajas
- Se puede implementar un cambio dinámico entre versiones
- las aplicaciones pueden retroceder a la versión anterior si se encuentran errores en la nueva versión (útil en la fase beta)
Para hacer esto, simplemente podría mover la nueva versión de la biblioteca a un nuevo paquete de com.mycompany.library
acom.mycompany.library.v2
¿Es esta una práctica común o hay otras recomendaciones para el uso en paralelo de las bibliotecas Java?
Antecedentes:
La biblioteca es un simple convertidor de documentos. Entonces, además de un método de conversión (entrada, salida), tiene muchas propiedades de configuración y algunos controladores de eventos. Si proporciono el uso en paralelo, los consumidores podrían instanciarlos y configurarlos dinámicamente:
if (useVersion2) {
com.mycompany.library.v2.Converter c = new com.mycompany.library.v2.Converter();
// configure and run
c.setOption(...);
c.convert(in, out);
} else {
com.mycompany.library.Converter c = new com.mycompany.library.Converter();
// configure and run
c.setOption(...);
c.convert(in, out);
}
(pregunta movida de /programming/37192945/ )
for a short time period
. Ambos sabemos lo que significa temporalmente en la ingeniería de software. No? ;-)@Deprecated
anotación a su código. Luego, en el lanzamiento, cuando las personas actualicen, verán que el código está en desuso y deberían cambiar. Después de eso, elimine el código todos juntos.