معماری فرانتاند: از مونولیت تا میکروفرانتاند
خلاصهٔ کاملتر
فرانتاند مسترز دورهٔ Frontend Architecture رو با تدریس ماکسی فریرا منتشر کرده (۱۳ جولای ۲۰۲۶). به گفتهٔ مدرس، مسیر دوره اینه که یه پلتفرم فروشگاهی شبیه Shopify رو با ریاکت بسازی و بعد قدمبهقدم مقیاسش بدی: از مونولیت به مونولیت ماژولار، بعد مونوریپو و آخرش میکروفرانتاند. شروع دوره مفهومیه و چهار ستون معماری رو میچینه: سبک معماری، ویژگیها، تصمیمها و کامپوننتهای منطقی.
تو بخش مونولیت، ماکسی با مدل C4 معماری رو تصویر میکنه و نشون میده مرزهای مبهم بین ماژولها چطور کدبیس رو به یه «توپ گِل» تبدیل میکنه. راهحلی که پیشنهاد میده استفاده از زیردامنههای DDD برای پیدا کردن ماژولهاست و بعد سفت کردن مرزها با ابزار: پلاگین boundaries تو ESLint و بهعنوان جایگزین، Dependency Cruiser.
قدم بعدی مونوریپوئه: همهچیز میاد تو یه ورکاسپیس و به پکیجهای جدا شکسته میشه — پوستهٔ اپ، ماژولها، shared، UI و tooling. نویسنده Turborepo رو برای کش، هماهنگی تسکها و مدیریت وابستگیها معرفی میکنه و نشون میده با تگگذاری پکیجها میشه جهت وابستگیها رو مجبور کرد و وابستگی حلقوی رو موقع اجرا گرفت. گراف وابستگی و DevTools هم برای دیدن ساختار پروژه هست.
بخش آخر میره سراغ میکروفرانتاند: از iframe برای ایزوله کردن تا وبکامپوننتها و در نهایت Module Federation که کد رو موقع اجرا بین اپهای جدا به اشتراک میذاره. دوره تنظیم host و remote، مذاکره سر وابستگیهای مشترک مثل react و react-dom، لود غیرهمزمان کامپوننت با React.lazy و مرز Suspense، و مدیریت خطا وقتی remote در دسترس نیست رو پوشش میده. برای state هم بهجای props سنگین، Nanostores پیشنهاد میشه.
نویسنده میگه Module Federation 2.0 چیزهایی مثل mf-manifest.json و ثبت remote موقع اجرا رو اضافه کرده و بحث نسخهبندی و سرویس دیسکاوری تو یه معماری توزیعشده جدی میشه. در عین حال هشدار میده رفتن سراغ میکروفرانتاند بدون دلیل هزینه داره — از تداخل CSS و استایل گرفته تا پیچیدگی عملیاتی — و تصمیم باید بر اساس تحلیل هزینه باشه، نه مد روز.
نکات کلیدی:
- دوره از مونولیت شروع میکنه و تا میکروفرانتاند جلو میره، نه یهو
- مرزهای ماژول رو میشه با ESLint boundaries یا Dependency Cruiser اجبار کرد
- Turborepo کش، هماهنگی تسک و کنترل جهت وابستگیها رو میده
- Module Federation کد رو موقع اجرا بین اپهای مستقل شریک میکنه
- میکروفرانتاندِ بیدلیل، هزینهٔ استایل و پیچیدگی داره




