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

मास्टर रूबी ऑन रेल्स लेनदेन:5 आवश्यक डिज़ाइन प्रथाएँ

<पी> डेटा अखंडता समस्याएँ रेल डेवलपर्स द्वारा सामना की जाने वाली सबसे आम डेटाबेस समस्याओं में से एक हैं। उचित सत्यापन की अनुमति देने के अलावा, सही ढंग से डिज़ाइन किए गए लेनदेन ब्लॉक यह सुनिश्चित करते हैं कि आपका डेटा आंशिक रूप से बनाया या अपडेट नहीं किया गया है।

<पी> हालाँकि, लेन-देन आपके एप्लिकेशन को नुकसान भी पहुंचा सकता है - या यहां तक कि आपके पूरे डेटाबेस को भी नष्ट कर सकता है - जब ठीक से डिज़ाइन नहीं किया गया हो।

<पी> यह आलेख लेन-देन के साथ काम करने के लिए अच्छी प्रथाओं का एक सेट प्रदान करता है। युक्तियाँ बहुत सरल हैं, लेकिन वे आपके लेनदेन को बुलेटप्रूफ, पठनीय और अपेक्षाकृत सुरक्षित बनाने में मदद करेंगी।

<पी> आइए गोता लगाएँ!

1. जब संभव हो तो रेल में बैंग विधियों का उपयोग करें

<पी> रेल में, ! के साथ विधि संस्करण आपको यह विश्वास दिला सकता है कि कुछ गलत होने पर एक त्रुटि सामने आएगी।

<पी> उदाहरण के लिए, #save विधि save! में भी मौजूद है संस्करण. यदि आप कोई त्रुटि उत्पन्न नहीं करना चाहते हैं तो आप नियंत्रक में इस संस्करण का उपयोग करना चाह सकते हैं:

 <पी> लेन-देन में उपरोक्त दृष्टिकोण अच्छा काम नहीं करेगा। save का उपयोग करके , त्रुटि सामने आने पर हम प्रक्रिया को वापस नहीं ले सकते। इसीलिए ! का उपयोग करना बहुत महत्वपूर्ण है विधियों का संस्करण:

 <पी> उपरोक्त में, यदि सदस्यता रिकॉर्ड नहीं बनाया गया है तो भी लेनदेन सफल होता है, और हम डेटाबेस में एक गड़बड़ डेटा संरचना के साथ समाप्त होते हैं।

<पी> यदि आप निम्न संस्करण का उपयोग करते हैं, तो ActiveRecord::RecordNotSaved के कारण लेनदेन वापस आ जाता है त्रुटि:

 

2. रेल लेनदेन में त्रुटियों को ठीक से संभालें

<पी> जब लेन-देन में त्रुटियों की बात आती है, तो कुछ नियम हैं जिनका आपको सम्मान करना चाहिए। इन नियमों का पालन करने से, आपके पास पढ़ने योग्य और अच्छी तरह से काम करने वाला कोड होगा जो अन्य डेवलपर्स के बीच भ्रम या अजीब व्यवहार पैदा नहीं करेगा जिसे डीबग करना मुश्किल है।

ActiveRecord::StatementInvalid से बचाव न करें

<पी> ActiveRecord::StatementInvalid यह एक विशेष त्रुटि है जो तब उत्पन्न होती है जब डेटाबेस स्तर पर कुछ गलत हो जाता है। इस त्रुटि से कभी बचाव न करें. डेटाबेस क्वेरी में कुछ गलत होने पर आपको हमेशा स्पष्ट रूप से सूचित किया जाना चाहिए।

<पी> निम्नलिखित कोड से बचें:

 

सही स्तर पर बचाव का उपयोग करें

<पी> यदि आप निम्न स्तर पर बचाव का उपयोग करते हैं, तो आप त्रुटि पकड़ लेंगे:

 <पी> लेन-देन वापस नहीं होता क्योंकि आपने त्रुटि पकड़ ली है। त्रुटि को उजागर होने दें और इसे लेनदेन ब्लॉक के बाहर पकड़ें:

 <पी> उपरोक्त दृष्टिकोण में, किसी त्रुटि की स्थिति में लेन-देन वापस हो जाता है, और आप त्रुटि पकड़ लेते हैं। लेन-देन व्यवहार को अधिलेखित किए बिना लेन-देन के अंदर उत्पन्न त्रुटियों को पकड़ने का यह सही तरीका है।

