مقدمه مقدماتی

معماری های Microfrontend یک برنامه جلویی را به ماژول های کوچکتر و مستقل قابل استقرار تجزیه می کنند.این ماژولاریک چالش مدیریت حالت مشترک، پیکربندی و ارتباطات در سراسر مرزها را معرفی می کند. الگوی تکتون یک راه حل کنترل شده با تضمین اینکه یک کلاس یا ماژول تنها یک نمونه دارد، ارائه یک نقطه واحد از دسترسی، با این حال، استفاده از این الگو در یک چارچوب کوچک نیاز به دقت طراحی برای جلوگیری از مشکلات چرخه عمر متمرکز، و ثابت شده است.

چه چیزی یک تکتون را در Microfrontends متفاوت می کند؟

در یک برنامه تک صفحه ای تک تک تکتون اغلب جهانی و آسان برای پیاده سازی است.در یک تنظیمات میکروfrontend، هر ماژول ممکن است ساخته شده، آزمایش شده و به طور مستقل نصب شود، همان برنامه می تواند چندین میکروfrontend را از ریشه های مختلف بارگذاری کند، هر کدام با بسته جاوا اسکریپت خود، این محیط را پیچیده الگوی کلاسیک تکتون زیرا ماژول ها به طور طبیعی یک رابط کاربری واحد پیکربندی شده است - به طور معمول یک نوار کلید یا یک برنامه های سفارشی به اشتراک گذاشته شده است، به عنوان یک نوار واقعی، به عنوان یک نوار کلید، به اشتراک گذاشته شده است، به طور معمول یک برنامه، به اشتراک گذاشته شده است، به عنوان یک نوار کلید به طور معمول یک برنامه، به طور معمول یک نوار کلید به اشتراک گذاری شده است، به عنوان یک نوار کلید، به طور معمول یک نوار کلید به اشتراک گذاری شده است، به طور معمول یک نوار کلید، به طور معمول یک نوار کلید داده شده است، به طور معمول یک نوار کلید داده شده در یک نوار کلید به اشتراک گذاشته شده در یک نوار کلید، به اشتراک گذاری شده است، هر کدام با یک نوار کلید داده شده است.

موارد استفاده مشترک برای تکتون های مشترک عبارتند از:

  • [در این میان] [و] [و] [و] پرچم و پرچم [[FLT 1] - یک شی که ریزکارها برای تعیین رفتار مشورت می کنند.
  • [[۱] [۱۰] [۱] [۱۰] [۱] [۱]] [۱]] [۱]] [۱]] [۱] [۱]] [۱]] [۱] [۱]] [۱]] [۱]] [۱] [۱]] [۱] [۱] [۱]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]] [۱] [۱]]] [۱] [۱]]]] [۱]]]]]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]] [۱] [۱]
  • اتوبوس های رویداد Cross-module [FLT 1] - یک مکانیسم میله / زیر که مانع از اتصال مستقیم می شود.
  • فروشگاه های مدیریت دولتی - فروشگاه متمرکز (به عنوان مثال، Redux یا Zustand) که ماژول ها به اشتراک می گذارند.
  • از بین بردن و بین المللی سازی [FLT 1] - یک شی محلی و فرهنگ لغت.

هنگامی که به درستی اجرا شود، یک تکتون سازگاری و کاهش اولیه اضافی را فراهم می کند، هنگامی که اشتباه انجام می شود، به جهانی پنهان تبدیل می شود که باعث شکستن انقباض و ایجاد اشکال زدایی یک کابوس می شود.

بهترین روش های Core Best Practices for Singleton Execution

استفاده از محدوده ماژول و اشتراک گذاری زمان

ابزارهای مدرن ساخت مانند فدراسیون ماژول Webpack 5 اجازه می دهد تا تیم ها وابستگی های مشترک را مشخص کنند.با علامت گذاری یک کتابخانه (مانند یک سرویس تکتون) به عنوان یک ماژول مشترک، پوسته می تواند آن را یک بار بارگیری کند و همان نمونه را به تمام میکروfrontends ارائه دهد.این رویکرد از آلودگی دامنه جهانی اجتناب می کند در حالی که اطمینان از اینکه تنها یک نمونه در زمان اجرا وجود دارد.

به عنوان مثال، یک تابع کارخانه را از یک ماژول مشترک نشان دهید:

[در این باره]

