Skip to content

تطوير نظام الخدمات المصغرة للتجارة الإلكترونية للمواد الغذائية الطازجة - مشروع عملي

نظرة عامة

يتطلب منك هذا المشروع العملي العمل على أساس مستند متطلبات منتج (PRD) حقيقي، وبناء نظام خدمات مصغرة للتجارة الإلكترونية للمواد الغذائية الطازجة من الصفر. على عكس مشاريع الخدمة الواحدة السابقة، يتم تقسيم الواجهة الخلفية لهذا المشروع إلى خدمات مستقلة متعددة حسب الأعمال، وتوحيدها للخارج من خلال بوابة API. ستتعلم كيفية تصميم حدود الخدمات وكيفية التعامل مع مشاكل تناسق البيانات عبر الخدمات.

هذا هو مشروع Stage 2 التطبيقي الشامل. هندسة الخدمات المصغرة شائعة جداً في العمل الفعلي، وبعد إتقان الأفكار الأساسية لتقسيم الخدمات وتوجيه البوابة، ستتمكن من التعامل مع تصميم أنظمة خلفية أكثر تعقيداً.

المعارف المسبقة

قبل البدء في هذا المشروع، يجب أن تكون قد أتقنت المحتوى التالي:

أهداف التعلم

بعد إكمال هذا المشروع العملي، ستتمكن من:

  1. قراءة PRD واستخراج قائمة مهام تطوير نظام الخدمات المصغرة
  2. تقسيم حدود الخدمات حسب مجال الأعمال (المصادقة، المنتجات، المخزون، الطلبات)
  3. تصميم وتنفيذ مسارات بوابة API
  4. التعامل مع مشاكل خصم المخزون وتناسق الطلبات عبر الخدمات
  5. إكمال الاختبار الشامل من طرف إلى طرف وتسليم نموذج أولي للخدمات المصغرة قابل للعرض

مقدمة المشروع

المنتج الذي ستبنيه هو نظام خدمات مصغرة للتجارة الإلكترونية للمواد الغذائية الطازجة:

النظام الفرعيالمسؤولية
واجهة المستخدمتصفح المنتجات، تقديم الطلبات، عرض الطلبات
واجهة الإدارةإدارة المنتجات، إدارة المخزون، إدارة الطلبات

يتم تقسيم الواجهة الخلفية حسب الأعمال إلى الخدمات التالية:

الخدمةالمسؤولية
API Gatewayمدخل موحد، توجيه الطلبات، التحقق من المصادقة
Auth Serviceتسجيل المستخدمين، تسجيل الدخول، إصدار JWT
Catalog Serviceإدارة معلومات المنتجات
Inventory Serviceإدارة كميات المخزون
Order Serviceإنشاء الطلبات، إدارة الحالات

مدخل PRD

مستند متطلبات هذا المشروع متاح على GitHub: عرض PRD

الجزء الأول: تحليل المتطلبات

1.1 قراءة PRD

افتح مستند PRD، وركز على الإجابة عن الأسئلة التالية:

  • كيف يتم تقسيم الخدمات؟ ما هي حدود مسؤولية كل خدمة؟
  • ما هي الصفحات في واجهة المستخدم وواجهة الإدارة على التوالي؟
  • ما هي استراتيجية خصم المخزون بعد تقديم الطلب؟ كيف يتم التعامل مع النجاح / الفشل / انتهاء المهلة؟
  • ما هي القدرات المعقدة التي يتم تأجيلها في الإصدار الأول (مثل المعاملات الموزعة، طوابير الرسائل)؟

WARNING

إذا لم تكن لديك إجابات واضحة على الأسئلة أعلاه، لا تبدأ في كتابة الكود. سوء فهم المتطلبات هو السبب الأكثر شيوعاً لإعادة العمل.

1.2 تأكيد بنية النظام

mermaid
flowchart TD
  prd["PRD"] --> fe["الصفحات الأمامية"]
  fe --> gw["API Gateway"]
  gw --> auth["Auth Service"]
  gw --> catalog["Catalog Service"]
  gw --> inventory["Inventory Service"]
  gw --> order["Order Service"]
  order --> inventory

الجزء الثاني: بناء هيكل المشروع

2.1 إنشاء هيكل المشروع

