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

मैंने अपना कोड ड्राई-एड किया और अब इसके साथ काम करना मुश्किल है। क्या हुआ?

"डोंट रिपीट योरसेल्फ" मेरे सॉफ्टवेयर डेवलपमेंट करियर के दौरान पढ़ी गई सबसे मूल्यवान पुस्तकों में से एक सबसे मूल्यवान विचार है। यदि आप डुप्लिकेट कोड को दूर कर सकते हैं, तो आप अधिक सामान्य, अधिक स्थिर कोड का उत्पादन करेंगे। जब आप अपना कोड DRY-ing शुरू करते हैं, हालांकि, आप कुछ समस्याओं में भाग लेना शुरू कर देंगे:कोड जो किनारे के मामलों को अच्छी तरह से संभाल नहीं पाता है, कोड जो बहुत सामान्यीकृत और पढ़ने में कठिन है, या कोड जिसे खोजना मुश्किल है। अगर DRYness की ओर रिफैक्टरिंग हर समय काम नहीं करती है, तो आपको कैसे पता चलेगा कि आपको कब रिफैक्टर करना चाहिए?

टू-ड्राई कोड इस गलतफहमी से आता है कि आपको किस तरह के दोहराव को दूर करने की कोशिश करनी चाहिए। आपको आवश्यक . के बीच अंतर पहचानने में सक्षम होना चाहिए दोहराव और आकस्मिक दोहराव।

अनिवार्य दोहराव वह कोड है जो उन समस्याओं के वर्ग को हल करता है जिन पर आप काम कर रहे हैं। यह उस तरह का दोहराव है जिसे आपको तुरंत मार देना चाहिए।

आकस्मिक दोहराव, हालांकि, दोहराव है जो हाथ में समस्या से असंबंधित है, "संयोग से दोहराव।" यदि आप आकस्मिक दोहराव को बहुत आक्रामक तरीके से साफ करते हैं, तो आप अधिक भंगुर कोड के साथ समाप्त हो जाएंगे, जिसे नए मामले जोड़े जाने के साथ-साथ अन-रिफैक्टर करना होगा।

लेकिन आप अंतर कैसे बता सकते हैं? अनुभव के साथ, आप इसमें बेहतर हो सकते हैं, लेकिन प्रोग्रामिंग के दशकों के बाद भी, मैं अभी भी आधा समय भी यह सही नहीं कर सकता। सौभाग्य से, एक सामान्य नियम है जो बहुत मदद करता है:थ्री स्ट्राइक और यू रिफैक्टर।

<ब्लॉकक्वॉट>

पहली बार जब आप कुछ करते हैं, तो आप बस करते हैं।

दूसरी बार जब आप कुछ ऐसा ही करते हैं, तो आप दोहराव पर हंसते हैं, लेकिन आप वैसे भी डुप्लिकेट काम करते हैं।

तीसरी बार जब आप कुछ ऐसा ही करते हैं, तो आप रिफ्लेक्टर करते हैं।

क्या आप देख सकते हैं कि यह क्यों मदद करता है? तीसरी बार तक, आपको यह देखना शुरू कर देना चाहिए कि पैटर्न कहाँ हैं। आपको इस बात का अंदाजा होना चाहिए कि आपकी समस्या को हल करने के लिए कौन सा डुप्लिकेट कोड आवश्यक है, और कौन सा कोड संयोग से एक जैसा दिखता है। आप केवल मौलिक रूप से कोड का सामान्यीकरण (और DRY up) करना शुरू कर सकते हैं आप जिस समस्या को हल करने का प्रयास कर रहे हैं, उसके सभी उदाहरणों में समान।

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

और अगली बार जब आपको लगे कि आपको कुछ कोड की नकल करनी है, तो रिफ्लेक्टर से पहले तीसरी कॉपी तक प्रतीक्षा करने का प्रयास करें। (यह वास्तव में कठिन है और भयानक लगता है, लेकिन अपनी आँखें बंद करें और इसे वैसे भी आज़माएँ)। फिर, इसके बारे में सोचें क्योंकि आप कोड को ड्राय करते हैं। यदि आप दूसरी प्रति लिखने के ठीक बाद रिफैक्टर करते हैं तो क्या आप अलग तरीके से रिफैक्टरिंग कर रहे हैं?


  1. फ़ायरवॉल क्या है और इसका उद्देश्य क्या है?

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

  1. विंडोज 10 मीट नाउ क्या है और इसे कैसे निकालें?

    क्या आपने हाल ही में Windows 10 संस्करण 20H2 में अपडेट किया है? आपने अपने सिस्टम ट्रे में एक नई सुविधा देखी होगी। अभी मिलें बटन ज़ूम करने के लिए विंडोज 10 का उत्तर है और इसका उद्देश्य सीधे वीडियो कॉन्फ़्रेंस में आसानी से आपकी सहायता करना है। यहां वह सब कुछ है जो आपको विंडोज 10 मीट नाउ के बारे में

  1. रुबोकॉप के साथ लाइनिंग और ऑटो-फॉर्मेटिंग रूबी कोड

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