
آموزش معماری مایکرو فرانت اند (Micro-frontend Architecture)
آموزش معماری مایکرو فرانت اند (Micro-frontend Architecture) یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، آموزش مقدماتی معماری مایکرو فرانت اند (Micro-frontend Architecture) است که با نام اصلی Micro-frontends Architecture از شرکت Pluralsight منتشر شده است.
معماری Micro Frontend چیست؟
معماری Micro Frontend یک گسترش و یا extension از معماری مایکروسرویسی است که در توسعه web application ها در frontend کاربرد دارد. امروزه از معماری micro frontend به منظور ساختن واسط های کاربری بسیار قوی در web application ها استفاده می شود. این واسط کاربری با استفاده از معماری مایکروسرویسی که در backend پیاده سازی شده است، تکمیل می گردد. به مرور معماری micro frontend بخشی از اپلیکیشن شده و اغلب توسط تیم های توسعه نرم افزار مجزایی نگهداری می شود. گاهی می توان یک اپلیکیشن را از ابتدای کار به صورت micro frontend ایجاد کرد. ضمناً می توان پس از مدتی یک frontend monolith را نیز با refactor کردن به micro frontend تبدیل نمود.

یکی از دلایل مطرح شدن مفهوم micro frontend حل کردن مشکلات مربوط به اپلیکیشن هایی که با استفاده از frontend monolith پیاده سازی می شوند، است. در معماری micro frontend تیم های توسعه نرم افزار به صورت cross-functional عمل می کند و feature های مختلف را به صورت end-to-end توسعه می دهد. به عبارت دیگر feature ها از user interface تا سطح نهایی یعنی دیتابیس توسعه داده خواهند شد. استفاده کردن از معماری micro frontend اغلب برنامه با استفاده از business domain های مختلف تفکیک می شود. این موضوع کمک می کند تا اعضای تیم نرم افزار بتوانند با انعطاف پذیری و قابلیت تست پذیری و البته سرعت بالاتری معماری مورد نظر را پیاده سازی کند.
مزیت های استفاده از معماری Micro Frontend چیست؟
همانطور که می دانید امروزه فریم ورک های مختلفی مبتنی بر زبان جاوا اسکریپت با سرعت بالایی، معرفی می شوند. هر کدام از این تکنولوژی ها مزیت ها و معایب خاص خود را دارند. در زمان انتخاب کردن یکی از این تکنولوژی ها باید به بدست آوردن حداکثر مزیت ها و به حداقل رساندن ریسک ها فکر کنید.

استفاده کردن از best practice های مربوط به معماری micro frontend کمک می کند تا شما بتوانید تکنیک ها و سرویس های مختلفی را برای پیاده سازی معماری نرم افزار استفاده کنید. برخی از مزیت های استفاده کردن از معماری micro frontend ها به قرار زیر هستند:
- پشتیبانی کردن از isolation در سطح کد و یا در سطح سبک و یا استایل برنامه نویسی.
- استقلال در انتخاب تکنولوژی های مختلف توسط تیم های توسعه نرم افزار.
- سرعت بالا در development و deployment برنامه.
- امکان استفاده کردن راحت تر از continuous deployment.
- ساده تر شدن روال تست نرم افزار.
- عدم انتشار تغییرات از یک قسمت برنامه به قسمت های دیگر.
- قابلیت نگهداری بالاتر و افزایش قابلیت استقامت و یا resilience برنامه.
اصول طراحی Micro Frontend برای تقسیم مسئولیت بین تیمها
در آموزش Micro-frontends Architecture، معماری فرانتاند از زاویه تکامل معماری نرمافزار بررسی میشود تا مشخص شود چه زمانی تقسیم یک برنامه بزرگ به بخشهای مستقل میتواند منطقی باشد. یکی از موضوعات مهم، تفاوت Micro Frontendهای مستقل با ساختارهای Monolith است؛ زیرا جدا کردن ظاهری بخشهای رابط کاربری لزوماً به معنای استقلال واقعی آنها نیست. با بررسی قانون Diminishing Returns نیز یاد میگیرید که افزایش تعداد بخشهای مستقل همیشه نتیجه بهتری ندارد و پیچیدگی هماهنگی میان اجزا ممکن است بخشی از دستاوردهای معماری را کاهش دهد.
استقلال فنی بهتنهایی برای طراحی یک Micro Frontend موفق کافی نیست. این آموزش بر مفاهیمی مانند Autonomous بودن، مالکیت تیمی و Tech Agnostic بودن تمرکز میکند تا بتوانید مرز مسئولیت هر بخش را دقیقتر تعریف کنید. برای مثال، وقتی یک تیم مسئول توسعه و نگهداری یک بخش مشخص از رابط کاربری است، باید روشن باشد که تا چه اندازه میتواند مستقل تصمیم بگیرد و چگونه با بخشهای دیگر تعامل دارد. این اصول به معماران نرمافزار و رهبران تیم کمک میکنند ساختار فرانتاند را با نحوه سازماندهی تیمها هماهنگ کنند.
چگونه Micro Frontend را با تجربه کاربری و ارزش کسبوکار هماهنگ کنیم؟
تقسیم رابط کاربری به بخشهای کوچکتر نباید باعث شود تجربه کاربر نهایی نادیده گرفته شود. در این آموزش، User Experience در کنار اصول طراحی Micro Frontend بررسی میشود تا توجه داشته باشید که استقلال اجزای فنی باید با یکپارچگی تجربه استفاده از محصول همراه باشد. اگر هر بخش به شکل جداگانه توسعه پیدا کند، همچنان لازم است تعامل میان قسمتهای مختلف برنامه برای کاربر قابل فهم باقی بماند. این نگاه کمک میکند تصمیمهای معماری را فقط بر اساس سهولت توسعه یا جداسازی کدها ارزیابی نکنید.
رویکرد Value Driven و مفهوم Microservices Driven نیز در مباحث آموزش جای میگیرند. این مفاهیم کمک میکنند بررسی کنید آیا تقسیمبندی فرانتاند واقعاً مسئلهای از محصول یا سازمان را حل میکند یا صرفاً تعداد اجزا و مرزهای فنی را افزایش میدهد. برای نمونه، اگر چند تیم روی بخشهای متفاوت یک محصول کار میکنند، معماری انتخابشده باید با نیازهای تحویل مستقل و مسئولیتپذیری آنها تناسب داشته باشد. با کنار هم گذاشتن این معیارها، میتوانید درباره میزان استقلال، مرزهای معماری و هزینه هماهنگی میان Micro Frontendها تصمیم دقیقتری بگیرید.
سرفصل مطالب آموزش ویدئویی معماری مایکرو فرانت اند (Micro-frontend Architecture)
فصل اول: مقدمه دوره آموزشی- مقدمه دوره آموزشی
- مقدمه
- تکامل پیدا کردن معماری نرم افزار
- مایکروسرویس ها
- Micro Frontend های Monolith
- بررسی قانون Diminishing Returns
- بررسی Frontend ها
- جمع بندی
- مقدمه
- قابلیت های مستقل یا Autonomous بودن
- مالکیت تیمی و یا Team Ownership
- مستقل از تکنولوژی و یا Tech Agnostic
- تجربه کاربری و یا User Experience
- ارزش محور بودن و یا Value Driven
- مایکروسرویس بودن و یا Microservices Driven
- جمع بندی
- مقدمه
- بررسی Micro App ها
- بررسی Iframe ها
- بررسی Web Component ها
- بررسی Component های مبتنی بر فریم ورک
- بررسی Transclusion
- جمع بندی







