Nest.JS प्लेटोब्लॉकचेन डेटा इंटेलिजेंस के साथ एक स्वच्छ आर्किटेक्चर लागू करना। लंबवत खोज. ऐ.

Nest.JS के साथ क्लीन आर्किटेक्चर लागू करना

यह लेख उन उत्साही लोगों के लिए है जो स्वच्छ, स्केलेबल और अधिक महत्वपूर्ण रूप से रिफैक्टेबल कोड लिखने का प्रयास करते हैं। यह इस बारे में एक विचार देगा कि कैसे Nest.JS हमें स्वच्छ कोड लिखने में मदद कर सकता है और यह किस अंतर्निहित वास्तुकला का उपयोग करता है।

Nest.JS के साथ एक स्वच्छ वास्तुकला को लागू करने के लिए हमें पहले यह समझना होगा कि यह ढांचा क्या है और यह कैसे काम करता है।

Nest या Nest.JS टाइपस्क्रिप्ट के साथ निर्मित कुशल, स्केलेबल Node.js एप्लिकेशन (सर्वर-साइड) बनाने के लिए एक ढांचा है। यह एक्सप्रेस या फास्टिफाई का उपयोग करता है और डेवलपर्स को अपने कोड के भीतर पर्याप्त मात्रा में मॉड्यूल (तृतीय-पक्ष) का उपयोग करने में सक्षम बनाने के लिए अमूर्तता के स्तर की अनुमति देता है।

आइए इस स्वच्छ वास्तुकला के बारे में गहराई से जानें। 

ठीक है, आप सभी ने एमवीसी आर्किटेक्चर के बारे में सुना होगा या कम से कम सुना होगा। MVC का मतलब मॉडल, व्यू, कंट्रोलर है। इसके पीछे का विचार हमारी परियोजना संरचना को 3 अलग-अलग वर्गों में विभाजित करना है।

1। आदर्श: इसमें ऑब्जेक्ट फ़ाइल होगी जो डीबी में संबंध/दस्तावेजों के साथ मैप करती है।

2. नियंत्रक: यह अनुरोध हैंडलर है और व्यावसायिक तर्क कार्यान्वयन और सभी डेटा हेरफेर के लिए जिम्मेदार है।

3. देखें: इस भाग में वे फ़ाइलें होंगी जो डेटा प्रदर्शित करने से संबंधित हैं, या तो HTML फ़ाइलें या कुछ टेम्पलेट इंजन फ़ाइलें।

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

अभी भी उलझन में? मुझे विस्तार से समझाएं।

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

आइए इसे नीचे दिए गए डायग्राम से समझने की कोशिश करते हैं।

स्रोत: स्वच्छ वास्तुकला शंकु 

आप देख सकते हैं कि हमने अपनी वास्तुकला को 4 परतों में विभाजित किया है:

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

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

3. नियंत्रक / गेटवे: ये ऐसे चैनल हैं जो डिपेंडेंसी इंजेक्शन का उपयोग करके बाहरी उपकरणों और पुस्तकालयों का उपयोग करके उपयोग के मामलों को लागू करने में हमारी मदद करते हैं।

4. बाहरी उपकरण: हमारे तर्क को बनाने के लिए हमारे द्वारा उपयोग किए जाने वाले सभी उपकरण और पुस्तकालय इस परत के अंतर्गत आएंगे। ओआरएम, ईमेलर, एन्क्रिप्शन, आदि।

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

ठीक है, अब तक, आपको Nest.JS का सार समझ में आ गया है और आप समझ गए हैं कि स्वच्छ वास्तुकला कैसे काम करती है। अब सवाल यह उठता है कि ये दोनों कैसे संबंधित हैं?  

आइए समझने की कोशिश करें कि Nest.JS के 3 बिल्डिंग ब्लॉक्स क्या हैं और उनमें से प्रत्येक क्या करता है।

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

संक्षेप में,

  • हमारे पास नियंत्रक हैं जो इंटरफेस के रूप में कार्य करते हैं (स्वच्छ वास्तुकला की तीसरी परत)
  • हमारे पास ऐसे प्रदाता हैं जिन्हें कार्यक्षमता प्रदान करने के लिए इंजेक्ट किया जा सकता है (स्वच्छ वास्तुकला की चौथी परत: डीबी, डिवाइसेस, आदि)
  • हम अपने उपयोग के मामले (द्वितीय परत) को परिभाषित करने के लिए सेवाएं और भंडार भी बना सकते हैं
  • हम DB प्रदाताओं (पहली परत) का उपयोग करके अपनी संस्थाओं को परिभाषित कर सकते हैं

निष्कर्ष:

Nest.JS एक शक्तिशाली Node.JS ढांचा है और आज उपलब्ध सबसे प्रसिद्ध टाइपस्क्रिप्ट है। अब जब आप इस ढांचे के बारे में कम जानकारी प्राप्त कर चुके हैं, तो आप सोच रहे होंगे कि क्या हम इसका उपयोग स्वच्छ वास्तुकला के साथ एक परियोजना संरचना बनाने के लिए कर सकते हैं। अच्छा, तो जवाब हैं हां! बिल्कुल। कैसे? मैं इस लेख की अगली श्रृंखला में समझाऊंगा। 

तब तक, बने रहें!

के बारे में लेखक:

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

हमारा नवीनतम ब्लॉग पढ़ें: गोलंग-बीगो फ्रेमवर्क और इसके अनुप्रयोग

आपके इनबॉक्स में दिए गए ज्ञान के मूल्य

समय टिकट:

से अधिक मंत्र लैब्स