"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > निम्न स्तरीय डिज़ाइन और ठोस सिद्धांत

निम्न स्तरीय डिज़ाइन और ठोस सिद्धांत

2024-11-03 को प्रकाशित
ब्राउज़ करें:181

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

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

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

पहला प्रश्न जो हमारे मन में आता है वह है:

निम्न-स्तरीय डिज़ाइन क्यों महत्वपूर्ण है?

  1. रखरखाव: एक सुविचारित डिज़ाइन कोड को बनाए रखना, विस्तारित करना और डीबग करना आसान बनाता है। ख़राब डिज़ाइन के कारण तकनीकी ऋण उत्पन्न होता है, जिससे भविष्य में परिवर्तन महँगे हो जाते हैं।
  2. स्केलेबिलिटी: अच्छा एलएलडी यह सुनिश्चित करता है कि आपका कोड स्केलेबल है, प्रदर्शन के मामले में और सिस्टम के विकसित होने पर नई सुविधाओं का समर्थन करने के मामले में।
  3. पुन: प्रयोज्यता: अच्छी तरह से डिज़ाइन किए गए घटकों का सिस्टम के विभिन्न हिस्सों में या पूरी तरह से अलग परियोजनाओं में पुन: उपयोग किया जा सकता है।
  4. स्पष्टता: एक अच्छी तरह से परिभाषित डिजाइन के साथ, इंजीनियर समझ सकते हैं कि सिस्टम के विभिन्न हिस्से एक साथ कैसे फिट होते हैं, जिससे सहयोग आसान हो जाता है।

एलएलडी अवधारणाओं और वास्तविक कोड के बीच अंतर को पाटने के लिए, आइए निम्नलिखित चरणों के माध्यम से निम्न-स्तरीय आरेख डिजाइन करने की प्रक्रिया को तोड़ें:

चरण 1:वस्तु उन्मुखी सिद्धांत
चरण 2:ठोस सिद्धांत
चरण 3:डिज़ाइन पैटर्न

वस्तु उन्मुख सिद्धांत

Low level design and SOLID Principles
निम्न-स्तरीय डिज़ाइनिंग सीखना शुरू करने के लिए ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग अवधारणा के 4 स्तंभ आवश्यक हैं। मैंने इस अवधारणा को संक्षिप्त चेकआउट ब्लॉग में पहले ही कवर कर लिया है

ठोस सिद्धांत

Low level design and SOLID Principles

एस: एकल उत्तरदायित्व सिद्धांत (एसआरपी)

  • कोड की प्रत्येक इकाई की केवल एक जिम्मेदारी होनी चाहिए।
  • एक इकाई एक वर्ग, मॉड्यूल, फ़ंक्शन या घटक हो सकती है।
  • कोड को मॉड्यूलर रखता है और टाइट कपलिंग को कम करता है।

उदाहरण: एक ऐसे वर्ग की कल्पना करें जो उपयोगकर्ता प्रमाणीकरण और लॉगिंग दोनों को संभालता है। यदि हमें यह बदलने की आवश्यकता है कि लॉगिंग कैसे काम करती है, तो हमें प्रमाणीकरण वर्ग को भी संशोधित करना होगा। यह एसआरपी का उल्लंघन है. इसके बजाय, हमारे पास दो अलग-अलग वर्ग होने चाहिए: एक उपयोगकर्ता प्रमाणीकरण के लिए और दूसरा लॉगिंग के लिए, इसलिए प्रत्येक वर्ग की एक ही जिम्मेदारी होती है।

ओ: खुला/बंद सिद्धांत (ओसीपी)

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

उदाहरण: एक भुगतान प्रसंस्करण प्रणाली पर विचार करें जो क्रेडिट कार्ड के माध्यम से भुगतान संभालती है। यदि आपको मौजूदा कोड को संशोधित करने के बजाय पेपैल के लिए समर्थन जोड़ने की आवश्यकता है, तो आपको पेपैल भुगतान के लिए एक नई कक्षा जोड़कर इसे विस्तारित करना चाहिए। यह सुनिश्चित करता है कि नई कार्यक्षमता जोड़ने की अनुमति देते हुए मौजूदा सिस्टम स्थिर बना रहे।