सामान्य त्रुटियाँ न पकड़ें

<पी> आपको StandardError जैसी सामान्य त्रुटियां पकड़ने से बचना चाहिए या ArgumentError . यह पठनीय और आसानी से परीक्षण योग्य कोड के लिए एक सामान्य नियम की तरह है, लेकिन यह उल्लेख के लायक है।

<पी> इन त्रुटियों को पकड़ने से डिबगिंग कठिन हो सकती है, क्योंकि कोड में अन्य स्थान त्रुटियाँ बढ़ा सकते हैं। यह आपके ऐप में कुछ गंभीर मुद्दों को शांत कर सकता है जो आवश्यक रूप से उस स्थान से संबंधित नहीं हैं जहां आप उन्हें बचाते हैं।

ActiveRecord की डिफ़ॉल्ट रोलबैक त्रुटि का बुद्धिमानी से उपयोग करें

<पी> ActiveRecord एक विशेष त्रुटि वर्ग प्रदान करता है जिसका उपयोग आप लेनदेन के अंदर साइलेंट रोलबैक करने के लिए कर सकते हैं। आप ActiveRecord::Rollback बढ़ाकर लेनदेन को वापस ले लें त्रुटि, लेकिन त्रुटि बाहर नहीं उठाई जाती, जैसा कि अन्य त्रुटियों के साथ होता है। इस व्यवहार को ध्यान में रखें और इसका बुद्धिमानी से उपयोग करें।

3. जानें कि रेल में लेनदेन का उपयोग करने से कब बचना चाहिए

<पी> किसी भी चीज़ की तरह, आपको अपने कोड में लेनदेन का अति प्रयोग नहीं करना चाहिए। उदाहरण के लिए, अपने लेन-देन में केवल एक क्वेरी लपेटना एक सामान्य गलती है। इसका कोई मतलब नहीं है क्योंकि, यदि क्वेरी सफल नहीं होती है, तो कुछ भी वापस करने की आवश्यकता नहीं है।

<पी> एक और आम गलती आपके डेटाबेस कॉल से असंबंधित कोड को लेनदेन में लपेटना है। आपको इस तरह के दृष्टिकोण से बचना चाहिए, क्योंकि जब तक ब्लॉक के अंदर का कोड निष्पादित नहीं होता तब तक लेन-देन कनेक्शन को रोके रखेगा। यदि संभव हो, तो ब्लॉक के अंदर कोड को केवल अपने डेटाबेस को कॉल करने तक सीमित करें।

4. लेन-देन के नुकसान को समझें

<पी> लेन-देन डेटाबेस के अंदर डेटा अखंडता बनाए रखने में मदद करते हैं, लेकिन आपको उनके नुकसान के बारे में भी पता होना चाहिए। उदाहरण के लिए, लेन-देन ब्लॉक में लिपटे प्रश्न एकल प्रश्नों की तुलना में अधिक डीबी संसाधन लेते हैं।

<पी> लेन-देन का उपयोग करने का एक और दोष यह है कि इससे कोड अधिक जटिल हो जाता है। गलत तरीके से उपयोग किए जाने पर लेन-देन आपके कोड को कम पढ़ने योग्य बना सकता है।

5. सही संदर्भ में ट्रांजेक्शन ब्लॉक का उपयोग करें

<पी> जब कोई वर्ग ActiveRecord से इनहेरिट करता है तो आप लेनदेन विधि का उपयोग कर सकते हैं कक्षा. इसका मतलब यह नहीं है कि आपके द्वारा उपयोग किया जाने वाला संस्करण कोई मायने नहीं रखता। हालाँकि यह कार्यात्मक दृष्टिकोण से कोई मायने नहीं रखता, लेकिन यह सुनिश्चित करने के मामले में यह मायने रखता है कि आपका कोड पढ़ने योग्य है।

