کی میز کے مندرجات[چھپائیں][دکھائیں]
مائیکرو فرنٹ اینڈ کا تصور مائیکرو سروسز کو فرنٹ اینڈ ڈیولپمنٹ پر لاگو کرتا ہے۔
خیال یہ ہے کہ ایپلیکیشن یا ویب سائٹ کو چھوٹے، آزادانہ طور پر تیار کردہ ٹکڑوں میں توڑ دیا جائے جو پھر رن ٹائم کے دوران منسلک ہوتے ہیں، ان کو ایک واحد، ہم آہنگ یک سنگی کے طور پر بنانے کے برخلاف۔
یہ طریقہ آپ کو دیگر ٹیکنالوجیز کا استعمال کرتے ہوئے اور آزاد ٹیموں کے ساتھ ایپلی کیشن کے دیگر اجزاء بنانے کے قابل بناتا ہے۔
خیال یہ ہے کہ اس طرح ترقی کو الگ کرکے ایک عام یک سنگی سے متعلق دیکھ بھال کے اخراجات کو کم کیا جائے۔
انہیں ایک مربوط ٹیم کے طور پر کسی ایپلیکیشن کے کسی خاص علاقے پر توجہ مرکوز کرنے کی اجازت دے کر، یہ بیک اینڈ اور فرنٹ اینڈ ڈیویس کے درمیان تعاون کی نئی شکلوں کو بھی ممکن بناتا ہے۔
مثال کے طور پر، آپ کے پاس ایک ٹیم ہو سکتی ہے جو مکمل طور پر تلاش کی صلاحیت یا کسی کلیدی پروڈکٹ کے دوسرے پہلو کے لیے ذمہ دار ہو جو کہ کاروبار کے لیے اہم ہے۔
ماڈیول فیڈریشن کا شکریہ، آپ کے پاس ورک فلو کو ہینڈل کرنے کے لیے کافی فعالیت ہے۔ مائکرو فرنٹ اینڈ مینڈیٹ سے رجوع کریں۔
یہ پوسٹ ماڈیول فیڈریشن کے فن تعمیر کے ساتھ ساتھ اس کی اہم خصوصیات اور درخواست کے نمونوں پر گہری نظر ڈالے گی۔
تو، کیا ہے a ماڈیول فیڈریشن?
جاوا اسکرپٹ کا ماڈیول فیڈریشن ڈیزائن بہت سی ایپلی کیشنز میں دوبارہ استعمال شدہ حصوں کا استعمال کرتا ہے۔
یہ کافی حد تک بنیادی اصطلاح ہے، لیکن میں نے اسے صرف اتنا ہی آسان بنا دیا ہے کہ وہ ہوا دار دکھائی دیں۔
جیسا کہ ہم سب ایک React ایپلی کیشن میں اجزاء کے اشتراک سے واقف ہیں، ماڈیول فیڈریشن عملی طور پر ایک ہی مقصد کو مؤثر طریقے سے پورا کرتی ہے، اس استثنا کے ساتھ کہ یہ دیگر ایپلی کیشنز کے استعمال کے لیے ایپلیکیشن ماڈیولز کو متحرک طور پر ظاہر کرتا ہے۔
ماڈیول فیڈریشن ان کلیدی مشترکہ عناصر کو میکرو یا مائیکرو کے طور پر مطلوبہ طور پر فراہم کرکے تقسیم شدہ نظام میں ماڈیول شیئرنگ کے مسئلے پر قابو پانے کی کوشش کرتی ہے۔
یہ انہیں آپ کی ایپس سے ہٹا کر اور ورک فلو کی تعمیر سے حاصل ہوتا ہے۔
ماڈیول فیڈریشن کیوں؟
یہاں کچھ عوامل ہیں جو ماڈیول فیڈریشن آسانی سے سنبھال سکتے ہیں:
- ایکسٹرنل اور ڈی ایل ایل (ڈائنیمک لنک لائبریریز) وہ سب کچھ تھا جو ہمارے پاس کبھی کبھار ایپس کے درمیان فعالیت کا اشتراک کرنے کے لیے ہوتا تھا۔ ان سب نے اسکیلنگ کوڈ شیئرنگ کو انتہائی چیلنجنگ بنا دیا۔
- NPM سست ہے۔
- جب دو الگ الگ پروگرام اہم کوڈ کا اشتراک کرتے ہیں، تو ان کا متحرک اور لچکدار ہونا ضروری ہے۔
اسٹینڈ اسٹون ایپس کو مکمل طور پر ان کے اپنے ذخیرے میں رکھنے، الگ سے تعینات کرنے، اور اپنے خود مختار SPA کے طور پر کام کرنے کے لیے، ماڈیول فیڈریشن بنائی گئی۔
ماڈیول فیڈریشن کے بنیادی اجزاء
گہرائی میں ڈوبنے سے پہلے، چند نئے تصورات پر مختصراً گفتگو کرنا ضروری ہے جو ماڈیول فیڈریشن لاتے ہیں۔
- میزبان: جب کوئی صفحہ لوڈ ہوتا ہے، ابتدائی طور پر جو تعمیر یا ماڈیول شروع ہوتا ہے اسے میزبان کہا جاتا ہے۔ ایک فراہم کنندہ کو میزبان کے طور پر سوچا جا سکتا ہے۔
- ریموٹ: ایک ریموٹ ایک مختلف تعمیر ہے جو میزبان کے ایک حصے کو استعمال کرتی ہے۔ انہیں گاہک بھی کہا جاتا ہے۔
- دو طرفہ میزبان: ایک ویب پیک جو کہ ایک ایسے ریموٹ کے طور پر کام کرتا ہے جسے دوسرے میزبان استعمال کرتے ہیں اور ایک میزبان جو ریموٹ استعمال کرتا ہے۔
- وینڈر فیڈریشن: میزبان یا ریموٹ کے لیے npm ماڈیول انحصار کے اعلانیہ طور پر مشترکہ رن ٹائم شیئرنگ کو قابل بناتا ہے، قطع نظر اس کے کہ وہ کسی بھی جگہ سے لوڈ کیے گئے ہیں۔ مائیکرو فرنٹ اینڈ کے ساتھ کارکردگی کا ایک بڑا مسئلہ اس طرح حل ہو جاتا ہے۔
فیڈریٹڈ ایپلیکیشن کے پیٹرن
سدا بہار ڈیزائن سسٹم
فیڈریٹڈ ایپلی کیشنز کی سب سے بنیادی شکلوں میں سے ایک "ایورگرین ریموٹ" ہے، جو ایک مشترکہ ریموٹ ہے جیسے "ڈیزائن سسٹم" یا "کمپووننٹ لائبریری" جو تمام صارفین کے لیے آزادانہ طور پر تقسیم اور اپ ڈیٹ ہوتا ہے۔
ہر ایپ ٹیم کو نظرثانی پر وقت گزارنے کی ضرورت کے بغیر، یہ اس بات کو یقینی بنانے میں مددگار ثابت ہو سکتا ہے کہ تمام آن لائن سائٹس تازہ ترین کارپوریٹ شناخت پر عمل پیرا ہوں۔
محفوظ، جاری اپ ڈیٹس کی ضمانت کے لیے ضروری حدود اور طریقہ کار کو ڈیزائن کرنے اور ان کو نافذ کرنے کے لیے، فیڈریٹڈ ایپلیکیشن آرکیٹیکچر پر غور کرتے وقت کاروبار شروع کرنے کے لیے یہ ایک مفید جگہ ہو سکتی ہے۔
ذیل میں استعمال کے کچھ معاملات ہیں جہاں آزادانہ طور پر تعینات مشترکہ ریموٹ مناسب فٹ ہو سکتے ہیں:
- ڈیزائن سسٹمز
- ایپلیکیشن شیلز
- اجزاء کی لائبریریاں
- صارفین
- مشترکہ ٹول کٹس
- اندرونی یا بیرونی کے ذریعے استعمال ہونے والے ویجٹ کے لیے متبادل تقسیم کے ماڈل
ملٹی ایس پی اے ماڈیول شیئرنگ
پہلے سے برآمد شدہ خصوصیات، جیسے اجزاء، مختلف اسٹینڈ اسٹون سنگل پیج ایپس میں دوبارہ استعمال کریں۔ فوائد میں شامل ہیں:
- صارفین خودکار اپ ڈیٹس حاصل کرتے ہیں۔
- ڈومین کی مہارت اس ٹیم پر رہتی ہے جو اس کی انچارج ہے۔
- تعیناتی کے طریقہ کار کو ہموار کرتا ہے کیونکہ علیحدہ ماڈیول ریلیز ضروری نہیں ہیں۔
شیل سے چلنے والی فیڈریشن
شیل سے چلنے والی فیڈریشن میں شامل ہیں:
- پروڈکٹ کا نیا ورژن بناتے وقت، پروڈکٹ ٹیم چیک آؤٹ ٹیم کا اپنا کام مکمل کرنے کا انتظار نہیں کرتی ہے۔
- ریموٹ سوئچ کرتے وقت، کوئی صفحہ دوبارہ لوڈ نہیں ہوتا ہے۔
- جب ضروری ہو، شیل سست ریموٹ لوڈنگ اور (ٹاپ لیول) روٹنگ پیش کرتا ہے۔
- ریموٹ کے پار روٹنگ وینڈر فیڈریشن کے ذریعے ممکن ہوئی ہے، جو اکثر استعمال ہونے والے npm پیکجوں کے دوبارہ استعمال کو قابل بناتا ہے۔
- شیل فریم ورک اور دیگر عام انحصار پیش کرتا ہے جو سست بھرے ریموٹ کے ذریعہ دوبارہ استعمال ہوتے ہیں۔
ملٹی شیل فیڈریشن
اوپر بیان کردہ شیل سے چلنے والی فیڈریشن کی طرح، لیکن مختلف گولے استعمال کیے گئے۔
اس میں شامل:
- گولوں کی ایک بڑی تعداد
- وائٹ لیبلنگ
- شیل بی کے ذریعہ تمام ریموٹ کی ضرورت نہیں ہے یا آزادانہ عمل درآمد نہیں ہے۔
ماڈیول فیڈریشن کی بنیادی خصوصیات
بہترین ویب پرفارمنس
عام NPM ماڈیول کمپوزیشن کے ساتھ مسئلہ یہ ہے کہ جیسے جیسے انحصار کرنے والوں کی تعداد بڑھتی ہے، ایپلیکیشن کا سائز عام طور پر بڑھتا ہے۔
جب آپ کی ایپلی کیشن لوڈ ہوتی ہے تو بنڈلز کو لوڈ کرنے سے بچنے کے لیے اور صرف ضرورت پڑنے پر انہیں لوڈ کرنے کے لیے، ماڈیول فیڈریشن آپ کو بنڈلز کو سستی سے لوڈ کرنے کی صلاحیت فراہم کرتا ہے۔
یہ ماڈیولز کو درحقیقت ضرورت سے پہلے ڈاؤن لوڈ کرنے کی ضرورت کو روکتا ہے، جس سے سائٹ کی رفتار بہتر ہوتی ہے۔
موثر ترقی
ہر پروجیکٹ کو تنہائی میں تیار اور ڈیلیور کیا جاسکتا ہے اور اسے مختلف ٹیموں کے ذریعہ انجام دیا جاسکتا ہے کیونکہ ماڈیول فیڈریشن آپ کو اپنی درخواست کو مجرد پروجیکٹس میں ترتیب دینے کی ترغیب دیتی ہے تاکہ آپ انہیں الگ سے تعمیر اور تعینات کرسکیں (اور اسی وجہ سے متوازی طور پر)۔
خود کو ٹھیک کرنے اور بے کار ہونے کی صلاحیت
مشترکہ انحصار ماڈیول فیڈریشن کو آپ کے پروگرام کے تمام انحصار کو ایک جگہ پر ٹریک رکھنے کی اجازت دیتا ہے۔
اس طرح، یہاں تک کہ جب کوئی ایپلیکیشن انحصار کا اعلان نہیں کرتی ہے یا جب نیٹ ورک کے مسائل ہوتے ہیں، تب بھی اسے معلوم ہوتا ہے کہ اسے کیا ضرورت ہے اور ضرورت کے مطابق اسے ڈاؤن لوڈ کرنے کو سنبھال سکتا ہے۔
عام انحصار کا مؤثر ہینڈلنگ
مزید برآں، ماڈیول فیڈریشن اعلیٰ انحصاری انتظام پیش کرتا ہے، مؤثر طریقے سے وینڈر اور فریق ثالث کی ضروریات کو حل کرتا ہے تاکہ آپ کی درخواست کبھی بھی لائبریری کے ایک سے زیادہ ورژن لوڈ نہ کرے۔
صارفین کو دوبارہ تعینات کرنے کے بجائے، آزاد کوڈ تعینات کریں۔
ڈویلپر سدا بہار فعالیت رکھنے میں بہت زیادہ دلچسپی رکھتا ہے۔ ایک بار بے نقاب ہونے پر منحصر فعالیت تبدیل ہو جانے کے بعد، صارفین کو دوبارہ انسٹال کرنے کی ضرورت نہیں رہے گی۔
مجھے یہ تسلیم کرنا چاہیے کہ یہ اپنے آپ میں ایک انتہائی طاقتور خصوصیت ہے، جسے غیر متوقع نتائج کو روکنے کے لیے محتاط جانچ کی ضرورت ہوگی۔
چلتے وقت، دوسری بلڈز سے کوڈ درآمد کریں۔
NPM پیکیج ماڈل کو اپناتے وقت، ہم ان ایپس پر غور کر سکتے ہیں جو Module Federation کا استعمال کرتے ہیں کوڈ کا اشتراک کرنے اور "لائبریری" کے بارے میں سوچنے کے بجائے APIs کے مشابہ۔
اسی طرح کہ وہ دیگر ایپس سے بھی فعالیت حاصل کر سکتے ہیں، ویب ایپلیکیشنز اب دیگر ایپلی کیشنز کو فعالیت فراہم کر سکتی ہیں۔
کلائنٹ کے تجربے کو محفوظ رکھتے ہوئے ڈویلپر کا بہتر تجربہ
کوئی جاوا اسکرپٹ ڈویلپر ماڈیول فیڈریشن کے ساتھ کافی آرام دہ ہوگا کیونکہ یہ ایک Webpack پلگ ان ہے جو Webpack ورژن 5 کے مطابق قابل رسائی ہے۔
اگر ہم اس پر کچھ غور کریں تو یہ حقیقت میں کافی مضبوط اور دلچسپ ہے۔
تھرڈ پارٹی ویب پیک لوڈرز کو استعمال کرتے ہوئے، ان تمام اجزاء پر غور کریں۔ ویب پیک۔ بنڈل، بشمول اسکرپٹ، اثاثے، اسٹائل، تصاویر، مارک ڈاؤن، اور مزید۔
ماڈیول فیڈریشن کا استعمال کرکے، ان سب کو مشترکہ اور فیڈریٹ کیا جاسکتا ہے۔
مائیکرو فرنٹنڈس یک سنگی انداز میں کام کرتے ہیں۔
آپ کی درخواست میں مشترکہ فعالیت شامل کرنا کافی آسان ہے۔ بس بنڈل کو معمول کے مطابق درآمد کریں یا سنکرونس لوڈنگ کا استعمال کریں۔
متبادل طور پر، غیر مطابقت پذیر لوڈنگ کا استعمال سست لوڈنگ کو استعمال کرتے ہوئے صرف انحصار کو لوڈ کرنے کے لیے کیا جا سکتا ہے۔
نتیجہ
اس پوسٹ میں، ہم نے آپ کی مائیکرو فرنٹ اینڈ ایپلیکیشن تیار کرنے کے لیے ماڈیول فیڈریشن کو ایک بہترین انتخاب کے طور پر زیر بحث لایا ہے۔
رن ٹائم پر ایپس کو ایکسچینج اور استعمال کرنے کی اجازت دینا مختلف ٹیموں کو آزاد ایپلیکیشنز پر کام کرنے کے قابل بنا کر اسکیل ایبلٹی کی حوصلہ افزائی کرتا ہے۔
جب عام فعالیت میں تبدیلی آتی ہے، تو آپ کو اپنے صارفین کو ڈیزائن اور تعینات کرنے کی ضرورت نہیں ہوگی کیونکہ یہ سدا بہار فعالیت کو سپورٹ کرتا ہے۔
آپ کا پروگرام ترتیب دینے کے بعد یک سنگی کی طرح کام کرے گا، جو کہ لاجواب ہے۔
قابل اشتراک انحصار ایپس کا سائز کم کرنے کے لیے استعمال کیا جاتا ہے۔ چونکہ بہت سے ڈویلپر پہلے ہی Webpack ماحول سے واقف ہیں، اس لیے ڈویلپر کا تجربہ بہترین ہے۔
جواب دیجئے