2013-01-16 20 views
15

स्पष्ट रूप से यह डेवलपर्स पर निर्भर करता है कि कब हटाना है और कब निकालना है, लेकिन मुझे आश्चर्य है कि कैसे डेवलपर चेतावनी देते हैं कि जावास्क्रिप्ट फ़ंक्शन को बहिष्कृत किया गया है?जावास्क्रिप्ट पुस्तकालयों को बहिष्कृत एनोटेशन का उपयोग करना चाहिए?

अधिकतर भाषाओं (Java, C#, Python) कुछ रूपों में भाषा स्तर के बहिष्कार का समर्थन करते हैं।

हालांकि जावास्क्रिप्ट के लिए, मुझे कोई मानक तरीका नहीं मिल रहा है कि डेवलपर एक फ़ंक्शन को इंगित कर सकते हैं (कोड में)। सबसे अच्छा मैं कर सकता हूं (बड़ी संख्या में) रिलीज नोट्स का पालन करें।

उदाहरण के लिए, jQuery 1.8 से भरा स्रोत grepping से पता चलता न्यूनतम इनलाइन टिप्पणी:

# curl http://code.jquery.com/jquery-1.8.0.js | grep -i depre 
// jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode 
// *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 *** 
// Some plugins are using, but it's undocumented/deprecated and will be removed. 
// Deprecated 
// Limit scope pollution from any deprecated API 
// Deprecated, use jQuery.browser.webkit instead 

W3C और MDN एक मानक तरीका है या यह कैसे संभाल करने के लिए पर सुझाव प्रदान करने के लिए नहीं है।

जो मैंने पाया है वह जेएसडीओसी @deprecated टैग है।

क्या किसी को पता है कि जावास्क्रिप्ट एक बहिष्करण एनोटेशन है जिसे मैंने अनदेखा किया है? क्या ऐसा करने के लिए बेहतर या अधिक सामान्य तरीके हैं?

+3

'console.log ('यह फ़ंक्शन बहिष्कृत है।');' –

+0

@ फ्लोरियन मार्गन दिलचस्प, क्या आप इसे उत्तर के रूप में बना सकते हैं? क्या आप इस दृष्टिकोण का उपयोग कर किसी भी पुस्तकालय के बारे में जानते हैं? – hafichuk

+0

हां, jQuery माइग्रेट (1.8 -> 1.9 अपग्रेड के लिए) वह करता है। –

उत्तर

7

मूल रूप से किसी विधि/फ़ंक्शन को बहिष्कृत करने के लिए नहीं है। यह डेवलपर को बहिष्कृत सदस्यों को संभालता है।

केवल एक चीज जो मुझे लगता है वह करना संभव है कि बहिष्कृत कार्यों/विधियों को दस्तावेज करने में सबसे अच्छा प्रयास करना है, और स्रोत कोड दस्तावेज़ों के अंदर @deprecated टैग का उपयोग करना है।

फिर, कुछ कंपाइलर (Google क्लोजर कंपाइलर यह करता है, अगर मैं गलत नहीं हूं) और उन्नत आईडीई, संकलित स्रोत कोड को सत्यापित करने के लिए इस टैग का उपयोग कर सकता है और अगर कुछ बहिष्कृत फ़ंक्शन का उपयोग किया जाता है तो चेतावनियां निकालती हैं।

9
console.log('This function is deprecated.'); 

इस प्रकार jQuery माइग्रेट (1.8 -> 1.9 अपग्रेड के लिए) लोगों को उनके कोड को अपग्रेड करने में मदद करता है।

उनके wiki से:

डेवलपर्स की पहचान करने और संगतता मुद्दों को ठीक करने के लिए जब बड़े jQuery कोड पलायन करने के लिए, विकास (असंपीड़ित) प्लगइन का संस्करण सांत्वना चेतावनी संदेश जब भी अपनी कार्यक्षमता के किसी भी कहा जाता है उत्पन्न करता है। संदेशों को केवल एक अद्वितीय संदेश के लिए कंसोल पर एक बार दिखाई देता है।

+0

यह सुविधाओं को बहिष्कृत करने और पिछली संगतता प्रदान करने का एक बहुत ही दिलचस्प तरीका है (यदि मैं इसे सही ढंग से पढ़ता हूं)। तो वे मूल रूप से एक प्लगइन के रूप में बहिष्करण का इलाज कर रहे हैं। – hafichuk

+0

यह काम करता है, और मैंने इसका इस्तेमाल किया है। हालांकि, आपको इंटरनेट एक्सप्लोरर से सावधान रहना होगा। मैं IE8 में जानता हूं कि 'console.log (' foo ')' अपवाद का कारण बन जाएगा जब डेवलपर टूल खुले नहीं होते हैं। Https://stackoverflow.com/questions/690251/what-happened-to-console-log-in-ie8 – phylae

+0

'console.warn ('बहिष्कृत') के साथ बेहतर हो सकता है? –

संबंधित मुद्दे