<पी> तीन सामान्य संस्करण लेनदेन पद्धति का उपयोग करते हैं:

 <पी> जब आप कई मॉडलों का उपयोग करते हैं और किसी ब्लॉक के अंदर कक्षाओं के साथ इंस्टेंस विधि इनवोकेशन को मिलाते हैं, तो आपको ActiveRecord::Base.transaction का उपयोग करना चाहिए :

 <पी> यदि आप अधिकतर उस कोड से निपटते हैं जो किसी दिए गए मॉडल से संबंधित है, तो किसी वर्ग पर लेनदेन विधि लागू करें:

 <पी> जब आप किसी मॉडल इंस्टेंस पर काम करते हैं, तो इंस्टेंस स्तर पर लेनदेन विधि को लागू करना समझ में आता है:

 <पी> बेशक, ये नियम आधिकारिक नहीं हैं। वे कोड को अधिक पठनीय बनाने के लिए केवल सुझाव हैं।

अगले चरण:अपने रूबी ऑन रेल्स प्रोजेक्ट में लेनदेन की समीक्षा करें

<पी> मुझे आशा है कि आपको रूबी ऑन रेल्स में लेनदेन के साथ काम करने के लिए ये युक्तियाँ उपयोगी लगी होंगी।

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

<पी> हालाँकि, एक उचित त्रुटि प्रबंधन नीति न केवल लेनदेन का उपयोग करते समय फायदेमंद है - यह आपके पूरे कोडबेस में भी सुधार करेगी। अगली बार जब आप अपने कोड में कुछ त्रुटियाँ होने की उम्मीद करें तो इसे ध्यान में रखें।

<पी> अब त्रुटियों से बचने के लिए अपने रूबी ऑन रेल्स प्रोजेक्ट डिज़ाइन में लेनदेन की समीक्षा करने का एक उत्कृष्ट समय है। अपने एप्लिकेशन को अधिक स्थिर बनाने के लिए अपने डेटाबेस के साथ कुशल और विश्वसनीय संचार के लिए डिज़ाइन करें।

<पी> हैप्पी कोडिंग!

<पी> पी.एस. यदि आप प्रेस से हटते ही रूबी मैजिक पोस्ट पढ़ना चाहते हैं, तो हमारे रूबी मैजिक न्यूज़लेटर की सदस्यता लें और एक भी पोस्ट न चूकें! मास्टर रूबी ऑन रेल्स लेनदेन:5 आवश्यक डिज़ाइन प्रथाएँ

पावेल डाब्रॉस्की

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

<पी> पावेल डाब्रॉस्की

द्वारा सभी लेख
  1. GridLayoutManager के साथ RecyclerView का उपयोग करके सरल Android ग्रिड उदाहरण GridLayoutManager के साथ RecyclerView का उपयोग करके सरल Android ग्रिड उदाहरण

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

  1. Matplotlib में वक्र के लिए तार्किक रूप से छायांकन क्षेत्र बनाएं Matplotlib में वक्र के लिए तार्किक रूप से छायांकन क्षेत्र बनाएं

    Matplotlib में वक्र के लिए तार्किक रूप से छायांकन क्षेत्र बनाने के लिए, हम निम्नलिखित कदम उठा सकते हैं कदम फिगर साइज सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग को एडजस्ट करें। t, s1 Create बनाएं और s2 डेटा अंक numpy का उपयोग कर रहे हैं। एक आकृति और सबप्लॉट का एक सेट बनाएं। प्लॉट t और s

  1. Matplotlib में कॉन्टूरफ कैसे प्लॉट करें और कलर स्केल कैसे लॉग करें? Matplotlib में कॉन्टूरफ कैसे प्लॉट करें और कलर स्केल कैसे लॉग करें?

    Matplotlib में कंटूर और लॉग स्केल प्लॉट करने के लिए, हम निम्नलिखित कदम उठा सकते हैं - आकृति का आकार सेट करें और सबप्लॉट के बीच और आसपास पैडिंग समायोजित करें। चर प्रारंभ करें,N , नमूना डेटा की संख्या के लिए। बनाएं x, y, X, Y, Z1, Z2 और z डेटा अंक numpy का उपयोग कर रहे हैं। एक आकृति और सबप्लॉट का एक