Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

नए रेल्स कोडबेस में महारत हासिल करना: त्वरित नेविगेशन टिप्स

इस लेख का अनुवाद रूसी में किया गया है, लियोनिद सुस्चेव का धन्यवाद।

आपने अभी काम पर टीम बदली है, या अभी एक नई नौकरी शुरू की है। या आपको अपने पसंदीदा ओपन-सोर्स ऐप में एक बग मिला, और आप अपना पहला पुल रिक्वेस्ट लिखना चाहते हैं। लेकिन git clone करने और app/models खोलने के बाद, आप पूरी तरह से खो गए हैं। भले ही रेल्स संरचना वही है जिसकी आप आदत रखते हैं, कोड में अपना रास्ता ढूंढना असंभव है। तो इस नए, अपरिचित रेल्स ऐप को सीखने का सबसे तेज़ तरीका क्या है?

एक प्रोजेक्ट शब्दावली बनाएं

Player क्या है, और Session क्या है? Account बनाम User बनाम Provider के बारे में क्या?

हर ऐप अलग-अलग शब्दों और अलग-अलग रूपकों का उपयोग करता है। और यदि आप किसी ऐप की शब्दावली नहीं समझते हैं, तो आप हर बार एक नया क्लास नाम देखने पर app/models ब्राउज़ करने में समय बर्बाद करेंगे। या इससे भी बदतर, आप इस बारे में गलत धारणाएं बनाएंगे कि फीचर्स कैसे काम करते हैं।

तो, सबसे पहले आपको उस शब्दावली का निर्माण करना होगा। जानें कि यह ऐप किससे बना है। और यदि आप इसे जल्दी से करना चाहते हैं, तो db/schema.rb पढ़कर शुरू करें। आप उन शब्दों को सीखेंगे जिनका ऐप उपयोग करता है, और इसका सारा डेटा कैसे एक साथ फिट होता है। *_id कॉलम पर विशेष ध्यान दें, ताकि आप देख सकें कि मॉडल एक-दूसरे से कैसे जुड़ते हैं।

यदि आप अधिक विजुअल हैं, तो rails-erd जेम आज़माएं। यह आपके रेल्स मॉडल्स से एक डायग्राम उत्पन्न करता है, जो आपकी सभी टेबल्स और कॉलम्स और उनके इंटरैक्शन को दिखाता है। अपने डेस्क पर एक प्रिंटआउट रखें, और आपको अपने ऐप के बाकी हिस्से को समझने में आसानी होगी।

मॉडल्स और प्लेन रूबी ऑब्जेक्ट्स के साथ जारी रखें

एक अच्छी तरह से डिज़ाइन किए गए रेल्स ऐप में, सब कुछ डेटाबेस टेबल द्वारा समर्थित नहीं होगा। अपनी प्रोजेक्ट शब्दावली का निर्माण जारी रखने के लिए, app/models के अंदर उन अतिरिक्त क्लासेस और एट्रिब्यूट्स को देखें जो आपने db/schema.rb के अंदर नहीं देखे।

यहां अभी बहुत अधिक समय न बिताएं। चीजें कैसे काम करती हैं इसमें खो जाना आसान है। आप बस अपनी प्रोजेक्ट शब्दावली को पूरा करने के लिए यहां हैं।

जैसे-जैसे आप उन भागों के बारे में अधिक सीखते हैं जिनसे आपका ऐप बना है, आप आश्चर्यचकित हो सकते हैं कि क्यों कुछ ऑब्जेक्ट्स मौजूद हैं, या वे जिस तरह से एक साथ फिट हैं वैसा क्यों है। और यह अगले चरण का बिंदु है।

ऐप आज़माएं, और "क्यों" पता करें

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

जैसे-जैसे आप ऐप का उपयोग करते हैं, आप इसे उच्च स्तर से देखना शुरू कर देंगे। आप देखेंगे कि मॉडल्स के उन एसोसिएशन होने के कारण हैं। वे एक साथ क्यों ग्रुप किए गए हैं। वे क्लास नाम क्यों चुने गए थे। शायद वे सभी पेजों पर एक साथ दिखाई देते हैं, या एक ही फॉर्म से बनाए जाते हैं।

और जब आप उन भागों को समझना शुरू कर देते हैं जिनसे ऐप बना है और वे क्यों मौजूद हैं, तो आप यह पता लगाने के लिए तैयार हैं कि यह सब कैसे काम करता है।

"कैसे" का पता लगाएं

अब तक, आप ऐप को विस्तार से सीखने के लिए पर्याप्त जानते हैं। आप नए शब्दों और नई इंटरैक्शन से विचलित नहीं होंगे। आप एक चीज चुन सकते हैं जिसे आप सीखना चाहते हैं, और उसे पूरी तरह से फॉलो कर सकते हैं।

