JavaDoc में अस्वीकृत बनाम अस्वीकृत?


11

इसके लिए JavaDoc में X509Certificate getSubjectDN()कहा गया है:

निंदा , getSubjectX500Principal द्वारा प्रतिस्थापित ()।

मैं उन तरीकों के लिए डिप्रेस्ड को देखने के लिए उपयोग किया जाता हूं जिन्हें किसी भी लंबे समय तक उपयोग नहीं किया जाना चाहिए, लेकिन डेनिगेटेड नहीं। मुझे इस विशेष मामले के बारे में एक बग रिपोर्ट मिली जहां इसे टिप्पणी के साथ बंद किया गया था:

यह एक बग नहीं है। "पदावनत" का अर्थ केवल गंभीर मामलों में उपयोग किया जाना है।

जब हम एक विधि का उपयोग कर रहे हैं जो कि डीप्रेकेटेड है , तो सामान्य सुझाई गई कार्रवाई विधि का उपयोग करना बंद करना है।

तो जब एक विधि को डेनिगेटेड के रूप में चिह्नित किया जाता है तो सुझाई गई कार्रवाई क्या होती है ?


2
वाह। मैंने उत्तर पढ़ लिए हैं, और जब मुझे यकीन है कि वे तकनीकी रूप से सही हैं, तो 'अस्वीकृत' उपयोग करने के लिए एक भयानक शब्द है। उन्हें सिर्फ 'हतोत्साहित' किया जाना चाहिए था। कोड पर थूकने की आवश्यकता नहीं; एक चेतावनी पर्याप्त होगी।
एरिक किंग

@ एरिक किंग मैं थोड़े उसी तरह महसूस किया। मैं लाइनों के साथ और अधिक सोच रहा था कि अगर यह हतोत्साहित है तो बस इसे हटा दें।
जैकब स्कोन

जवाबों:


9

की मरियम वेबस्टर परिभाषा बदनाम पता चलता है:

1: की प्रतिष्ठा पर हमला करने के बदनाम <बदनाम एक के विरोधियों>
महत्व या की वैधता से इनकार करने के लिए:: 2 छोटा <बदनाम उनकी उपलब्धियों>

एक अन्य संबंधित बग में जो लिखा गया है, उसके आधार पर, मानहानि / बेला, जेवाडॉक्स - बग आईडी: 4959744 में इस्तेमाल किए गए शब्दों के इरादे से मेल खाती प्रतीत होती है : X509Certificate.getSubjectDN () और सह :

तरीकों getSubjectDN () और getIssuerDN () X509Certificate और getIssuerDN में () X509CRL में समस्याग्रस्त हैं । वे java.security.Principal इंटरफ़ेस को लागू करने वाले एक अनिर्दिष्ट वर्ग को लौटाते हैं, जिसमें बहुत ही ढीले विनिर्देश होते हैं।

क्योंकि getSubjectDN () और getIssuerDN () विधियों में कोई अतिरिक्त विनिर्देश मौजूद नहीं है, यह कार्यान्वयन के लिए एक मनमाना, कार्यान्वयन विशिष्ट वर्ग वापस करने के लिए अनुमत है। वास्तविक दुनिया के अनुभव से पता चला है कि यह मामला गैर-पोर्टेबिलिटी या कोड की अविश्वसनीयता के परिणामस्वरूप है। संगतता कारणों के लिए, उन विधियों के विनिर्देशों को नहीं बदला जा सकता है और उन्हें अप्राप्य माना जाना चाहिए।

रिप्लेसमेंट मेथड्स getSubjectX500Principal () & co जो एक अच्छी तरह से परिभाषित X500Principal क्लास का एक उदाहरण देता है JDK 1.4 में जोड़ा गया था। इस तरह की सभी समस्याओं से बचने के लिए उन तरीकों के कार्यान्वयन को तैयार किया गया है। हालाँकि, नए तरीके अंडरएक्स्पोज़र से पीड़ित हैं और प्रोग्रामर परिचित और अधिक सहज रूप से नाम के रूप में getSubjectDN () और सह तरीकों का उपयोग करना जारी रखते हैं।

इसे बदलने के लिए, पुराने getSubjectDN () और getIssuerDN () विधियों को पदावनत किया जाना चाहिए। यह सुनिश्चित करेगा कि इस पद्धति का उपयोग करने वाले डेवलपर्स को एक संकलन समय चेतावनी प्राप्त हो ...।

