javascript - ऑपर - जावास्क्रिप्ट सीखे




क्या जावास्क्रिप्ट में अप्रयुक्त तरीकों को हटाने के लिए एक उपकरण है? (6)

मैं सभी अप्रयुक्त तरीकों को हटाने के लिए और अधिक उचित स्तर तक आकार प्राप्त करना चाहूंगा।

उपलब्ध उपकरणों के एक जोड़े हैं:

npm install -g fixmyjs
fixmyjs <filename or folder>

एक विन्यास योग्य मॉड्यूल जो अप्रयुक्त कार्यों को ध्वजांकित करने के लिए JSHint ( Github , docs ) का उपयोग करता है और साथ ही सफाई भी करता है।

मुझे यकीन नहीं है कि यह उन्हें चिह्नित करने के लिए undefined कार्यों को हटा देता है। हालांकि यह सफाई के लिए एक महान उपकरण है, यह ECMAScript के बाद के संस्करणों (नीचे अधिक जानकारी) के साथ संगतता का अभाव प्रतीत होता है।

Google क्लोजर कंपाइलर भी है जो मृत जेएस को हटाने का दावा करता है लेकिन यह एक बिल्ड टूल से अधिक है।

अपडेट किया गया

यदि आप बैबेल जैसी किसी चीज़ का उपयोग कर रहे हैं, तो अपने टेक्स्ट एडिटर में ESLint जोड़ने पर विचार करें, जो अप्रयुक्त तरीकों और यहां तक ​​कि चर पर चेतावनी को ट्रिगर कर सकता है और कुछ त्रुटियों और शैली के मुद्दों को ऑटोफिक्सिंग के लिए एक - --fix CLI विकल्प है।

मुझे ESLint पसंद है क्योंकि इसमें वैकल्पिक लिबास के लिए कई प्लगइन्स शामिल हैं (जैसे रिएक्ट की चेतावनी अगर आप किसी प्रॉप को याद कर रहे हैं), तो आप अग्रिम में बग्स को पकड़ सकते हैं। उनके पास एक ठोस पारिस्थितिकी तंत्र है।

एक उदाहरण के रूप में: मेरे नोड्स प्रोजेक्ट्स पर, मेरे द्वारा उपयोग किया जाने वाला कॉन्फ़िगरेशन एयरबीएनबी स्टाइल गाइड से दूर है

मुझे एक 3rd पार्टी से जावास्क्रिप्ट फ़ाइलों का एक संग्रह मिला है, और मैं अधिक अप्रयुक्त स्तर तक आकार प्राप्त करने के लिए सभी अप्रयुक्त विधियों को निकालना चाहूंगा।

क्या किसी को ऐसे टूल के बारे में पता है जो जावास्क्रिप्ट के लिए ऐसा करता है? बहुत कम से कम अप्रयुक्त / उपयोग किए गए तरीकों की एक सूची दें, इसलिए मैं मैन्युअल रूप से ट्रिमिंग कर सकता हूं? इस YUI जावास्क्रिप्ट कंप्रेसर उपकरण की तरह कुछ चलाने के अलावा होगा ...

अन्यथा मेरा विचार मुझे ऐसा करने में मदद करने के प्रयास के लिए एक पर्ल स्क्रिप्ट लिखना है।


आपको एक पर्ल स्क्रिप्ट लिखनी होगी। ऊपर के नाय-कहने वालों की कोई सूचना नहीं।

ऐसा उपकरण पुस्तकालयों के साथ काम कर सकता है जो केवल फ़ंक्शन कॉल को स्पष्ट रूप से करने के लिए डिज़ाइन किए गए हैं। इसका मतलब यह है कि किसी भी प्रतिनिधि या कार्य के लिए संकेत की अनुमति नहीं होगी, जिसके उपयोग की स्थिति में किसी भी स्थिति में केवल "स्पैगेटी कोड" अपठनीय होता है और यह सर्वोत्तम अभ्यास नहीं है। यहां तक ​​कि अगर यह इन छिपे हुए कार्यों में से कुछ को हटाता है, तो आप सबसे अधिक खोज करेंगे यदि वे सभी परीक्षण में नहीं हैं। जिन्हें आप नहीं जानते हैं, वे इतनी बार उपयोग किए जाएंगे कि वे आपके समय को ठीक करने के लायक नहीं होंगे। पूर्णता के साथ जुनून नहीं है। लोग पागल हो जाते हैं कि कर।

