अनुक्रमणिका[लपवा][दाखवा]
मायक्रोसर्व्हिसेसच्या कल्पनेने अलीकडे बरेच लक्ष वेधले आहे आणि अनेक कंपन्या मोठ्या, मोनोलिथिक बॅकएंड्स दूर करण्यासाठी त्याचा वापर करत आहेत.
वेब अॅप्सच्या सर्व्हर-साइड तयार करण्याची ही वितरित पद्धत संशोधन आणि अंमलबजावणीच्या दृष्टीने कमी-अधिक प्रमाणात विश्वासार्ह असली तरीही, फ्रंटएंडसह समान मार्गाने जाणे हे अनेक व्यवसायांसाठी अजूनही आव्हान आहे.
त्याच्या जवळच्या अवलंबित्वामुळे, क्लायंट-साइड मोनोलिथ विशेषत: नवीन वैशिष्ट्ये एकत्रित करणे, नवीन तंत्रज्ञान स्वीकारणे आणि वैयक्तिक घटक मोजणे कठीण करते.
या आणि इतर आव्हानांमुळे फ्रंटएंड विकसकांना मायक्रो सर्व्हिसेसचा वापर करून तपास करण्यास प्रवृत्त केले आहे.
परिणामी, वेबसाइट्स आणि वेब-आधारित ऍप्लिकेशन्सचा फ्रंट-एंड लेयर तयार करण्यासाठी मायक्रो फ्रंटएंड म्हणून ओळखले जाणारे एक अगदी नवीन आर्किटेक्चरल धोरण विकसित केले गेले.
हा शब्द पहिल्यांदा 2016 मध्ये वापरला गेला आणि तेव्हापासून, एका चांगल्या कारणासाठी याने बरेच लक्ष वेधले आहे.
हा लेख मायक्रो फ्रंटएंड्स काय आहेत आणि ते कोणत्या समस्यांचे निराकरण करतात याबद्दल सामान्य समज देईल. ते कार्यरत आहे, तसेच साधक आणि बाधक.
मायक्रो फ्रंट-एंड आर्किटेक्चरचा परिचय
फ्रंट-एंड डेव्हलपमेंटची एक समकालीन पद्धत मायक्रो-फ्रंटएंड आर्किटेक्चरला विभाजित करते अ वेब अनुप्रयोग लहान, स्वतंत्र भागांमध्ये.
अंतिम वापरकर्त्यासाठी, हे भाग स्वतंत्रपणे बांधले गेले असले आणि नंतर एकत्र ठेवले असले तरीही ते एक युनिट असल्याचे दिसून येते.
मायक्रो फ्रंटएंड्स ऑनलाइन सोल्यूशन्सच्या सर्व्हरच्या बाजूने नव्हे तर क्लायंटच्या बाजूशी संबंधित आहेत या फरकासह, त्यांचे अंतर्निहित तर्क मायक्रोसर्व्हिसेस सारखेच आहे.
मायक्रो फ्रंटएंड दृष्टीकोन वापरताना अत्याधुनिक वेब-आधारित उत्पादने बनवणे सर्वात अर्थपूर्ण आहे.
मायक्रो फ्रंटएंड, अधिक पारंपारिक फ्रंट-एंड मोनोलिथच्या विरूद्ध, अनेक संघांना विविध सॉफ्टवेअर प्रकल्पांवर स्वतंत्रपणे सहयोग करण्यास सक्षम करतात.
या आर्किटेक्चरल डिझाईनचा वापर करून प्रोग्रामर वेब अॅप्स अधिक जलद आणि अधिक स्केलेबिलिटी आणि देखभालक्षमतेसह तयार करू शकतात.
सोप्या भाषेत सांगायचे तर, प्रत्येक मायक्रो फ्रंटएंड हा वेब पृष्ठाच्या एका विशिष्ट घटकासाठी कोडचा एक भाग असतो.
ही वैशिष्ट्ये स्वतंत्र संघांद्वारे नियंत्रित केली जातात, ज्यापैकी प्रत्येक विशिष्ट उद्योग किंवा उद्दिष्टात माहिर आहे.
मोनोलिथिक वि मायक्रोसर्व्हिसेस वि मायक्रो फ्रंटएंड आर्किटेक्चर
स्थलांतराचा विचार करा. प्रत्येक गोष्टीला अनेक छोट्या, निपुणतेने लेबल केलेल्या बॉक्समध्ये व्यवस्थापित करणे आणि प्रत्येकाला स्वतंत्रपणे स्थानांतरीत करणे किंवा संपूर्ण स्टाफला एका मोठ्या बॉक्समध्ये पॅक करणे आणि नवीन ठिकाणी नेणे सोपे होईल का?
स्पष्ट उपाय तेथे आहे.
हे साधर्म्य दोन भिन्न वेब अॅप आर्किटेक्चर्स, मोनोलिथ्स आणि मायक्रोसर्व्हिसेस (ज्याला मायक्रो फ्रंटएंड म्हणून देखील ओळखले जाते) यांची तुलना करते.
मोनोलिथिक आर्किटेक्चर
तुम्हाला कदाचित "चांगले जुने दिवस" आठवतील जेव्हा एक संपूर्ण अनुप्रयोग एकल, एकसंध अस्तित्व म्हणून तयार केला गेला. अशा पद्धतीला मोनोलिथ म्हणतात, जो मोठ्या दगडांच्या ब्लॉकसाठी जुना शब्द आहे.
याचा अर्थ होतो.
मोनोलिथिक प्रणालींमध्ये परस्परावलंबी घटक असतात. म्हणून, जर तुम्हाला काहीतरी सुधारित करायचे असेल किंवा नवीन वैशिष्ट्य जोडायचे असेल तर, संपूर्ण प्रणाली खंडित होण्याची शक्यता आहे.
जरी ते कालबाह्य झाले असले तरी ते अधूनमधून अस्तित्वात आहे. होय, आम्हाला तुमच्या वर्तमान अभिव्यक्तीची जाणीव आहे.
कोडबेसचे दोन वेगवेगळ्या घटकांमध्ये - फ्रंटएंड (क्लायंट-साइड) आणि बॅकएंड (सर्व्हर-साइड) - मध्ये वैचारिक विभागणी करणे अपरिहार्य झाले कारण नवीन तंत्रज्ञान विकसित झाले आणि सॉफ्टवेअर उत्पादने अधिक क्लिष्ट झाली.
शेवटचा वापरकर्ता ज्या प्रेझेंटेशन लेयरशी संवाद साधतो आणि पार्श्वभूमीत घडणारी प्रत्येक गोष्ट यामधील चिंतेचे पृथक्करण ही आता ऑपरेशनची सर्वात लोकप्रिय पद्धत आहे.
याला दोन सॉफ्टवेअर अभियांत्रिकी संघांची आवश्यकता आहे, ज्यात फ्रंट-एंड टीम व्हिज्युअल घटक तयार करते आणि बॅक-एंड टीम वेब सेवा, व्यवसाय तर्कशास्त्र, डेटा प्रवेश, एकत्रीकरण इ.
तथापि, हे विभक्त असूनही, ही रणनीती अजूनही निसर्गाने अखंड राहिली आहे.
मुख्य बदल असा आहे की आता आमच्याकडे कोडचे दोन मोठे ब्लॉक्स आहेत - फ्रंटएंड आणि बॅकएंड - एका प्रचंड ऍप्लिकेशनऐवजी. मोनोलिथिक वास्तुकला भयंकर असण्याची गरज नाही; त्यांना काही फायदे आहेत, यासह
- एकल स्त्रोत कोडबेस आणि अतिशय सोप्या डिझाइनसह लहान अनुप्रयोगांसाठी साधे आणि द्रुत विकास;
- चाचणी आणि डीबगिंग अतिशय सरळ आहेत कारण सर्व कोड एकाच ठिकाणी आहेत, ज्यामुळे टीमला विनंतीचा प्रवाह ट्रॅक करणे आणि बग ओळखणे सोपे होते;
- ऍप्लिकेशनच्या विकासाच्या सुरुवातीच्या काळात, खर्च स्वस्त असतात कारण नवीन वैशिष्ट्ये जोडल्या जाईपर्यंत पायाभूत सुविधा किंवा विकास खर्च दोन्हीही लागत नाहीत.
या रणनीतीचे तोटे यात दिसून येतात
- प्रतिबंधित उपयोजन लवचिकता – प्रकल्पावर काही मोजकेच काम करत असल्यास संघांनी प्रतीक्षा करावी आणि प्रत्येक वेळी तुम्ही कोड अपडेट करता तेव्हा नवीन उपयोजन आवश्यक असेल;
- नवीन तंत्रज्ञानाचा अवलंब करणे आव्हानात्मक आहे कारण असे केल्याने संपूर्ण प्रकल्प नाही तर एक महत्त्वपूर्ण भाग पुनर्लेखन आवश्यक आहे.
- जेव्हा विकसकांची संख्या वाढते, तेव्हा कोडची प्रणाली जवळून जोडलेली, गुंतागुंतीची आणि व्यवस्थापित करणे आणि समजणे कठीण होते.
- संस्थात्मक समस्या - प्रत्येक कार्यसंघ सदस्याने लायब्ररीची समान आवृत्ती वापरणे आवश्यक आहे आणि अनेक संघ एका मोनोलिथिक प्रकल्पावर काम करत असल्यास कोणत्याही बदलांची तक्रार नोंदवणे आवश्यक आहे.
- स्केलेबिलिटीची चिंता - कारण प्रकल्पाचे घटक एकमेकांशी जोडलेले आहेत, त्यांना स्वतंत्रपणे स्केलिंग केल्याने अडचणी येतात ज्यामुळे लक्षणीय डाउनटाइम आणि जास्त खर्च होतो.
- प्रकल्पाचे जटिल तर्क नवीन कार्यसंघ सदस्यांना समजणे कठीण होऊ शकते, विशेषत: ज्या अभियंत्यांनी त्यावर काम केले होते ते यापुढे कार्यरत नसतील तर.
मायक्रोसर्व्हिसेस आणि त्यांचे जवळचे नातेवाईक आणि मायक्रो फ्रंटएंड्सच्या विकासाने मोनोलिथिक सिस्टमच्या प्राथमिक समस्यांचे निराकरण केले.
मायक्रोसर्व्हिसेस आर्किटेक्चर
मायक्रोसर्व्हिसेस या नावाने ओळखल्या जाणार्या आर्किटेक्चरल पद्धतीमुळे ॲप्लिकेशन बॅकएंड बनवणारे अनेक सैलपणे जोडलेले आणि स्वतंत्रपणे उपयोजित करण्यायोग्य छोटे घटक किंवा सेवा तयार करण्याची परवानगी देते.
प्रत्येक सेवेचा स्वतःचा कोडबेस, CI/CD पाइपलाइन, DevOps प्रक्रिया आणि त्या चालवण्यासाठी प्रक्रिया असतात.
वरील प्रतिमा पाहून तुम्ही पाहू शकता की मोनोलिथिक बॅकएंड संघ स्वतंत्र संघांमध्ये विभागलेला आहे.
प्रत्येक अर्जाच्या वेगळ्या पैलूवर (जसे की उत्पादन सेवा, शोध सेवा आणि पेमेंट सेवा) वैयक्तिकरित्या लक्ष केंद्रित करते.
सेवांमधील संप्रेषण APIs म्हणून ओळखल्या जाणार्या स्थापित प्रोटोकॉलद्वारे होते, जसे की लाइटवेट REST API प्रोटोकॉल जे समकालिक विनंती-उत्तर नमुने वापरतात.
दुसरा पर्याय म्हणजे काफ्का सारखे सॉफ्टवेअर वापरून असिंक्रोनस कम्युनिकेशन वापरणे, जे संप्रेषण संरचना आणि कार्यक्रम प्रकाशित/सदस्यता देते.
मायक्रोसर्व्हिसेस फ्रंटएंड (BFF) सेवेसाठी बॅकएंडद्वारे किंवा नेटवर्कद्वारे API गेटवेद्वारे फ्रंटएंडसह एकत्रित होतात. BFF प्रत्येक क्लायंटसाठी एक सानुकूलित API ऑफर करते, तर API गेटवे मायक्रो सर्व्हिसेसच्या संग्रहासाठी एकल पॉइंट ऍक्सेस देतात.
परंतु स्वायत्त बॅकएंड घटक आणि ते प्रदान करणारे सर्व फायदे असूनही, फ्रंटएंड अजूनही एक मोनोलिथ आहे.
म्हणून, येथे सूक्ष्म फ्रंटएंड उपयुक्त आहेत.
मायक्रो फ्रंटएंड आर्किटेक्चर
मायक्रोसर्व्हिसेस प्रमाणेच, जिथे हलके जोडलेले घटक अनेक संघांद्वारे व्यवस्थापित केले जातात, मायक्रो फ्रंटएंड आर्किटेक्चर ही संकल्पना ब्राउझरला लागू करते.
हे वेब ऍप्लिकेशन वापरकर्ता इंटरफेस या संरचनेचे अनुसरण करतात, ज्यामध्ये काहीसे स्वायत्त घटक असतात.
विशिष्ट कौशल्य किंवा तंत्रज्ञानाऐवजी क्लायंटच्या गरजा किंवा वापर प्रकरणांवर टीम देखील तयार केल्या जातात.
परिणामी, संघ मायक्रो सर्व्हिसेस आणि मायक्रो फ्रंटएंड प्रकल्पांमध्ये गुंतलेले आहेत.
- अनुलंब कापलेले — त्याच प्रकल्पावर फ्रंटएंड डेव्हलपर, डेटा तज्ञ, बॅकएंड अभियंते, QA अभियंते इ. काम करत असल्याने, ते त्यांची वैशिष्ट्ये तयार करतात. वापरकर्ता इंटरफेस डेटाबेसला; आणि
- क्रॉस-फंक्शनल - प्रत्येक कार्यसंघ सदस्य गटामध्ये त्यांचे कौशल्य योगदान देतो.
कार्यसंघ त्यांच्या व्यवसायाच्या विशिष्ट श्रेणीसाठी सर्वोत्तम अनुकूल असलेले टेक स्टॅक देखील निवडू शकतात.
एक संघ त्याच्या तुकड्यांना प्रोग्राम करण्यासाठी प्रतिक्रिया वापरू शकतो. दुसरी टीम नवीन अँगुलर आवृत्ती तयार करते. Vue.js हे असेच एक उदाहरण आहे.
विकास कार्यसंघांना सामान्यत: मोनोलिथसह असलेल्या समस्यांचे निराकरण करण्यासाठी संबंधित मायक्रो सर्व्हिसेसच्या संयोगाने मायक्रो फ्रंटएंडचा वापर केला जातो. धोरण खालील फायदे देते.
- तंत्रज्ञान स्वातंत्र्य: फ्रंटएंड अभियंते कंपनीच्या गरजेनुसार पर्यायी JavaScript फ्रेमवर्क, रनटाइम वातावरण आणि संपूर्ण तंत्रज्ञान स्टॅक निवडू शकतात. कालबाह्य आर्किटेक्चरच्या वर, एक नवीन फ्रेमवर्क लागू केले जाऊ शकते.
- प्रत्येक मायक्रो फ्रंटएंड स्वयं-समाविष्ट असल्याने आणि स्वतंत्रपणे विकसित, चाचणी, उपयोजित आणि श्रेणीसुधारित केले जाऊ शकत असल्याने मोठ्या प्रमाणात लवचिकता शक्य आहे. परिणामी, जर एक टीम एखाद्या वैशिष्ट्यावर काम करत असेल आणि त्याने बग फिक्स पुश केले असेल आणि दुसऱ्या टीमला स्वतःचे वैशिष्ट्य जोडावे लागले असेल, तर त्यांना पहिल्या टीमने त्यांचे कार्य पूर्ण होण्याची प्रतीक्षा करण्याची गरज नाही.
- स्वायत्त संघ आणि प्रणाली: प्रत्येक उत्पादन संघ, आणि परिणामी प्रत्येक वैशिष्ट्य, इतरांवर थोडेसे अवलंबित्व ठेवून कार्य करू शकते, जे जवळचे घटक अनुपलब्ध असताना देखील कार्य करणे सुरू ठेवण्यास सक्षम करते.
- एकाधिक, लहान कोडबेस: प्रत्येक मायक्रो फ्रंटएंडचा स्वतःचा, अधिक आटोपशीर, लहान कोडबेस असेल. कमी लोक विशिष्ट UI घटकावर लक्ष केंद्रित करतील, कोड पुनरावलोकने सरलीकृत करतील आणि एकूण संस्था सुधारतील.
- साधे अॅप स्केलिंग: मायक्रो फ्रंटएंडचा आणखी एक फायदा म्हणजे प्रत्येक वैशिष्ट्य स्वतंत्रपणे मोजण्याची क्षमता. मोनोलिथ्सच्या विरूद्ध, जिथे प्रत्येक वेळी नवीन वैशिष्ट्य जोडल्यावर संपूर्ण प्रोग्राम मोजला जाणे आवश्यक आहे, यामुळे संपूर्ण प्रक्रिया वेळ आणि पैसा दोन्हीच्या दृष्टीने अधिक कार्यक्षम बनते.
मायक्रो फ्रंटएंड कसे कार्य करते?
आम्ही आधी सांगितल्याप्रमाणे, संघ मायक्रो फ्रंटएंड आर्किटेक्चरमध्ये अनुलंबपणे आयोजित केले जातात, याचा अर्थ ते डोमेन ज्ञान किंवा उद्देशाने वेगळे केले जातात आणि विशिष्ट उत्पादनासाठी सुरुवातीपासून ते शेवटपर्यंत जबाबदार असतात.
यात एक किंवा दोन बॅकएंड मायक्रोसर्व्हिसेस तसेच लहान फ्रंटएंड असू शकतात. अधिक तपशिलात, या व्हिज्युअल घटकाची वैशिष्ट्ये, इतर UI घटकांसह परस्परसंवाद आणि मुख्यपृष्ठामध्ये अंतर्भूत करण्याचे परीक्षण करूया.
मायक्रो फ्रंटएंड असू शकतो
- संपूर्ण पृष्ठ (उदा. उत्पादन तपशील पृष्ठ) किंवा
- पृष्ठाचे विभाग जे इतर संघांद्वारे वापरले जाऊ शकतात, जसे की शीर्षलेख, तळटीप आणि शोध बार.
तुम्ही एका मोठ्या वेबसाइटला अनेक पृष्ठ प्रकारांमध्ये विभाजित करू शकता आणि प्रत्येक प्रकार विशिष्ट कर्मचार्यांना काम करण्यासाठी देऊ शकता.
तथापि, शीर्षलेख, तळटीप, सूचना ब्लॉक्स इत्यादीसारख्या असंख्य पृष्ठांवर अनेक घटक वारंवार आढळतात. उदाहरणार्थ, एक सूचना ब्लॉक मुख्यपृष्ठावर, उत्पादन तपशील पृष्ठावर किंवा अगदी चेकआउट पृष्ठावर समाविष्ट केला जाऊ शकतो.
थोडक्यात, संघ तुकडे तयार करू शकतात जे इतर संघ त्यांच्या पृष्ठांवर वापरू शकतात.
मायक्रो फ्रंटएंड्स, तथापि, पुन्हा वापरता येण्याजोग्या घटकांच्या विरूद्ध भिन्न प्रकल्प म्हणून स्वतंत्रपणे तैनात केले जाऊ शकतात.
हे सर्व विलक्षण वाटते, परंतु एक एकीकृत इंटरफेस तयार करण्यासाठी, पृष्ठे आणि तुकडे कसे तरी एकत्र केले पाहिजेत.
यासाठी फ्रंटएंड एकत्रीकरण आवश्यक आहे, जे राउटिंग, रचना आणि संप्रेषणासह (वरील ग्राफिक पहा) विविध धोरणांद्वारे पूर्ण केले जाऊ शकते.
मार्ग
जेव्हा एका संघाद्वारे नियंत्रित पृष्ठावरील सेवा दुसर्या संघाच्या मालकीच्या पृष्ठावर प्रवेश करणे आवश्यक असते, तेव्हा पृष्ठ-स्तरीय एकत्रीकरणासाठी रूटिंग उपयुक्त असते.
प्रत्येक मायक्रो फ्रंटएंड एकल-पृष्ठ अनुप्रयोग म्हणून हाताळला जातो. राउटिंग प्रदान करण्यासाठी साध्या HTML लिंक्सचा वापर केला जाऊ शकतो.
वापरकर्ता ब्राउझरला सर्व्हरवरून लक्ष्य मार्कअप डाउनलोड करण्यास भाग पाडू शकतो आणि हायपरलिंकवर क्लिक करून वर्तमान पृष्ठ नवीनसह बदलू शकतो.
अॅप शेल हे HTML, CSS आणि JavaScript चे किमान प्रमाण आहे जे UI ला शक्ती देते. जरी सर्व्हरकडून विनंती केलेला सामग्री डेटा अद्याप प्रतीक्षा करत असला तरीही, वापरकर्त्यास लगेच एक स्थिर प्रदर्शित पृष्ठ प्राप्त होते. केंद्रीय अॅप शेल विविध संघांनी तयार केलेल्या सिंगल-पेज अॅप्ससाठी पालक अनुप्रयोग म्हणून काम करते.
लायब्ररी किंवा फ्रेमवर्क वापरले जात असले तरीही, मेटा-फ्रेमवर्क विविध पृष्ठांचे एकल मध्ये संलयन सक्षम करतात.
रचना
रचना म्हणजे तुकडे एका पृष्ठावरील योग्य जागेत बसवण्यासाठी त्यांची मांडणी करण्याची प्रक्रिया. बर्याच प्रकरणांमध्ये, पृष्ठ उपयोजित करणार्या टीमला खंडाची सामग्री त्वरित प्राप्त होत नाही.
त्याऐवजी, तो एक प्लेसहोल्डर किंवा मार्कर ठेवतो जिथे तुकडा मार्कअपमध्ये असावा.
भिन्न रचना प्रक्रिया वापरून, अंतिम असेंब्ली पूर्ण केली जाते. रचना दोन मूलभूत श्रेणींमध्ये विभागली जाऊ शकते: क्लायंट-साइड आणि सर्व्हर-साइड.
क्लायंट-साइड रचना: वेब ब्राउझरचा वापर HTML मार्कअप तयार करण्यासाठी आणि संपादित करण्यासाठी केला जातो. प्रत्येक मायक्रो फ्रंटएंडमध्ये त्याचे मार्कअप उर्वरित पृष्ठापेक्षा वेगळे बदलण्याची आणि दर्शविण्याची क्षमता असते.
वेब घटक, उदाहरणार्थ, तुम्हाला या प्रकारचे बांधकाम करण्याची परवानगी देतात.
प्रत्येक तुकड्याला वेब घटकामध्ये बदलण्याची योजना आहे जी स्वतंत्रपणे a.js फाईल म्हणून स्थापित केली जाऊ शकते, त्यानंतर अॅप्स थीम लेआउटमध्ये त्यांच्यासाठी नियुक्त केलेल्या स्पेसमध्ये लोड आणि रेंडर करू शकतात.
वेब घटक HTML आणि DOM API वर अवलंबून असतात, जे इतर फ्रंटएंड फ्रेमवर्क वापरू शकतात, तसेच प्रॉप्स आणि इव्हेंट्सद्वारे डेटा पाठवण्याची आणि प्राप्त करण्याची मानक पद्धत.
सर्व्हर-साइड रचना: या डिझाइनसह, UI तुकडे सर्व्हरवर एकत्र केले जातात, ज्यामुळे संपूर्णपणे तयार झालेले पृष्ठ क्लायंट-साइडला पाठवले जाते, लोडिंग वेगवान होते.
असेंब्ली बर्याचदा वेगळ्या सेवेद्वारे केली जाते जी वेब ब्राउझर आणि वेब सर्व्हरमध्ये बसते. CDN हे सेवेचे एक उदाहरण आहे (सामग्री वितरण नेटवर्क).
तुमच्या गरजेनुसार तुम्ही एक किंवा दोनपैकी एक निवडू शकता.
मायक्रो फ्रंटएंड कम्युनिकेशन पॅटर्न
मायक्रो-फ्रंटएंड आर्किटेक्चर सर्वोत्कृष्ट कार्य करते जेव्हा विविध घटकांमध्ये फारसा संवाद नसतो. मायक्रो फ्रंटएंडना अधूनमधून एकमेकांशी बोलणे आणि माहिती सामायिक करणे आवश्यक आहे. येथे काही संभाव्य नमुने आहेत ज्यामुळे ते होऊ शकतात.
- वेब कामगार: ऑनलाइन कार्यकर्ता ही एक यंत्रणा आहे जी वेब सामग्रीला पार्श्वभूमीत JavaScript चालविण्यास सक्षम करते, इतर स्क्रिप्टपेक्षा स्वतंत्रपणे आणि पृष्ठाच्या गतीवर परिणाम न करता. प्रत्येक मायक्रो अॅपसाठी एक युनिक वर्कर API प्रदान केला जाईल. हा फायदा असा आहे की वेळ घेणारे काम वेगळ्या धाग्यात केले जाऊ शकते, UI थ्रेडला गती कमी किंवा थांबवल्याशिवाय पुढे जाण्यास सक्षम करते.
- इव्हेंट एमिटर: या प्रकरणात, अनेक घटक ज्या घटकांचे सदस्यत्व घेतात त्या घटकांमधील बदल ऐकून आणि त्यावर कृती करून एकमेकांशी संवाद साधतात. त्या विशिष्ट इव्हेंटचे सदस्यत्व घेतलेले इतर मायक्रो फ्रंटएंड जेव्हा मायक्रो फ्रंटएंड त्या इव्हेंटला फायर करते तेव्हा प्रतिसाद देतात. प्रत्येक मायक्रो-फ्रंटएंडमध्ये सादर केलेला इव्हेंट एमिटर हे व्यवहार्य बनवतो.
- कॉलबॅक आणि प्रॉप्स: या विभागात, तुम्ही पालक घटक आणि मूल घटक परिभाषित करता. संप्रेषण झाडासारख्या संरचनेत आयोजित केले जाते. मूल घटक घटक ट्री खाली फंक्शन्स म्हणून डेटा पोचवण्यासाठी प्रॉप्सचा वापर करतात. या बदल्यात, कॉलबॅकला प्रतिसाद देऊन मूल त्यांच्या राज्यात काहीही घडल्यास पालकांना कार्यक्षमतेने सावध करू शकते. प्रतिक्रिया हा मोड वापरते.
मायक्रो फ्रंटएंडचे फायदे
वेगाने स्वायत्त संघांमध्ये विकास
मायक्रो फ्रंटएंड पद्धत वापरताना एक स्वतंत्र टीम वेब अॅप किंवा वेबसाइटचा प्रत्येक भाग तयार करू शकते.
प्रत्येक संघ पूर्णपणे स्वायत्त आहे, याचा अर्थ ते संपूर्ण घटक विकास चक्र, संकल्पनेपासून रिलीज आणि पोस्ट-प्रॉडक्शनपर्यंतचे प्रभारी आहे.
याव्यतिरिक्त, याचा अर्थ असा होतो की एकाच प्रकल्पावर एकाच वेळी काम करताना विविध संघ अखंडपणे सहयोग करू शकतात.
त्यामुळे, रिलीझ सायकल हे फ्रंट-एंड मोनोलिथ्सच्या तुलनेत बर्यापैकी जलद असतात.
वैयक्तिक मायक्रो फ्रंटटेंड्सचे छोटे कोडबेस क्लीनर कोडकडे नेतात
मोनोलिथिक फ्रंट एन्ड्समध्ये मोठे, अवास्तव कोडबेस असतात जे अधिकाधिक गोंधळलेले आणि कालांतराने व्यवस्थापित करणे आव्हानात्मक बनतात.
मायक्रो फ्रंटएंड या समस्येचे निराकरण करतात. प्रत्येक मायक्रो फ्रंटएंडचा स्त्रोत कोड अधिक आटोपशीर आहे कारण तो लहान, सोपा आणि अधिक संक्षिप्त आहे.
क्लिनर कोडचा परिणाम म्हणून एकूण वेब सोल्यूशनला फायदा होतो.
लूज कपलिंगमुळे सुधारित अॅप स्थिरता
वेब सोल्यूशन क्वचितच पूर्णपणे स्वतंत्र तुकड्यांमध्ये विभागले जाऊ शकते. परिणामी, मायक्रो फ्रंटएंड एकमेकांशी बोलतात.
तथापि, सैल कनेक्टिव्हिटी असूनही घटकांमधील प्रत्येक दुवा महत्त्वपूर्ण आहे.
एका घटकाच्या अयशस्वीतेचा इतर सर्व घटकांच्या ऑपरेशनवर फारसा प्रभाव पडत नाही, जे वेब सोल्यूशनची वर्धित स्थिरता प्रदान करते.
वैयक्तिक वैशिष्ट्यांची चाचणी करणे सोपे केले आहे
हा फायदा मायक्रो फ्रंटएंडच्या वैशिष्ट्यांमुळे होतो. या आर्किटेक्चरल डिझाइनवर आधारित, वेब सोल्यूशनची क्लायंट साइड मॉड्यूलर आहे आणि प्रत्येक मॉड्यूल स्वायत्त आहे.
परिणामी, मोठ्या मोनोलिथची चाचणी करण्यापेक्षा वापरकर्ता इंटरफेसच्या एका लहान भागाचे स्वतःच मूल्यमापन करणे संघासाठी सोपे आहे.
कमी बंडल आकार जलद पृष्ठ लोड होते
वैशिष्ट्य-समृद्ध मोनोलिथिक वेब सिस्टीममध्ये विलंब लोड होण्याचे प्राथमिक कारण म्हणजे JavaScript बंडलचा आकार. दुसरीकडे, मायक्रो फ्रंटएंड दृष्टीकोन पृष्ठ लोड वेळ कमी करणे सोपे करते.
ब्राउझरला अनावश्यक कोड वारंवार डाउनलोड करावा लागत नाही कारण वेब पृष्ठ अनेक लहान बंडलचे बनलेले असते. परिणामी, पृष्ठ कार्यप्रदर्शन आणि लोड वेळा वाढतात.
तंत्रज्ञान स्वातंत्र्य
अनेक फ्रंट-एंड फ्रेमवर्क मायक्रो-फ्रंटेंड आर्किटेक्चरसह एकल ऑनलाइन सोल्यूशन तयार करण्यासाठी विकसकांद्वारे वापरले जाऊ शकते.
प्रत्येक घटक स्वायत्त असल्यामुळे, संघाच्या कार्यांसाठी सर्वोत्तम अनुकूल असलेले तंत्रज्ञान वापरून ते तयार केले जाऊ शकते.
साहजिकच, प्रोग्रॅमर्सनी त्यांच्या प्रभारी सॉफ्टवेअर प्रकल्पासाठी फ्रेमवर्क निवडताना सावधगिरी बाळगली पाहिजे आणि इतर संघांशी सल्लामसलत करण्याचा अजूनही जोरदार सल्ला दिला जातो.
तथापि, अॅपच्या आयुर्मानाच्या कालावधीसाठी तुम्हाला लेगेसी फ्रेमवर्क वापरण्यास भाग पाडले जाण्याची शक्यता शून्य आहे.
मायक्रो फ्रंटएंडचे बाधक
संपूर्णपणे कॉम्प्लेक्स वेब सोल्यूशन चाचणी
वेब सोल्यूशनच्या विविध मॉड्यूल्सची चाचणी करणे सोपे आहे जेव्हा ते मायक्रो-फ्रंटेंड आर्किटेक्चर वापरते. हे संपूर्णपणे वेब अनुप्रयोगाचे मूल्यांकन करण्यापेक्षा वेगळे आहे.
सुरू ठेवण्यापूर्वी सर्व भाग हेतूनुसार कार्य करत असल्याचे सत्यापित करा. हे कदाचित अवघड असू शकते कारण मायक्रो फ्रंटएंड्स स्वतंत्रपणे कार्य करतात आणि स्वतंत्र वितरण प्रक्रिया असतात.
महागडी प्रारंभिक गुंतवणूक
मायक्रो फ्रंटएंड घडामोडींना विशेषत: भरीव आर्थिक परिव्यय आवश्यक असतो. अनेक फ्रंट-एंड संघ एकत्र करणे आणि ठेवणे महाग आहे.
याव्यतिरिक्त, तुम्हाला काम व्यवस्थित करण्यासाठी व्यवस्थापन कर्मचार्यांची आवश्यकता असेल, सर्वकाही समन्वयित असल्याची खात्री करा आणि उत्कृष्ट संघ संवादाची हमी द्या.
विकास आणि उपयोजनाची जटिलता
मायक्रो-फ्रंटएंड डिझाइनच्या परिणामी विकास आणि उपयोजन प्रक्रिया अधिक क्लिष्ट होऊ शकतात.
एकाच प्रकल्पावर काम करणार्या स्वतंत्र विकास कार्यसंघांद्वारे अनेक घटकांसह एक समाधान गोंधळात टाकले जाऊ शकते, उदाहरणार्थ, जे तैनातीच्या टप्प्यावर समस्या निर्माण करू शकते.
सर्व मॉड्यूल्सची योग्य असेंब्ली आणि एकंदर योजनेत त्यांचे गुळगुळीत एकत्रीकरण देखील नेहमीच सोपे नसते; या कामासाठी सामान्यत: सर्व अवलंबित्वांची संपूर्ण माहिती आवश्यक असते.
वापरकर्ता अनुभवामध्ये सुसंगतता राखण्यात समस्या
जेव्हा कार्यसंघ सॉफ्टवेअरच्या अनेक भागांवर स्वतंत्रपणे कार्य करतात तेव्हा सातत्यपूर्ण वापरकर्ता इंटरफेस राखणे आव्हानात्मक असते.
वेब सोल्यूशन प्रकल्पाच्या सर्व विकासकांद्वारे सामायिक केले जावे. अन्यथा, रस्त्यावर बरेच विरोधाभास असू शकतात.
निष्कर्ष
मायक्रो फ्रंटएंड, एक समकालीन आर्किटेक्चरल डिझाइन, मोठ्या प्रमाणात मायक्रोसर्व्हिस-आधारित वेब डेव्हलपमेंट प्रकल्पांची कार्यक्षमता वाढवू शकते.
हे प्रोग्रामरना संपूर्ण सोल्यूशन वेगळ्या भागांमध्ये विभाजित करण्यास सक्षम करते जे अनेक स्वायत्त संघांद्वारे तयार केले जाऊ शकते. जलद वैशिष्ट्य रोल-आउट, वैयक्तिक मॉड्यूल्सची सोपी चाचणी आणि अधिक अखंड अपग्रेड यासह अनेक फायदे यातून मिळतात.
पण मायक्रो फ्रंटएंड्समध्येही काही अडचणी आहेत.
उदाहरणार्थ, अनुप्रयोगाची सर्वसमावेशक चाचणी आव्हानात्मक असू शकते.
याव्यतिरिक्त, अभियंते आणि प्रशासकांची एक मोठी टीम आवश्यक असल्याने, मायक्रो फ्रंटएंड प्रकल्प खूप महाग आहेत.
परिणामी, निर्णय घेण्यापूर्वी, तुम्ही तुमच्या व्यवसायातील सर्व घटक विचारात घेणे आवश्यक आहे.
व्लादिमिर कॅमाज
फ्रंटएंडवरील वैयक्तिक घटकांमधील संवाद कोणत्या तत्त्वावर कार्य करतो हे मला कसे तरी समजले नाही. मला समजत नाही की तुम्हाला वेगवेगळ्या फ्रेमवर्कमध्ये तयार केलेले घटक कसे जोडायचे आहेत. त्याबद्दल लेखात काहीही नाही. घटना आणि श्रोत्यांची व्यवस्था मला पृथ्वीवरील नरकासारखी दिसते. आपण त्याची कल्पना कशी करावी?