2010-09-09 27 views
6

Qual è il modo migliore che si pensa di utilizzare Guava? Dal momento che, nel sito web, i ragazzi dicono che le interfacce sono soggette a modifiche fino al rilascio 1.0. Tenendo conto di ciò, il codice che scrivi non dovrebbe dipendere direttamente da quelle interfacce, quindi, stai avvolgendo tutto il codice Guava che chiami in qualche tipo di livello o facciata nei nostri progetti per, se tali interfacce cambiano, allora tu almeno i cambiamenti sono centralizzati in un posto?modo migliore per utilizzare Guava

Qual è il modo migliore per andare? Sono davvero interessato ad iniziare ad usarlo, ma ho questa domanda colpire la mia mente hahah :)

risposta

19

Non sono sicuro di dove stai ricevendo che sulle interfacce di essere soggette a modifiche fino alla versione 1.0. Questo era vero con Google Collections, il predecessore di Guava, ma che ha avuto la versione 1.0 ed è ora parte di Guava. Inoltre, nulla di ciò che faceva parte di Google Collections verrà modificato in modo da poter violare il codice.

Guava sé non ha nemmeno usare un sistema di rilascio con un concetto di "1,0". È solo does releases, con l'etichetta "r05", "r06" e così via. Tutte le API in Guava vengono effettivamente bloccate a meno che non siano contrassegnate con l'annotazione @Beta. Se @Beta è su una classe o un'interfaccia, qualsiasi cosa in quella classe è soggetta a modifiche. Se una classe non è annotata con esso, ma alcuni metodi nella classe sono, quei metodi specifici sono soggetti a modifiche.

Si noti che anche con le API @Beta, la funzionalità che forniscono molto probabilmente non verrà rimossa completamente ... al massimo probabilmente cambieranno semplicemente il modo in cui viene fornita tale funzionalità. Inoltre, credo che stanno deprecando la forma originale di qualsiasi @Beta API cambiano per 1 rilascio prima di rimuovere completamente, dandovi il tempo di vedere che è cambiato e aggiornare alla nuova forma di tale API. @Beta, inoltre, non significa che una classe o un metodo non siano ben testati o adatti per l'uso di produzione.

Infine, questo non dovrebbe essere un grosso problema se si sta lavorando a un'applicazione che utilizza Guava. Dovrebbe essere abbastanza facile aggiornare ad una nuova versione ogni volta, semplicemente apportando modifiche qua e là se sono state cambiate le API @Beta che stavi utilizzando. E 'gente che scrive librerie che utilizzano Guava che hanno davvero bisogno di evitare l'uso @Beta API, come l'utilizzo si potrebbe creare una situazione in cui non sei in grado di passare a una versione più recente di Guava nell'applicazione o utilizzare un'altra libreria che utilizza una versione più recente perché spezzerebbe il codice nella vecchia libreria che dipende da un'API beta modificata/rimossa.

+0

Chris, grazie mille per la risposta. Hai ragione, ho letto che il codice è soggetto a modifiche fino alla versione 1.0 ma nel sito di google-collections, non nel sito di guava. Sono d'accordo con voi per quanto riguarda l'utilizzo dell'annotazione @Beta. Grazie ancora! Carlos. – Carlos

+5

Colin - amico, hai prestato seria attenzione! Grazie per aver risposto con ... correttezza radicale. –

+0

Mi chiedo davvero perché hanno portato questa annotazione '@ Beta'. Poiché non indica uno stato 'non finale', la libreria si comporta come qualsiasi altra libreria in cui devi essere consapevole delle modifiche alle nuove versioni. Questa è la natura delle nuove versioni (so che non dovresti MAI MAI cambiare un'interfaccia pubblica .... :-). – FrVaBe

Problemi correlati