@Deprecated gibi deneysel veya eksik API'ler nasıl belgelenir?


12

Bir yöntem veya API'nin kod tabanında olduğu, ancak uygulamasının tamamlanmadığı veya büyük olasılıkla değişeceği için kullanılmaması gerektiği anlamına gelen "kullanımdan kaldırma" ifadesinden farklı ancak iyi bir terim var mı? (Evet, biliyorum, bu yöntemler herkese açık olmamalı, yada yada yada. Durumumu yaratmadım, sadece en iyisini yapmaya çalışıyorum.)

İnsanlar ne önerir? Deneysel, Eksik, başka bir şey?

Hala akıta olan bu API için javadoc belgeleri oluşturuyorsanız, @deprecated etiketini kullanmalı mıyım yoksa daha iyi bir kural var mı? @Deprecated bana göre bu API'nın eski olduğunu ve daha yeni bir tercih edilen mekanizmanın mevcut olduğunu ima ediyor. Benim durumumda, alternatif yok, ancak API'deki bazı yöntemler bitmedi ve bu yüzden kullanılmamalıdır. Bu noktada onları özel yapamıyorum, ancak dokümanlara net uyarılar koymak istiyorum.


Bir "Kararsız" etiketi de yararlı olacaktır. Anlamı farklı bir şey olurdu. Diyerek şöyle devam etti: "Bunun iyi çalışması gerekiyor, ancak gelecekte bazı değişiklikler yapabiliriz".
Borjab

Yanıtlar:


8

Uygun terim büyük olasılıkla kuluçka makinesi , bu Google ve Apache tarafından kullanılan bir terimdir :

Yukarıda belirtilen projelere daha yakından bakarsanız, "deneysel" API'lerin (örn. GWT'de) "özel" paket adlarına sahip olma eğiliminde olduğunu fark edebilirsiniz com.google.gwt.gen2. Bunun amacı, sürekli kamu tüketimine yönelik gelecekteki "kesinleşmiş" API'yi kirletmekten kaçınmaktır - çünkü,

"Elmaslar gibi herkese açık API'lar sonsuza dek. Doğru bir şansınız var, bu yüzden elinizden gelenin en iyisini yapın ..." (Joshua Bloch, İyi Bir API Nasıl Tasarlanır ve Neden Önemlidir )



10

Ben kullanacağı @deprecatedtamamen pratik nedenlerle.

Her ne kadar @deprecatedsen istediğini tam olarak ne anlama vermemektedir, bu önemli bir avantaja sahiptir: Java derleyicisi yerleşik bunun için destek. -deprecationBayrakla derlemek, kullanımdan kaldırılmış bir yöntemi geçersiz kıldığınız tüm yerleri bulmanıza olanak tanır ve kullanıcılarınızın şüpheli kodu çok hızlı bir şekilde bulmalarına yardımcı olur. @deprecatedBelgelerinizi okumak isteyen herkese neler olup bittiğini açıklamak için Javadoc etiketini kullanabilirsiniz . Bu, kullanıcıya API'nin deneysel olduğunu, kendi sorumluluğunda kullanılması gerektiğini söyleyebileceğiniz yerdir.


1
+1. Mükemmel nokta. Yerleşik bir desteğe sahip olmak, API'nın bu bölümleri için önemlidir ve kullanıcıları bu parçaların neden amortisman olarak işaretlendiğini anlamak için belgeleri görmeye teşvik eder.
Arseni Mourzenko

2
"* @Deprecated Bu bir deneysel API ve IDE ve dokümanlar yöntemi vurgulamak ve daha sonra kısa bir açıklama için almak için en azından değişmesi muhtemel" gibi bir eğilimi.
Michael Levy

Kullanımdan kaldırılanların çok fazla uyarı oluşturacağını unutmayın. Göründüğü kadar kötü olmayabilir. Deneysel özellikler konusunda uyarılmak uygun olabilir.
Borjab

3

Deneysel veya eksik özelliklerin herkese açık bir API'da hiçbir ilgisi olmadığından, diğer API'larda böyle bir şey görmedim.

Seçimleriniz olmadığından, API'nın bir bölümünün değişebileceğine dair açıkça görünür bir uyarı verin.


İyi. Örneğin: junit.org/apidocs/org/junit/experimental/package-summary.html Bu arada, paketi kullanmak çok kötü bir fikirdi. API kararsız hale geldiğinde, paketi değiştirmeniz gerekir, böylece tüm bağımlılıkları ihlal edersiniz. Bir java açıklaması çok daha iyi olurdu
Borjab
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.