एल: लिस्कोव प्रतिस्थापन सिद्धांत (एलएसपी)

  • उपवर्गों को उनके आधार वर्गों के लिए प्रतिस्थापित किया जाना चाहिए।
  • बेस क्लास में कार्यक्षमता सभी उपवर्गों द्वारा प्रयोग करने योग्य होनी चाहिए।
  • यदि कोई उपवर्ग बेस क्लास कार्यक्षमता का उपयोग नहीं कर सकता है, तो उसे बेस क्लास में नहीं होना चाहिए।

उदाहरण: यदि हमारे पास एक पक्षी वर्ग है जिसमें एक विधि फ्लाई() है, और हम एक उपवर्ग पेंगुइन बनाते हैं, जो उड़ नहीं सकता है, तो यह एलएसपी का उल्लंघन करता है। पेंगुइन वर्ग को फ्लाई() इनहेरिट नहीं करना चाहिए क्योंकि यह अपेक्षित व्यवहार को बदल देता है। इसके बजाय, उन पक्षियों को संभालने के लिए पक्षी वर्ग को दोबारा तैयार किया जाना चाहिए जो अलग ढंग से उड़ सकते हैं और नहीं भी।

I: इंटरफ़ेस पृथक्करण सिद्धांत (आईएसपी)

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

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

डी: निर्भरता व्युत्क्रम सिद्धांत (डीआईपी)

    अमूर्त पर निर्भर करें, ठोस वर्गों पर नहीं।
  • सिस्टम के हिस्सों के बीच निर्भरता को कम करने के लिए अमूर्त का उपयोग करें।
  • इंटरफ़ेस या एब्स्ट्रैक्शन का उपयोग करने वाली कोड इकाइयों के बीच सीधे कॉल से बचें।
उदाहरण: ई-कॉमर्स एप्लिकेशन में, यदि चेकआउट प्रक्रिया (उच्च-स्तरीय मॉड्यूल) सीधे पेपैल (निम्न-स्तरीय मॉड्यूल) जैसे विशिष्ट भुगतान गेटवे पर निर्भर करती है, तो भुगतान गेटवे को बदलने के लिए चेकआउट प्रक्रिया को संशोधित करने की आवश्यकता होती है। पेमेंटप्रोसेसर इंटरफ़ेस जैसे एक अमूर्त को पेश करके, चेकआउट प्रक्रिया पेपैल या किसी अन्य सेवा की विशिष्टताओं को जानने की आवश्यकता के बिना किसी भी भुगतान विधि के साथ काम कर सकती है।

डिज़ाइन पैटर्न

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

डिज़ाइन पैटर्न को तीन प्रकारों में वर्गीकृत किया जा सकता है:

  1. रचनात्मक पैटर्न: वस्तु निर्माण से निपटें

      फ़ैक्टरी डिज़ाइन पैटर्न
    • सार फ़ैक्टरी डिज़ाइन पैटर्न
    • बिल्डर डिज़ाइन पैटर्न
    • प्रोटोटाइप डिज़ाइन पैटर्न
    • सिंगलटन डिज़ाइन पैटर्न
  2. संरचनात्मक पैटर्न: वस्तु संरचना और संबंधों से निपटें

      एडाप्टर पैटर्न
    • ब्रिज पैटर्न
    • समग्र पैटर्न
    • डेकोरेटर पैटर्न
    • मुखौटा पैटर्न
    • फ्लाईवेट पैटर्न
    • प्रॉक्सी पैटर्न
  3. व्यवहार पैटर्न: वस्तु संपर्क और जिम्मेदारी से निपटें

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

यदि आप यहां तक ​​पहुंच गए हैं, तो लाइक ❤️ दबाना न भूलें और किसी भी प्रश्न या विचार के लिए नीचे टिप्पणी करना न भूलें। आपकी प्रतिक्रिया मेरे लिए बहुत मायने रखती है, और मुझे आपसे सुनना अच्छा लगेगा!

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/srishtikप्रसाद/low-level-design-and-solid-principles-4am9?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3