यहां से आगे बढ़ने के कई तरीके हैं। ये मेरे कुछ पसंदीदा हैं:

  • UI ब्राउज़ करें, और सोचें: यह फीचर कैसे बनाया जा सकता है, यह जानते हुए कि आप टुकड़ों के बारे में क्या जानते हैं? क्या आप अनुमान लगा सकते हैं? अपने अनुमान की पुष्टि करने के लिए डिबगर का उपयोग करें, या पता करें कि यह वास्तव में कैसे काम करता है।
  • एक टेस्ट केस चुनें और इसे पूरे ऐप में फॉलो करें। या तो कोड के माध्यम से पढ़ें, या डिबगर के साथ इसका पता लगाएं।
  • एक रूट या कंट्रोलर एक्शन चुनें। क्या आप UI से उस कंट्रोलर एक्शन तक पहुंचने का तरीका ढूंढ सकते हैं?

यह आपके मॉडल्स और प्लेन रूबी ऑब्जेक्ट्स के माध्यम से वापस जाने का भी अच्छा समय है। और इस बार, आप मॉडल्स कैसे काम करते हैं इसके विवरण में जा सकते हैं।

ऐप के बारे में जिज्ञासु बनें। अपने ज्ञान में अंतराल ढूंढें और उन्हें डिबगर और कोड के साथ भरें।

टेस्ट्स से क्यों न शुरू करें?

मैंने हमेशा लोगों को कहते सुना है, "यदि आप कोडबेस को समझना चाहते हैं, तो टेस्ट्स से शुरू करें! टेस्ट्स एक्ज़िक्यूटेबल डॉक्यूमेंटेशन हैं!"

लेकिन यह मेरे लिए कभी काम नहीं किया। टेस्ट केस बहुत संकीर्ण, बहुत विस्तृत हैं। यदि मैं टेस्ट्स से सीखता हूं, तो मुझे लगता है कि मैं ऐप के बड़े बिंदु को याद कर रहा हूं।

रेल्स ऐप जितनी बड़ी किसी चीज़ को समझने के लिए, या अधिकांश जेम्स के लिए, मुझे हमेशा पहले एक अवलोकन की आवश्यकता होती है। मुझे पता होना चाहिए कि ऐप को कौन से घटक बनाते हैं, और वे क्यों मौजूद हैं।

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

क्या, क्यों, कैसे

एक नए रेल्स ऐप को समझने के लिए, इन तीन चरणों को इस क्रम में पार करें:

  • क्या भाग इस ऐप को बनाते हैं?
  • क्यों वे भाग मौजूद हैं? उन्हें उस तरह एक साथ क्यों रखा गया है?
  • कैसे प्रत्येक टुकड़ा काम करता है?

यह आपको वह व्यापक दृष्टिकोण और संकीर्ण ज्ञान दोनों देगा जो आपको उस नए ऐप को अपना बनाने के लिए चाहिए।

पी.एस. मैं अगले सप्ताह प्रैक्टिसिंग रेल्स जारी कर रहा हूं। इसलिए यदि आप 25% अर्ली एक्सेस छूट चाहते हैं, तो आप जल्द ही ऑर्डर करना चाहेंगे!

  1. Ruby on Rails में महारत: इस सिद्ध फ्रेमवर्क के साथ शक्तिशाली वेब ऐप्स तेजी से बनाएं Ruby on Rails में महारत: इस सिद्ध फ्रेमवर्क के साथ शक्तिशाली वेब ऐप्स तेजी से बनाएं

    Ruby on Rails (कभी-कभी RoR) सबसे लोकप्रिय ओपन-सोर्स वेब एप्लिकेशन फ्रेमवर्क है। यह Ruby प्रोग्रामिंग भाषा के साथ बनाया गया है। आप सिंपल से लेकर कॉम्प्लेक्स तक एप्लिकेशन बनाने में मदद के लिए Rails का उपयोग कर सकते हैं, Rails के साथ आप जो हासिल कर सकते हैं उसकी कोई सीमा नहीं है! फ्रेमवर्क क्या है? फ्र

  1. Rails प्रदर्शन में महारत: अपने ऐप्स का निदान और त्वरण करने का सिद्ध दृष्टिकोण Rails प्रदर्शन में महारत: अपने ऐप्स का निदान और त्वरण करने का सिद्ध दृष्टिकोण

    क्या आपका Rails ऐप धीमा है? जब जो एक साधारण व्यू होना चाहिए उसे लोड होने में सेकंड लगते हैं, तो आपके पास खुदाई करने लायक समस्या है। आपके पास बहुत सारे डेटाबेस कॉल या कुछ धीमे मेथड हो सकते हैं। या शायद यह वह स्पीडअप लूप है जिसे किसी ने आपके कोड में डाला और भूल गया। आपको यह पता लगाने में मदद करने क

  1. स्काइप लाइट पेश: भारतीय उपयोगकर्ताओं के लिए निर्बाध संचार के लिए अनुकूलित स्काइप लाइट पेश: भारतीय उपयोगकर्ताओं के लिए निर्बाध संचार के लिए अनुकूलित

    बुधवार को मुंबई, भारत में अपने फ्यूचर डिकोडेड इवेंट में, माइक्रोसॉफ्ट के CEO सत्या नडेला ने इसका नया और सबसे हल्का ऐप स्काइप लाइट लॉन्च किया। ऐप को भारत में डिजाइन किया गया है और विशेष रूप से भारतीय उपयोगकर्ताओं के लिए पेश किया गया है। लोकप्रिय वीडियो कॉलिंग ऐप ने व्यावसायिक और व्यक्तिगत उपयोगकर्ताओ