अनावश्यक कोड ने माइक्रो-फ्रंटेंड के साथ पाइप को नीचे भेज दिया


12

माइक्रो-फ़्रेंड्स के बारे में मेरी समझ यह है कि वे जो मुख्य समस्या हल करते हैं, वह उद्यमों की कई, संभावित विवादित टीमों, व्यक्तिगत घटकों / छोटे-ऐप पर काम करने में मदद करती है, जिनका उपयोग बड़े वेब एप्लिकेशन को बनाने के लिए किया जाएगा।

यहां मुख्य समस्या हल की जा रही है , कई टीमों की स्वतंत्र रूप से काम करने की क्षमता है और अभी भी एक बड़े समग्र का निर्माण करने में सक्षम है। समस्या अंत उपयोगकर्ता के लिए एक दुबला रिलीज बंडल होने के बारे में नहीं है । क्या वह समझ सही है?

क्या यह सच है कि अगर हमारे पास कई छोटे-छोटे ऐप हैं जिनका उपयोग एक बड़े वेब एप्लिकेशन को बनाने के लिए किया जा रहा है, तो हम संभावित रूप से कई छोटे-छोटे ऐप्स को उसी जावास्क्रिप्ट लाइब्रेरी ( जैसे लोडश ) को एंड-यूजर्स के ब्राउज़र में उनके हिस्से के रूप में भेज सकते हैं। व्यक्तिगत विक्रेता बंडलों को डुप्लिकेट / निरर्थक कोड की कुछ राशि के लिए अग्रणी बनाता है जो उपयोगकर्ता को नीचे भेजा जा रहा है?

क्या यह एक ऐसी चिंता नहीं है जिसकी हमें चिंता करनी चाहिए जबकि सामने वाले के आवेदन को आर्किटेक्चर करना है?


2
मुझे लगता है कि यह पूरी तरह से एक चिंता का विषय है जिसकी आपको जरूरत है। दुर्भाग्य से, मुझे नहीं पता कि लोग इस बारे में कैसे जा रहे हैं। अच्छा प्रश्न!
रबरडैक

जवाबों:


12

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

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

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

व्यक्तिगत रूप से, मुझे लगता है कि इस तरह के सूक्ष्म-दृश्य एक मान्य वास्तुकला हो सकते हैं लेकिन शायद तब तक अनजाने हैं

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

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

माइक्रो-फ़्रंट्स इन चीजों में से एक हैं जो वास्तव में शांत हैं, लेकिन जब तक आप एक पैमाने पर काम नहीं करते हैं, तब तक आपको इसकी आवश्यकता नहीं है।


3
मुझे लगता है कि आपके आवेदन के दौरान एक एकल फ्रेमवर्क संस्करण पर बसना संभवत: प्रयास के लायक है।
रॉबर्ट हार्वे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.