تخطَّ إلى المحتوى

كل المنشورات / بنية التطبيقات / №07

الـ Microservices في الواجهة الأمامية: هل نحتاجها فعلاً؟

تفيد الـ Micro Frontends في التطبيقات الكبيرة التي تعمل عليها عدة فرق. أما في أغلب المشاريع فيكفي Monorepo، أو تقسيم المشروع نفسه إلى وحدات واضحة، دون تعقيد زائد.

اقرأه على لينكدإن

في عالم الـ Frontend الحديث، صرنا نسمع كثير عن مفهوم Microservices، مو بس على مستوى الـ Backend، بل كمان على مستوى الواجهة

لكن السؤال الحقيقي:
شو يعني Microservices بالـ Frontend؟ وإيمتى فعلاً نحتاجها؟

شو هي Microservices بالـ Frontend؟

الفكرة ببساطة هي تقسيم التطبيق الكبير إلى أجزاء صغيرة مستقلة (Modules أو Apps)، كل جزء مسؤول عن Feature معينة، ويتم تطويره ونشره بشكل مستقل.

مثلاً:

  • صفحة المنتجات → Module مستقل
  • صفحة الدفع → Module مستقل
  • لوحة التحكم → Module مستقل

إمتى نستخدمها؟

مو كل مشروع بحاجة لهالنوع من التعقيد، نستخدمها عادةً لما:

  • المشروع كبير وفيه Teams متعددة
  • في حاجة لنشر Features بشكل مستقل
  • التطبيق عم يكبر بسرعة وصار صعب إدارته كمشروع واحد

أما بالمشاريع الصغيرة أو المتوسطة؟
غالباً بتكون Overkill وبتزيد التعقيد بدون فائدة حقيقية.

طيب شو قدم Next.js كحل؟

Next.js قدم حل قوي من خلال Monorepo Architecture

شو هو Monorepo؟

هو إنك تحط كل الـ Apps والـ Packages ضمن Repository واحد، مثل:

apps/web
apps/admin
packages/ui
packages/utils

وكل package او app اله ال dependencies الخاصة فيه ويمكن تشغيله بشكل مستقل

ميزاته:

  • مشاركة الكود بسهولة (UI components, utils…)
  • إدارة dependencies بشكل مركزي
  • مناسب لفرق متعددة تشتغل على نفس المشروع
  • قابل للتوسع بشكل كبير

بس… هل Monorepo هو الحل دائماً؟
مو بالضرورة 👀
لأنه:

  • ممكن يكون معقد بالبداية
  • Setup وصيانته تحتاج خبرة
  • مو مناسب لكل الفرق أو المشاريع

الحل الأبسط

بدل ما تروح مباشرة لـ Monorepo، ممكن تبدأ بـ: Modular Architecture داخل نفس المشروع

يعني تقسيم المشروع إلى Modules او plugins واضحة:

plugin_dir/auth
plugin_dir/products
plugin_dir/checkout

ميزاته:

  • بسيط وسهل التطبيق
  • يقلل التعقيد
  • بيساعد بتنظيم الكود بشكل كبير
  • خطوة انتقالية ممتازة قبل Microservices

الخلاصة

  • الـ Microservices بالـ Frontend قوية… لكن مو دايماً ضرورية
  • Monorepo حل ممتاز للمشاريع الكبيرة
  • Modular structure هو الخيار الذكي كبداية

💬 هل اشتغلت قبل على Micro Frontend أو Monorepo؟ وكيف كانت التجربة؟

Esc

↑↓ للتنقل · Enter للفتح · Esc للإغلاق