इसलिए जावास्क्रिप्ट (और पुस्तकालयों) पर इस एक प्रतिबंध को लागू करने से पृष्ठ आकार में अविश्वसनीय कमी आएगी और इसलिए लोड समय और पठनीयता और स्थिरता का उल्लेख नहीं किया जाएगा। यह पहले से ही अप्रयुक्त सीएसएस को हटाने वाले टूल जैसे कि grunt_CSS और unCSS (देखें http://addyosmani.com/blog/removing-unused-css/ ) के लिए मामला है और जो मूल आकार के दसवें से नीचे विशिष्ट कटौती की रिपोर्ट करते हैं।

इसकी जीत / जीत की स्थिति है।

यह उल्लेखनीय है कि सभी व्याख्याकारों को इस मुद्दे को संबोधित करना होगा कि स्व संशोधित कोड को कैसे प्रबंधित किया जाए। मेरे जीवन के लिए मुझे समझ में नहीं आता है कि लोग अनर्गल स्वतंत्रता के साथ क्यों बने रहना चाहते हैं। जैसा कि जावास्क्रिप्ट कार्यों के ऊपर Triptych द्वारा नोट किया गया है, उन्हें उन तरीकों से कहा जा सकता है जो सचमुच "पागल" हैं। यह पागल व्यवहार्यता कोड और डेटा को अलग करने के मूल सिद्धांत को दूषित करती है, वास्तविक समय कोड इंजेक्शन को सक्षम करती है, और कोड अखंडता को बनाए रखने के किसी भी प्रयास को अमान्य करती है। परिणाम हमेशा अपठनीय कोड होता है जो डीबग करना असंभव है और जावास्क्रिप्ट पर दुष्प्रभाव - स्वचालित कोड प्री-ऑप्टिमाइज़ेशन और सत्यापन चलाने की क्षमता को हटाना - किसी भी संभावित लाभ से बहुत अधिक खराब है।

और - आपको अपने काम के बारे में बहुत असुरक्षित महसूस करना होगा, ताकि आप जानबूझकर इसे अपने कॉलेजियम और खुद दोनों से देख सकें। ब्राउज़र क्लाइंट जो बहुत अच्छी तरह से काम करते हैं, "कम अधिक है" दृष्टिकोण लेते हैं और मैंने आज तक जो सबसे अच्छा उदाहरण देखा है, वह SharePoint Access Servcies के साथ जोड़े गए एक्सेस वेब फॉर्म का Microsoft ऑफिस संयोजन है। सर्वव्यापी भारी कसकर प्रबंधित रनटाइम दुभाषिया क्लाइंट और उसके सर्वर साइड क्लोन होने की उत्पादकता बिल्कुल अभूतपूर्व है।

जावास्क्रिप्ट सेल्फ मॉडिफाइड कोड टेक्नॉलॉजीज का भविष्य उन्हें सम्मान देने के लिए लाइन में वापस ला रहा है ...

कोड और डेटा का KISS सिद्धांत: इसे अलग रखें, बेवकूफ।


नहीं, क्योंकि आप इस तरह से पागल तरीके से "उपयोग" कर सकते हैं।

obj[prompt("Gimme a method name.")]();

निम्नलिखित मदद करेगा:

  1. यदि आपके पास पूरी तरह से कवर किए गए मामले हैं, तो कोड कवरेज उपकरण जैसे कि इतनबुल ( https://github.com/gotwarlost/istanbul ) या nyc ( https://github.com/istanbuljs/nyc ) चलाने से अछूते कार्यों का संकेत मिल जाएगा ।

  2. कम से कम उपरोक्त कवर किए गए कार्यों को खोजने में मदद करेगा, जिसे आप अप्रयुक्त मान सकते हैं।


शायद यह सरलीकृत है, लेकिन मुझे यकीन है कि यह किसी भी पाठ संपादक में खोज फ़ंक्शन का उपयोग करना संभव होगा, और सभी फ़ंक्शन नामों को देखने के लिए, और क्या वे फ़ाइल में कहीं और मौजूद हैं, और केवल 1 पाए जाने पर उन्हें हटा दें ('फ़ंक्शन नाम')।


JSCoverage । कोड कवरेज आँकड़े उत्पन्न करता है जो यह दिखाते हैं कि कार्यक्रम की कौन सी लाइनें निष्पादित की गई हैं (और जो छूट गए हैं)।






javascript