مرجع لموجه الأوامر:

text
بناءً على PRD الحالي، ساعدني في إنشاء هيكل مشروع نظام الخدمات المصغرة للتجارة الإلكترونية للمواد الغذائية الطازجة.

المتطلبات:
1. إنشاء هيكل واجهة المستخدم وواجهة الإدارة الأمامية
2. إنشاء خمسة أدلة: api-gateway و auth-service و catalog-service و inventory-service و order-service
3. كل خدمة تقوم فقط بإنشاء مدخل أدنى قابل للتشغيل
4. عدم الاتصال بقاعدة بيانات حقيقية أو نظام دفع في البداية

2.2 التحقق من هيكل المشروع

تحقق من كل عنصر:

  • [ ] هيكل أدلة الخدمات الخمسة واضح
  • [ ] يمكن بدء API Gateway وإعادة توجيه الطلبات
  • [ ] واجهات الفحص الصحي لكل خدمة متاحة
  • [ ] يمكن الوصول إلى صفحات واجهة المستخدم وواجهة الإدارة

الجزء الثالث: التطوير التكراري

3.1 التقدم حسب الوحدات

  1. API Gateway: تكوين المسارات، وسيط التحقق من JWT
  2. Auth Service: التسجيل، تسجيل الدخول، إصدار JWT
  3. Catalog Service: عمليات CRUD للمنتجات، استعلام القائمة
  4. Inventory Service: استعلام المخزون، خصم المخزون
  5. Order Service: إنشاء الطلبات، تدفق الحالات، الربط مع المخزون
  6. واجهة الإدارة: إدارة المنتجات، إدارة المخزون، إدارة الطلبات

3.2 الفحص الذاتي للوحدات

عنصر الفحصطريقة التحقق
مسارات البوابةهل يتم إعادة توجيه واجهات كل خدمة بشكل صحيح عبر البوابة
عزل الصلاحياتهل واجهات المستخدم وواجهة الإدارة معزولة
توافق البياناتهل بيانات المنتجات والمخزون متزامنة
حلقة المعاملاتبعد تقديم الطلب، هل خصم المخزون وحالة الطلب متسقة
معالجة الفشلعند عدم كفاية المخزون أو انتهاء المهلة، هل توجد آلية تعويض

الجزء الرابع: الاختبار والنشر

4.1 اختبار من طرف إلى طرف

تحقق من السيناريوهات التالية على الأقل:

  • تصفح المنتجات ← إضافة إلى سلة التسوق ← تقديم طلب ← عرض الطلب
  • المسؤول ← إضافة منتج ← تحديث المخزون ← عرض الطلب

المخرجات المطلوبة

بعد إكمال هذا المشروع، يجب عليك تقديم المحتوى التالي:

  • [ ] رابط عرض عبر الإنترنت قابل للوصول
  • [ ] رابط مستودع الكود المصدري (يتضمن README)
  • [ ] مستند PRD
  • [ ] لقطات شاشة للصفحات الرئيسية (قائمة المنتجات، صفحة الطلب، صفحة الطلبات، لوحة الإدارة)
  • [ ] فيديو عرض مدته 60 ثانية

معايير التقييم

البُعدالمتطلبات الأساسيةالمتطلبات المتقدمة
توافق PRDالصفحات والوظائف وتقسيم الخدمات يتوافق بشكل أساسي مع PRDالقدرة على شرح أسباب تقسيم الخدمات بوضوح
حلقة المنتجتصفح ← تقديم طلب ← خصم مخزون ← عرض الطلب يعمل بشكل كاملعند انتهاء مهلة الطلب أو عدم كفاية المخزون توجد آلية تعويض
بنية الخدماتيمكن بدء كل خدمة بشكل مستقل والوصول إليها بشكل موحد عبر البوابةالاتصال بين الخدمات لديه معالجة أخطاء وإعادة محاولة
قدرات لوحة الإدارةإدارة المنتجات والمخزون والطلبات قابلة للتشغيلواجهة الإدارة لديها إحصائيات بيانات
اكتمال الهندسةتم ربط سلسلة الواجهة الأمامية والبوابة والخدمات وقاعدة البياناتيوجد Docker Compose أو تنسيق مشابه

المراجع