2010-09-09 12 views
6

Welches ist der beste Weg, um Guava zu verwenden? Da auf der Website die Jungs sagen, dass die Schnittstellen Änderungen unterliegen, bis sie 1.0 veröffentlichen. Wenn Sie dies berücksichtigen, sollte der Code, den Sie schreiben, nicht direkt von diesen Schnittstellen abhängen. Umwickeln Sie also den gesamten Guava-Code, den Sie aufrufen, in eine Art Schicht oder Fassade in unseren Projekten, um dann, wenn sich diese Schnittstellen ändern haben diese Änderungen zumindest an einem Ort zentralisiert?Die beste Art Guava zu verwenden

Welches ist der beste Weg? Ich bin wirklich daran interessiert, es zu benutzen, aber ich habe diese Frage in meinen Gedanken hahah :)

Antwort

19

Ich bin mir nicht sicher, wo Sie das bekommen über die Schnittstellen, die Änderungen bis Version 1.0 unterliegen. Das galt auch für Google Collections, Guavas Vorgänger, aber das hat seine Version 1.0 und ist jetzt ein Teil von Guava. Darüber hinaus wird nichts, das Teil von Google Sammlungen war, so geändert, dass der Code beschädigt werden kann.

Guava selbst verwendet nicht einmal ein Release-System mit einem Konzept von "1.0". Es ist nur does releases, beschriftet "R05", "R06" und so weiter. Alle APIs in Guava werden effektiv eingefroren, es sei denn, sie sind mit der @Beta Annotation markiert. Wenn sich @Beta in einer Klasse oder in einer Schnittstelle befindet, können Änderungen in dieser Klasse vorgenommen werden. Wenn eine Klasse nicht mit Anmerkungen versehen ist, aber einige Methoden in der Klasse enthalten sind, können diese spezifischen Methoden geändert werden.

Beachten Sie, dass selbst mit den @Beta APIs die Funktionalität, die sie bereitstellen, sehr wahrscheinlich nicht vollständig entfernt wird ... höchstens werden sie wahrscheinlich nur ändern, wie diese Funktionalität bereitgestellt wird. Darüber hinaus glaube ich, dass sie die ursprüngliche Form einer @Beta API, die sie für 1 Release ändern, ablehnen, bevor sie vollständig entfernt wird. Dadurch erhalten Sie genügend Zeit, um zu sehen, dass sie geändert und auf die neue Form dieser API aktualisiert wird. @Beta bedeutet auch nicht, dass eine Klasse oder Methode nicht gut getestet oder für den Produktionseinsatz geeignet ist.

Schließlich sollte dies kein großes Problem sein, wenn Sie an einer Anwendung arbeiten, die Guava verwendet. Es sollte einfach genug sein, immer auf eine neue Version zu aktualisieren, wenn Sie nur hier und da Änderungen vornehmen, falls sich @Beta APIs geändert haben. Es sind Leute, die Bibliotheken schreiben, die Guava verwenden müssen, die @Beta APIs wirklich vermeiden müssen, da man eine Situation verursachen könnte, in der Sie nicht zu einer neueren Version von Guava in Ihrer Anwendung wechseln ODER eine andere Bibliothek verwenden können, die eine neuere Version verwendet weil es Code in der älteren Bibliothek brechen würde, die von einer geänderten/entfernten Beta-API abhängt.

+0

Chris, Vielen Dank für Ihre Antwort. Sie haben recht, ich habe gelesen, dass sich der Code bis Version 1.0 ändern kann, aber auf der Google-Collections-Site, nicht auf der Guava-Site. Ich stimme Ihnen zu, dass Sie die Verwendung der @ Beta-Anmerkung berücksichtigen. Danke noch einmal! Carlos. – Carlos

+5

Colin - Alter, Sie haben ernsthaft aufgepasst! Danke, dass Sie das mit ... radikaler Korrektheit beantwortet haben. –

+0

Ich frage mich wirklich, warum sie diese '@ Beta'-Annotation angesprochen haben. Da es sich nicht um einen "nicht endgültigen" Status handelt, verhält sich die Bibliothek wie jede andere Bibliothek, in der Sie Änderungen in neuen Versionen beachten müssen. Das ist die Natur neuer Versionen (ich weiß, dass du NIEMALS eine öffentliche Schnittstelle ändern solltest .... :-). – FrVaBe

Verwandte Themen