سپس این ماژول را به عنوان مشترک در پیکربندی فدراسیون اعلام کنید.تمام میکروfrontends که واردات (FLT:1) همان نمونه را دریافت می کنند که توسط زمان اجرا مدیریت می شود.

۲- بهینه سازی اولیه

به طور منظم ایجاد یک تکتون زمانی که بارهای برنامه می تواند حافظه را هدر دهد اگر ریزکتیشن که از آن استفاده می کند هرگز نصب نمی کند: ایجاد تکتون تنها زمانی که برای اولین بار درخواست شده است، این الگو همچنین تست را ساده تر می کند زیرا تکتون می تواند در طول تنظیم تست تنظیم مجدد یا جایگزین شود.استفاده از یک روش چک و ایجاد شده با یک متغیر Caching، همانطور که در بالا نشان داده شده است، یا استفاده از یک همگام سازی اولیه (g:2).

محدود کردن دسترسی جهانی

حتی با فدراسیون ماژول، وسوسه انگیز است که تکتون را در [FLT3] برای سهولت دسترسی قرار دهید.مقاومت که از آن می خواهد، متغیرهای جهانی ایجاد برخوردهای نام گذاری، کد سخت تر تست کنید و اصول انزوای میکروfrontend را نقض کنید، به جای آن، از واردات ماژول یا وابستگی استفاده کنید اگر شما باید از دامنه جهانی مرورگر استفاده کنید، نام فضای تک تک تکتون (gf) و سند آن را به دقت استفاده کنید:

۴- مدیریت چرخه زندگی به صورت ناخواسته

