انتقل إلى المحتوى الرئيسي

الوحدة 14: تقنيات Spring Boot المتقدمة

أهداف الوحدة​

في نهاية هذه الوحدة، ستكون قادرًا على:

  • فهم البرمجة التفاعلية مع Spring WebFlux
  • تنفيذ نظام التخزين المؤقت باستخدام Redis
  • تكوين المراسلة غير المتزامنة مع RabbitMQ
  • إنشاء مهام مجدولة باستخدام @Scheduled
  • تطوير تطبيقات الوقت الحقيقي باستخدام WebSockets

المتطلبات الأساسية​

قبل البدء في هذه الوحدة، تأكد من إتقانك لـ:

  • الوحدات 1-12: أساسيات Spring Boot الكاملة
  • الوحدة 13: هندسة الخدمات المصغرة
  • Docker (لـ Redis، RabbitMQ)
  • مفاهيم البرمجة غير المتزامنة

خطة الوحدة​

الفصول النظرية​

#الفصلالمدةالوصف
1البرمجة التفاعلية1h30WebFlux، Mono، Flux، R2DBC
2التخزين المؤقت باستخدام Redis1h@Cacheable, @CacheEvict، Redis
3المراسلة غير المتزامنة1h15RabbitMQ، Spring AMQP
4المهام المجدولة45min@Scheduled, @Async، Cron
5WebSockets1hSTOMP، SockJS، الوقت الحقيقي

الأعمال التطبيقية​

#العمل التطبيقيالمدةالوصف
1تخزين مؤقت باستخدام Redis1hتخزين مؤقت لواجهة برمجة التطبيقات
2المراسلة باستخدام RabbitMQ1h30نظام الإشعارات
3دردشة WebSocket1h30تطبيق دردشة الوقت الحقيقي
4المهام المجدولة45minدفعات وتقارير تلقائية

المدة الإجمالية المقدرة: 10 ساعات


المفاهيم الأساسية​

البرمجة التفاعلية مقابل البرمجة الإمبراطورية​

إمبراطورية (Spring MVC):
- خيط لكل طلب
- حجب
- سهل الفهم
- محدود في القابلية للتوسع

تفاعلية (WebFlux):
- حلقة الأحداث
- غير حجب
- قابلية توسع عالية
- منحنى تعلم

متى تستخدم ماذا​

حالة الاستخدامالتقنية
API CRUD الكلاسيكيةSpring MVC
التنافسية العاليةWebFlux
البيانات المقروءة بشكل متكررCache Redis
فك ارتباط الخدماتRabbitMQ
إشعارات الوقت الحقيقيWebSocket
التقارير الدورية@Scheduled

المكدس التقني​

التقنيةالإصدارالاستخدام
Spring WebFlux3.2.xالبرمجة التفاعلية
Project Reactor3.6.xMono/Flux
Redis7.xالتخزين المؤقت الموزع
RabbitMQ3.12.xوسيط الرسائل
STOMP1.2مراسلة WebSocket

هيكلية الأعمال التطبيقية​

تطبيق متقدم
├── API REST (Spring MVC أو WebFlux)
├── طبقة التخزين المؤقت (Redis)
├── المراسلة (RabbitMQ)
├── WebSocket (STOMP)
└── المهام المجدولة

جاهز للبدء​

تأكد من تثبيت Docker لهذه الوحدة:

# التحقق من Docker
docker --version

# بدء Redis
docker run -d --name redis -p 6379:6379 redis:7-alpine

# بدء RabbitMQ
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

ابدأ الفصل 1: البرمجة التفاعلية


العودة إلى الصفحة الرئيسية