2010-09-09 30 views
6

¿Cuál es la mejor forma de usar la guayaba? Dado que, en el sitio web, los chicos dicen que las interfaces están sujetas a cambios hasta que lanzan 1.0. Teniendo esto en cuenta, el código que escriba no debe depender directamente de esas interfaces, entonces, ¿está ajustando todo el código Guava que llama en algún tipo de capa o fachada en nuestros proyectos para, si esas interfaces cambian, entonces usted al menos tener esos cambios centralizados en un solo lugar?La mejor manera de usar la guayaba

¿Cuál es la mejor manera de hacerlo? Estoy realmente interesado en comenzar a usarlo, pero tengo esa pregunta en mi mente jaja :)

Respuesta

19

No estoy seguro de dónde está eso sobre las interfaces que están sujetas a cambios hasta la versión 1.0. Eso fue cierto con Google Collections, el predecesor de Guava, pero que tuvo su versión 1.0 y ahora es parte de Guava. Además, nada de lo que formaba parte de Google Collections se modificará de forma tal que se pueda descifrar el código.

Guava ni siquiera utiliza un sistema de lanzamiento con un concepto de "1.0". Simplemente does releases, etiquetado "r05", "r06" y así sucesivamente. Todas las API en Guava se congelan efectivamente a menos que estén marcadas con la anotación @Beta. Si @Beta está en una clase o interfaz, cualquier cosa en esa clase está sujeta a cambios. Si una clase no está anotada con ella, pero algunos métodos en la clase son, esos métodos específicos están sujetos a cambios.

Tenga en cuenta que incluso con las API @Beta, es muy probable que la funcionalidad que proporcionan no se elimine por completo ... a lo sumo probablemente solo cambien cómo se proporciona esa funcionalidad. Además, creo que están desaprobando la forma original de cualquier API de @Beta que cambian para una versión antes de eliminarla por completo, lo que le da tiempo para ver que se ha modificado y actualizar a la nueva forma de esa API. @Beta tampoco significa que una clase o método no está bien probado o adecuado para el uso en producción.

Por último, esto no debería ser un gran problema si está trabajando en una aplicación que utiliza Guava. Debería ser fácil actualizar a una nueva versión cada vez, solo haciendo cambios aquí y allá si alguna de las API @Beta que estaba usando cambió. Son personas que escriben bibliotecas que usan Guava que realmente necesitan evitar el uso de las API @Beta, ya que usar uno podría crear una situación en la que no se puede cambiar a una versión más nueva de Guava en su aplicación O usar otra biblioteca que use una versión más nueva porque rompería el código en la biblioteca anterior que depende de una API beta modificada/eliminada.

+0

Chris, muchas gracias por su respuesta. Tiene razón, leí que el código está sujeto a cambios hasta la versión 1.0, pero en el sitio de colecciones de google, no en el sitio de guayaba. Estoy de acuerdo contigo en lo que respecta al uso de la anotación @Beta. ¡Gracias de nuevo! Carlos. – Carlos

+5

Colin - amigo, ¡has estado prestando atención seriamente! Gracias por responder a esto con ... corrección radical. –

+0

Realmente me pregunto por qué sacaron esta anotación '@ Beta'. Como no indica un estado "no final", la biblioteca se comporta como cualquier otra biblioteca donde debe tener en cuenta los cambios en las nuevas versiones. Esa es la naturaleza de las nuevas versiones (sé que NUNCA NUNCA DEBES cambiar una interfaz pública ... :-). – FrVaBe

Cuestiones relacionadas