میکروfrontends می تواند اضافه، حذف و دوباره به صورت پویای مجدد شود.A تکتون که حالت را پنهان می کند ممکن است زمانی که کاربر به دور و برگشت حرکت می کند، نوسان کند.

  • [در این باره] [از این رو]، آفرینش ناب در ابتدا لازم است.
  • [[۱] [۱۰] [۱۰] [۱] [۱۰] [۱]] [۱۰]] [۱] [۱۰] [۱]] [۱] [۱۰]] [۱] [۱] [۱۰] [۱]] [۱۰] [۱] [۱۰]] [۱] [۱۰] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۱] [۱] [۱] [۳] [۱] [۱] [۳] [۳] [۳] [۳] [۱]] [۱]]]]] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۱] [۳] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۱] [۳] [۳] [
  • (فَلَّهُمْهُمْهُمْهُمْهُمِهُمِهُمِهُمِهُمِهُواًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاًاً مَهُمَهُمْهُوا مِنْهُوا مَهُوا مِنْهُوا مِنْمْمْمْمْهُوا مَهُمْمْهُوا مِنْهُوا مِنْهُمْمْمَهُوا مِنَهُمَهُوا مَهُمَهُمْمْهُمْهُوا مَهُمَهُمَهُمَهُمَهُمْنَهُوا مِنَهُمْنَهُوا مَهُوَهُوا مَ

به عنوان مثال، یک تکتون تأیید کننده باید یک روش (FLT:5) را افشا کند که توکن کاربر را روشن می کند و مشترکان را تأیید می کند.

تضمین امنیت Thread در جایی که Aable

Microfrontends که به کارکنان وب یا به اشتراک گذاشته شدهArrayBuffer نیاز به محافظت در برابر شرایط مسابقه دارد، اگرچه جاوا اسکریپت در رشته اصلی تک خوانده شده است، زیرا کد ناهمزمان می تواند خطرات نژادی را ایجاد کند، از وعده ها، خاموش کردن (با کتابخانه هایی مانند FLT:6)، یا عملیات اتمی اگر تکتون به طور همزمان از ماژول های متعدد که به سرعت در محیط های طراحی مرورگر استفاده می کنند، استفاده می کند، یا کمتر از آن استفاده می کند.

۶- محدود کردن تکتون ها به نگرانی های زیرساختی

هر منبع مشترک قبل از ایجاد یک تکتون نیاز ندارد: آیا این منبع واقعا یک نمونه است؟ آیا چندین نسخه بدون آسیب وجود دارد؟ تکتون ها برای نگرانی های سطح زیرساختی (لغل، پیکربندی، مسیریابی) بهتر کار می کنند تا استفاده از تکتون منجر به یک "هدف خدا" که هر میکروfrontend بستگی دارد، تضعیف مستقل که برای هدف قرار دادن میکروست.

قرص های معمول و چگونگی اجتناب از آن

بسته های پنهان و دشواری آزمایش

یک تکتون قابل دسترس از طریق واردات ایجاد وابستگی ضمنی است، هنگامی که تست یک میکروfrontend در انزوا، حالت تکتون می تواند بین تست ها خونریزی کند. Mitigate با اجازه دادن به تکتون به جای با یک مدل مویک جایگزین شود.نمایش یک (FLT:7 یا (FLT:8 روش است که تنها در توسعه / تست استفاده می شود و محافظت از محیط جایگزین، بنابراین وابستگی به طور کامل می تواند یک تزریق قبل از تزریق را دریافت کند.

دانلود بازی Breaking Module Isolation

میکروfrontends باید به طور مستقل شکست بخورد اگر یک تکتون سقوط کند یا حالت نامعتبر را داشته باشد، می تواند تمام ماژول هایی را که به آن بستگی دارد، با بستن دسترسی تکتون در تریپت، و ارائه رفتار عقب افتادگی، به عنوان مثال، اگر تکتون پیکربندی نتواند بار، هر میکروfront می تواند به عقب بر گردد تا به پیش فرض های سخت کد گذاری شده.

مقیاس پذیری در Load

هنگامی که یک تکتون از طریق یک اتوبوس متمرکز (به عنوان مثال، یک رویداد جهانی) قابل دسترسی است، رویدادهای فرکانس بالا می توانند یک تنگنا ایجاد کنند.استفاده از پیچ و خم، یا موضوعات کارگر برای جلوگیری از تکتون از تبدیل شدن به یک نقطه عملکرد، در نظر گرفتن استفاده از یک الگوی مانند CQRS یا رویداد برای ارتباطات پیچیده متقابل به جای یک اتصال تکتون ساده.

قابلیت های خطا در وابستگی های مشترک

اگر دو میکروپیروز نیاز به نسخه های مختلف کتابخانه مشابه دارد که به عنوان تکتون استفاده می شود، فدراسیون ماژول می تواند به یک نسخه مشترک کاهش یابد یا ارتقا یابد، این اغلب امن است، اما می تواند شکستن اگر API کتابخانه تغییر کرد. Pin تکتون وابستگی به یک نسخه و تست به طور کامل در یک محیط مرحله بندی که آینه تولید.

جایگزین های الگوی تکتون

هر منبع مشترک نیاز به الگوی تکتون ندارد، این گزینه ها را زمانی که تکتون کلاسیک بیش از حد سفت و سخت است، بررسی کنید:

  • ارائه دهندگان متن - در ریزمجت های React، پوسته را با یک زمینه که پیکربندی یا حالت حقیقت را از طریق آگهی عبور می کند، بسته بندی می تواند بدون تکیه بر یک جهان، بافت را مصرف کند.
  • رویدادهای مشتری و پیام ارسال [FLT 1] - استفاده از یا یک اتوبوس رویداد سبک است.این ماژول ها را جدا نگه می دارد و اجازه می دهد تا چندین مورد برای همزیستی در صورت لزوم وجود داشته باشد.
  • فروشگاه های فعال با نمونه های دامنه - ایجاد نمونه های جداگانه فروشگاه در هر میکروfrontend، اما همگام سازی حالت بحرانی از طریق یک پل سبک وزن، این باعث انزوای هر فاز در حالی که هنوز قادر به جمع آوری داده های مشترک.
  • چارچوب های تزریق هزینه - چارچوب هایی مانند InversifyJS یا ظروف سفارشی DI اجازه می دهد تا شما یک دامنه تکتون را در سطح container ثبت کنید که می تواند به پوسته یا به یک زیردرخت کوچک محدود شود.

نتیجه گیری

الگوی تکتون یک ابزار ارزشمند در معماری های کوچک است که به طور متفکرانه ای اعمال می شود.این در ارائه یک منبع حقیقت برای خدمات غیر پرولتری مانند پیکربندی، تأیید و ورود به سیستم های مبتنی بر ماژول، ابتدایی سازی تنبل، مدیریت چرخه روشن و دسترسی کنترل شده، تیم ها می توانند مزایای تکتون ها را بدون سقوط به دام انداختن الگوهای جایگزین و محدودسازی جهانی که همیشه می توانید به شیوه های کوچک سازی و محدود کردن آن توجه کنید، به استفاده از یک اصل واحد، استفاده کنند.