2010-09-09 6 views
6

Jaki jest najlepszy sposób, aby użyć guawy? Ponieważ na stronie internetowej faceci mówią, że interfejsy mogą ulec zmianie do czasu wydania wersji 1.0. Biorąc to pod uwagę, napisany kod nie powinien zależeć bezpośrednio od tych interfejsów, więc czy zawijasz cały kod Guava, który wywołujesz w jakiejś warstwie lub elewacji w naszych projektach, aby, jeśli te interfejsy się zmienią, przynajmniej te zmiany scentralizowane w jednym miejscu?Najlepszy sposób używania guawy

Jaki jest najlepszy sposób na wykonanie? Jestem naprawdę zainteresowany rozpoczęciem korzystania z niego, ale mam to pytanie uderzając w głowę hahah :)

Odpowiedz

19

Nie jestem pewien, skąd bierzesz to, że interfejsy mogą ulec zmianie do wersji 1.0. Tak było w przypadku Kolekcji Google, poprzednika Guavy, ale miało to wydanie 1.0 i jest teraz częścią Guava. Ponadto nic, co było częścią Kolekcji Google, nie zostanie zmienione w sposób mogący złamać kod.

Sam Guava nawet nie używa systemu wydania z pojęciem "1.0". To tylko does releases, oznaczone "r05", "r06" i tak dalej. Wszystkie interfejsy API w Guava są skutecznie zamrożone, chyba że są oznaczone adnotacją @Beta. Jeśli @Beta dotyczy klasy lub interfejsu, wszystko w tej klasie może ulec zmianie. Jeśli klasa nie jest z nią adnotowana, ale niektóre metody są w klasie, te specyficzne metody mogą ulec zmianie.

Należy pamiętać, że nawet w przypadku interfejsów API @Beta, zapewniona przez nie funkcja najprawdopodobniej nie zostanie całkowicie usunięta ... co najwyżej prawdopodobnie po prostu zmieni sposób dostarczania tej funkcji. Ponadto uważam, że wycofują oryginalną formę interfejsu API @Beta, którą zmienili na 1 wydanie, zanim całkowicie go usunęli, dając czas na sprawdzenie, czy została ona zmieniona i zaktualizowana do nowej wersji tego interfejsu API. @Beta również nie oznacza, że ​​klasa lub metoda nie jest dobrze przetestowana lub nadaje się do użytku produkcyjnego.

Wreszcie, nie powinno to stanowić problemu, jeśli pracujesz nad aplikacją , która wykorzystuje Guava. Uaktualnienie do nowej wersji powinno być łatwe, kiedy tylko wprowadzanie zmian tutaj i tam, jeśli zmieniły się interfejsy API @Beta, z których korzystasz. To ludzie piszący bibliotek używających Guava, którzy naprawdę muszą unikać używania interfejsów API @Beta, ponieważ przy użyciu jednego można stworzyć sytuację, w której nie można przełączyć się na nowszą wersję Guavy w aplikacji lub użyć innej biblioteki, która używa nowszej wersji ponieważ złamałoby to kod w starszej bibliotece, która zależy od zmienionego/usuniętego interfejsu API wersji beta.

+0

Chris, Dziękuję bardzo za odpowiedź. Masz rację, czytałem, że kod może ulec zmianie do wersji 1.0, ale do strony z kolekcjami google, a nie do strony guava. Zgadzam się z Państwem na odebranie użycia adnotacji @Beta. Dzięki jeszcze raz! Carlos. – Carlos

+5

Colin - koleś, poważnie zwracasz uwagę! Dziękuję za odpowiedź z ... radykalną poprawnością. –

+0

Naprawdę zastanawiam się, dlaczego wychowali tę adnotację "@ Beta". Ponieważ nie oznacza to statusu "nie ostateczny", biblioteka zachowuje się jak każda inna biblioteka, w której należy pamiętać o zmianach w nowych wersjach. Taka jest natura nowych wersji (wiem, że NIGDY NIGDY nie należy zmieniać publicznego interfejsu ... :-). – FrVaBe