Czy istnieje dobry termin, który jest podobny, ale różni się od „przestarzałe”, co oznacza, że metoda lub interfejs API znajduje się w bazie kodu, ale nie należy go stosować, ponieważ jego implementacja nie jest kompletna lub prawdopodobnie ulegnie zmianie? (Tak, wiem, te metody nie powinny być publiczne, yada yada yada. Nie stworzyłem swojej sytuacji, po prostu staram się jak najlepiej wykorzystać.)
Co ludzie sugerują? Eksperymentalny, Nieukończony, coś jeszcze?
Jeśli tworzę dokumentację javadoc dla tego API, która wciąż się zmienia, czy powinienem używać tagu @deprecated, czy jest lepsza konwencja? Dla mnie @deprecated oznacza, że ten interfejs API jest stary i dostępny jest nowszy preferowany mechanizm. W mojej sytuacji nie ma alternatywy, ale niektóre metody interfejsu API nie są gotowe i dlatego nie należy ich używać. W tym momencie nie mogę uczynić ich prywatnymi, ale chciałbym umieścić wyraźne ostrzeżenia w dokumentacji.
źródło
Odpowiedzi:
Odpowiednim terminem jest najprawdopodobniej inkubator , ten jest używany przez Google i Apache:
google-web-tool-kit-incubator
Inkubator Apache
Jeśli przyjrzysz się bliżej projektom, o których mowa powyżej, możesz zauważyć, że „eksperymentalne” interfejsy API (np. W GWT) zwykle mają „dedykowane” nazwy pakietów, takie jak
com.google.gwt.gen2
. Ma to na celu uniknięcie zanieczyszczenia przyszłego „sfinalizowanego” interfejsu API przeznaczonego do stałego publicznego spożycia - ponieważ, wiesz,źródło
Korzystałbym
@deprecated
z czysto praktycznych powodów.Chociaż
@deprecated
nie przekazuje dokładnego znaczenia, jakie chciałbyś, ma on znaczącą zaletę: kompilator Java ma wbudowaną obsługę. Kompilacja z-deprecation
flagą pozwala znaleźć wszystkie miejsca, w których zastąpisz przestarzałą metodę, pomagając użytkownikom bardzo szybko znaleźć podejrzany kod. Możesz użyć@deprecated
tagu Javadoc, aby wyjaśnić, co tak naprawdę dzieje się każdemu, kto chce przeczytać twoją dokumentację. W tym miejscu możesz powiedzieć użytkownikowi, że interfejs API jest eksperymentalny, powinien być używany na własne ryzyko i tak dalej.źródło
Nigdy nie widziałem czegoś takiego w innych interfejsach API, ponieważ funkcje eksperymentalne lub niekompletne nie mają nic wspólnego z publicznym interfejsem API.
Ponieważ nie masz wyboru, po prostu umieść wyraźnie widoczne ostrzeżenie, że część interfejsu API może ulec zmianie.
źródło