मूल्यांकन

... इस मामले में पदावनति को अनुचित माना गया। इसके बजाय, सावधान टिप्पणियाँ JavaDoc में जोड़ी गईं


तथ्य यह है कि बग आईडी 5008142 पढ़ने से आपको इस "बदनाम" सामान के बारे में उलझन में छोड़ दिया गया है जो डेवलपर की गलती की तरह दिखता है जो इससे निपटते हैं।

उन्हें बग 4959744 का पता लगाना चाहिए था और अस्पष्ट मूल्यांकन के बजाय "केवल गंभीर मामलों में उपयोग किए जाने का मतलब है" के बजाय अपने मूल्यांकन में इसका उल्लेख करना चाहिए। वे शायद डुप्लिकेट के रूप में भी बंद हो सकते हैं, औचित्य के साथ "डिप्रेसेशन माना जाता है, मूल्यांकन किया गया था और बग आईडी 4959744 प्रति प्रवास के पक्ष में खारिज कर दिया गया"

बहुत बहुत कम से कम वे उल्लेख कर सकते बग आईडी 4959744 (शायद के साथ पर 4,638,294 ) में संबंधित रिपोर्टें क्षेत्र (बुलाया भी देखें उनके बग ट्रैकर के पुराने bugs.sun.com iirc में)। यह नहीं किया गया है कि किसी को संदेह नहीं है कि उन्होंने संबंधित मुद्दों की खोज नहीं की है।


1
@FrustratedWithFormsDesigner सबसे कठिन हिस्सा यह देखने के लिए था कि "खोज" पृष्ठ पर "बदनाम" कैसे दर्ज किया जाए ताकि परिणाम "bugs.sun.com" पर फ़िल्टर हो सकें। बाकी काम आसान था, मैंने बस एक मुट्ठी खोज परिणाम की जाँच की जो पॉप अप हुआ। खोज करने के लिए "डेनिगेट" एक बहुत अच्छा शब्द है :)
gnat

1
देखें कि मैंने उस पहले को खोजने के लिए Google का उपयोग किया था, लेकिन इसने मुझे दूसरों को नहीं दिया। मुझे शायद कठिन दिखना चाहिए था। धन्यवाद
जैकब स्कोन

@ जोशोचेन मुझे लगता है कि यह आपकी गलती नहीं है; मैंने उस पर एक जवाब का विस्तार किया
gnat

4

कुछ और खुदाई के बाद मैं JDK में Deprecation नामक एक ब्लॉग पोस्ट खोजने में सक्षम था । यह मूल रूप से बताता है कि डिप्रेकेटेड के रूप में चिह्नित चीजें उपयोग करने के लिए हानिकारक मानी जाती हैं, और कुछ चीजें ऐसी हैं जिन्हें बस हतोत्साहित किया जाता है।

कई फ़ीचर रिलीज़ के लिए सामान्य नीति यह है कि कोर JDK घटकों को केवल तब ही चिह्नित किया जाता है जब वे सक्रिय रूप से हानिकारक होते हैं। यदि एक वर्ग या विधि का उपयोग करना केवल बीमार है, तो यह आमतौर पर पदावनत अंक अर्जित करने के लिए पर्याप्त नहीं है।

उन्होंने उल्लेख किया कि वर्तमान में उपयोग करने के लिए हतोत्साहित होने के रूप में एक आइटम को चिह्नित करने का एक तरीका है, लेकिन वे अंततः ऐसा करने का एक तरीका जोड़ सकते हैं।

कुछ बिंदु पर, इस तरह की सलाह को कम-हानिकारक-से-कम "अस्वीकृत" सुविधा के साथ जोड़ा जा सकता है जो इन कम हानिकारक तत्वों के उपयोग के लिए प्रोग्रामेटिक चेक की अनुमति देने के लिए jadadoc टैग और एनोटेशन के संयोजन पर आधारित है।

हालांकि मुझे कुछ और नहीं मिला खासतौर पर Denigrated शब्द का उपयोग करने के निर्णय के बारे में जो यह बहुत करीब लगता है। और इसके आधार पर ऐसा लगता है कि एक डेवलपर को जो कार्रवाई करनी चाहिए वह डिप्रेकेटेड के समान है , विधि का उपयोग न करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.