रूबीक्रिटिक के साथ अपने रूबी कोड की गुणवत्ता बढ़ाएं:दृश्य विश्लेषण और निरंतर सुधार
<पी> रूबीक्रिटिक आपके रूबी एप्लिकेशन में कोड गंध, कोड संरचना, परीक्षण में आसानी और परीक्षण कवरेज को उजागर करने वाली दृश्य रिपोर्ट प्रदान करता है। <पी> यह सक्रिय विकास में है, नए कोड विश्लेषण उपकरण अक्सर नई सुविधाओं के रूप में पेश किए जाते हैं। रूबीक्रिटिक की रिलीज़ पर नज़र रखना उचित है। <पी> यह आलेख रूबीक्रिटिक के कुछ लाभों, इसकी निर्भरताओं और इसकी कोड रिपोर्ट को पढ़ने के तरीके पर चर्चा करेगा। <पी> चलिए आगे बढ़ते हैं! अपने रूबी ऑन रेल्स एप्लिकेशन के लिए रूबीक्रिटिक क्यों चुनें?
<पी> यदि आप अपने प्रोजेक्ट के लिए कोड सुधारों की समीक्षा के लिए एक ही स्थान चाहते हैं तो आपको रूबीक्रिटिक का उपयोग करने पर विचार करना चाहिए। रूबीक्रिटिक को अपनी विकास प्रक्रिया में शामिल करने से निश्चित रूप से विकास टीम द्वारा तकनीकी ऋणों पर काम करने में लगने वाले समय में कमी आएगी। अधिकांश तकनीकी ऋणों का भुगतान विकास के समय किया जाएगा। <पी> रूबीक्रिटिक आपके प्रोजेक्ट और विकास प्रक्रिया को जो कुछ लाभ प्रदान कर सकता है उनमें शामिल हैं: - एक ही स्थान पर एकीकृत जानकारी
- दृश्य रिपोर्ट
- आसान स्थापना
- शून्य कॉन्फ़िगरेशन
- अनुकूलन की अनुमति
- एक्स्टेंसिबल होने के कारण - आप अपना स्वयं का ओपन-सोर्स एकीकरण बना सकते हैं
- एक बैज जनरेटर 🎉
<पी> यह समझने के लिए कि रूबीक्रिटिक कैसे काम करता है, आइए रिपोर्ट बनाने के लिए उपयोग की जाने वाली आंतरिक निर्भरता को देखें। रूबीक्रिटिक में आंतरिक निर्भरता
<पी> जब आप रूबीक्रिटिक को अपने प्रोजेक्ट में जोड़ते हैं, तो कुछ निर्भरताएं भी शामिल हो जाएंगी। <पी> आइए उन निर्भरताओं पर प्रकाश डालें जो जादू को घटित करती हैं:रीक, फ्ले और फ्लॉग रत्न। ये निर्भरताएँ रूबीक्रिटिक को आपके कोड के बारे में बहुमूल्य जानकारी दिखाने की अनुमति देती हैं। यह समझना कि वे कैसे काम करते हैं, रूबीक्रिटिक का उपयोग करना भी आसान बनाता है। रीक:रूबी में कोड गंध का पता लगाएं
<पी> रूबी में कोड गंध का पता लगाने के लिए रीक एक रत्न है। कोड में खराब गंध गलत कोड की पहचान करने के बारे में नहीं है, यह विश्लेषण करने के बारे में है कि क्या कोड बेहतर लिखा जा सकता है। <पी> रीक का विश्लेषण यदि की पहचान करता है किसी चीज़ को दूसरे तरीके से कार्यान्वित किया जा सकता है। यह कैसे नहीं सुझाता , क्योंकि अधिकांश कोड गंध व्यावसायिक तर्क और किसी भाषा के साथ डेवलपर के अनुभव से जुड़े होते हैं। <पी> उदाहरण के लिए, आप आसानी से if को फिर से लिख सकते हैं मेटाप्रोग्रामिंग तकनीकों का उपयोग करते हुए कथन। हालाँकि, इसे ठीक करने का तरीका प्रोजेक्ट के संदर्भ के अनुसार डेवलपर पर निर्भर है। इस मामले में, कोई भी पुस्तकालय सर्वोत्तम समाधान का संकेत नहीं दे पाएगा। <पी> रीक गंधों की एक व्यापक सूची का पता लगाता है। यह संभावित गंधों की जांच और पहचान करता है: - कक्षाएं
- गुण
- तरीके
- पैरामीटर
- मॉड्यूल
- इटरेटर
- बहुरूपता का कार्यान्वयन
<पी> गंध ढूंढकर, आप अपने कोड को अधिक पठनीय और रखरखाव योग्य बनाने के लिए कदम उठा सकते हैं। <पी> रीक कस्टम कॉन्फ़िगरेशन की अनुमति देता है: - डिटेक्टर को उसके प्रकार के आधार पर अक्षम करें
- निर्देशिकाओं को स्कैन होने से रोकें
- चेतावनियों को शांत करने के लिए फ़िल्टर का उपयोग करें
<पी> आप स्कैन में दबाने के लिए विशिष्ट कोड को भी परिभाषित कर सकते हैं, यह एक बहुत ही उपयोगी सुविधा है जब कोड को अभी तक अंतिम रूप नहीं दिया गया है या फिर से तैयार नहीं किया गया है, या भले ही यह विरासती कोड हो। <पी> आइए एक नमूना देखें कि रीक कैसे काम करता है। इस कोड में, अपवाद को केवल e के रूप में परिभाषित किया गया है . <पी> यह कल्पना करना आसान है कि e इसका मतलब अपवाद है, लेकिन अगर हमारे पास अन्य अपवाद हों तो क्या होगा? उन्हें सही ढंग से पहचानना अच्छा कोड बनाए रखने का सबसे अच्छा तरीका है। <पी> रीक e की पहचान करेगा अनकम्यूनिकेटिववेरिएबलनेम के रूप में और एक चेतावनी दिखाएं। फ़्ले:रूबी कोड डुप्लिकेशन की जांच करें
<पी> फ़्ले संरचनात्मक रूबी कोड समानताओं की पहचान करता है, जिनमें शामिल हैं: - किसी प्रोजेक्ट के भीतर कोड दोहराव का पता लगाना
- किसी भी कोड स्तर पर अंतर की जाँच करना
- आपका कोड कितना अच्छा है यह मापने के लिए एक स्कोर जनरेट करना (आपका स्कोर जितना कम होगा, कोड उतना ही बेहतर होगा)
<पी> यदि फ़्ले आपके कोड में समानता की रिपोर्ट करता है, तो यह एक उच्च संकेतक है कि रीफैक्टरिंग की आवश्यकता है। इसे नज़रअंदाज़ न करें! डुप्लिकेट कोड बग्स का प्रवेश द्वार है। यदि आप एक स्थान पर कुछ ठीक करते हैं लेकिन दूसरे के बारे में भूल जाते हैं, तो अधिक बग दिखाई देते हैं। <पी> हम यह जांच सकते हैं कि फ़्ले इसे अपने स्रोत कोड में चलाकर कैसे काम करता है: <पी> फ़्ले इन दोनों के बीच समानता की पहचान करता है: <पी> ध्यान दें कि कोड की वर्तनी बिल्कुल एक जैसी नहीं है, लेकिन इसकी कार्यक्षमता दोहराव से बचने के लिए दोबारा बनाई जा सकती है। यह फ़्ले का जादू है! फ्लॉग:रूबी में अपने कोड की जटिलता की जांच करें
<पी> फ्लॉग जाँचता है कि आपके कोड का परीक्षण करना कितना कठिन है। यह कोड की प्रत्येक पंक्ति के लिए एक जटिलता स्कोर निर्धारित करता है और प्रत्येक विधि और वर्ग के लिए स्कोर का सारांश देता है। <पी> स्कोर जितना अधिक होगा, आपके कोड को उतना ही अधिक पुन:सक्रिय करने की आवश्यकता होगी क्योंकि यह दर्शाता है कि आपका कार्यान्वयन अत्यधिक जटिल है। <पी> आइए फ्लॉग को कार्रवाई में देखें! एक छोटे से बदलाव के कारण आपका स्कोर भिन्न हो सकता है। <पी> ध्यान दें कि कोड के पहले भाग में, हमारे पास एक or है जांचें कि स्कोर 0.4 अंक बढ़ जाता है। अन्य रूबीक्रिटिक निर्भरताएँ
<पी> रूबीक्रिटिक अन्य रनटाइम निर्भरताओं का भी उपयोग करता है, जैसे: byebug - यह रूबी अनुप्रयोगों की डिबगिंग को बढ़ाता है। यह आपको प्रोग्राम को लाइन दर लाइन चलाने, ब्रेकप्वाइंट जोड़ने और रनटाइम पर मूल्यों का मूल्यांकन और ट्रैक करने की अनुमति देता है। यदि आप अभी भी puts का उपयोग करते हैं डिबगिंग के लिए, अब समय आ गया है कि आप बायबग की विशेषताओं और कमांड को जानें।
rubocop - रूबी कोड के लिए एक लिंटर जो आपको रूबी समुदाय द्वारा उपयोग की जाने वाली स्टाइल गाइड का पालन करने में मदद करता है, या यहां तक कि अपनी खुद की कोड शैली लागू करने में भी मदद करता है। अपनी टीम में मानक निर्धारित करना और रिक्त स्थान और टैब के बारे में मूर्खतापूर्ण विवादों से बचना बहुत उपयोगी है।
SimpleCov - रूबी एप्लिकेशन कोड कवरेज की जांच करने के लिए एक उपकरण। आप इसे अपने परीक्षणों के साथ चलाने के लिए कॉन्फ़िगर कर सकते हैं। यह कोड कवरेज पर मेट्रिक्स प्रदान करता है ताकि आप पहचान सकें कि आपको किस पर ध्यान देने की आवश्यकता है और बेहतर परीक्षण मामले बनाने के लिए अपना समय कहां निवेश करना है।
<पी> रूबीक्रिटिक की निर्भरताओं की सूची में गोता लगाएँ। अपने रूबी ऑन रेल्स ऐप के लिए रूबीक्रिटिक का उपयोग करना
<पी> बिना अधिक कॉन्फ़िगरेशन के आरंभ करने में आपकी सहायता के लिए रूबीक्रिटिक के पास अच्छे दस्तावेज़ हैं। इसलिए, हम इसकी रिपोर्ट का विश्लेषण करने में मदद के लिए इसके संसाधनों का उपयोग करने पर ध्यान केंद्रित करेंगे। <पी> रूबीक्रिटिक 'कोड', 'गंध' और 'कवरेज' रिपोर्ट प्रदान करता है। हम इनमें से प्रत्येक विशेषता को बारी-बारी से देखेंगे। रूबीक्रिटिक में अवलोकन
<पी> 'अवलोकन' पृष्ठ रेटिंग के साथ डोनट चार्ट पर आपके प्रोजेक्ट का कुल स्कोर दिखाता है (ए सबसे अच्छी रेटिंग है, एफ सबसे खराब)। 'सारांश' अनुभाग प्रत्येक रेटिंग का विवरण दिखाता है, जिसमें फ़ाइलों की संख्या, मंथन (परिवर्तन), और मिली गंध शामिल हैं। <पी>
<पी> यहां 'मंथन बनाम जटिलता' अनुभाग में, सबसे बड़ी जटिलता वाले वर्ग की पहचान करना पहले से ही संभव है, जो संभवतः ध्यान का पहला बिंदु होना चाहिए। <पी> इस ग्राफ़ को बेहतर ढंग से समझने के लिए, कोड मंथन का पुनर्कथन करना उचित है। बार-बार बदलने वाला कोड चेतावनी दे सकता है कि कुछ गलत है - उदाहरण के लिए, शायद तर्क या व्यावसायिक क्षेत्र में। किसी भी तरह से, 'मंथन बनाम जटिलता' को देखने से आपको यह देखने में मदद मिल सकती है कि आपके प्रोजेक्ट में समस्याएँ कहाँ हैं। कोड रिपोर्ट
<पी> 'कोड' रिपोर्ट प्रत्येक वर्ग के लिए एक स्कोर दिखाती है, जिसमें मंथन, जटिलता, दोहराव और गंध के संकेतक शामिल हैं। <पी> उच्चतम रैंकिंग कारकों को देखने और सबसे महत्वपूर्ण मुद्दों को पहले संबोधित करने के लिए आप इस सूची को किसी भी कॉलम के अनुसार क्रमबद्ध कर सकते हैं। <पी>
<पी> इसके अलावा, इस सूची में एक फ़िल्टर है जो आपको कक्षा के नाम से शीघ्रता से खोजने की अनुमति देता है। <पी> कक्षा के नाम पर क्लिक करने से कक्षा कोड और मेट्रिक्स जैसे: के साथ एक विस्तृत पृष्ठ खुलेगा - कोड लाइन
- मात्रा विधियाँ
- परिकलित मंथन
- विधि द्वारा जटिलता
- जटिलता स्कोर (कुल प्रति कक्षा)
- मिले डुप्लिकेट की संख्या
- गंध की संख्या
<पी> कोड की वह पंक्ति जहां कोई समस्या पाई जाती है, उसे हाइलाइट किया जाएगा (रीक जेम द्वारा प्रदान की गई जानकारी के आधार पर)। <पी> यदि फ्लॉग किसी समस्या की पहचान करता है, तो आपको एक अंक दिखाई देगा। आप यह भी देखेंगे कि क्या फ़्ले रिपोर्ट ने किसी डुप्लिकेट कोड का पता लगाया है। <पी>
गंध रिपोर्ट
<पी> 'गंध' पृष्ठ गंध के प्रकार, सटीक स्थान जहां गंध दिखाई देती है, और ठीक स्थिति प्रदर्शित करता है। <पी> जैसा कि पहले उल्लेख किया गया है, गंध का पता रीक द्वारा लगाया जाता है, और सॉर्टिंग और फ़िल्टरिंग भी इस पृष्ठ पर उपलब्ध है। <पी> कक्षा के नाम पर क्लिक करने पर आपके कोड विवरण के साथ एक पेज खुलेगा। आप गंध प्रकार के आधार पर समूहीकृत कक्षाएं भी देख सकते हैं (यह 'कोड' पृष्ठ से गायब है, जो केवल गंध की संख्या प्रदर्शित करता है)। <पी>
कवरेज रिपोर्ट
<पी> अंत में, आप 'कवरेज' रिपोर्ट में वर्ग वर्गीकरण और प्रत्येक वर्ग के लिए कवरेज का प्रतिशत देख सकते हैं। 'कोड' और 'गंध' रिपोर्ट की सूचियों के विपरीत, 'कवरेज' की सूची जानकारी को क्रमबद्ध और फ़िल्टर करने की अनुमति नहीं देती है। <पी> आप केवल कोड कवरेज का प्रतिशत देख सकते हैं - कोई अतिरिक्त जानकारी उपलब्ध नहीं है। <पी>
<पी> SimpleCov रिपोर्ट को एकीकृत करने से इस पृष्ठ में अधिक मूल्य और उपयोगिता जुड़ सकती है। लेकिन किसी भी मामले में, यदि आपको अपने प्रोजेक्ट के परीक्षण कवरेज की जांच के लिए एक सरल रिपोर्ट की आवश्यकता है तो 'कवरेज' रिपोर्ट मदद कर सकती है। समाप्ति
<पी> इस पोस्ट में, हमने आपके रूबी एप्लिकेशन की आंतरिक निर्भरताओं:रीक, फ्ले और फ्लॉग में गोता लगाने से पहले रूबीक्रिटिक के लाभों पर संक्षेप में गौर किया। फिर हमने रूबीक्रिटिक की रिपोर्ट को पढ़ने और उसका विश्लेषण करने के तरीके के बारे में सोचा। <पी> अगले चरण के रूप में, जानें कि अपनी पाइपलाइन में रूबीक्रिटिक का उपयोग कैसे करें। <पी> हैप्पी कोड रीफैक्टरिंग! <पी> पी.एस. यदि आप प्रेस से हटते ही रूबी मैजिक पोस्ट पढ़ना चाहते हैं, तो हमारे रूबी मैजिक न्यूज़लेटर की सदस्यता लें और एक भी पोस्ट न चूकें! पी>
ब्रेना मोंटेइरो
<पी> अतिथि लेखिका ब्रेना एक टेक लीड हैं जो नए डेवलपर्स को सलाह देने के शौकीन हैं और उच्च प्रदर्शन करने वाली टीमों को विकसित करने और उनका नेतृत्व करने में अनुभवी हैं। उसके पास स्केलेबल एपीआई बनाने और क्लाउड सेवाओं के बीच एकीकरण का अनुभव है, वह विकासवादी वास्तुकला के बारे में उत्साही है, और एक विस्तारित वास्तविकता (एक्सआर) प्रशिक्षु है। <पी> ब्रेना मोंटेइरो द्वारा सभी लेख