حسن إبراهيم، مهندس برمجيات بخبرة أكتر من 14 سنة، مهتم بـ Microservices، DDD، Software Architecture، eXtreme Programming وتحسين طرق الشغل. يناقش موضوع المايكرو سيرفيسز (Microservices) بشكل شامل، مركّزًا على الفرق بين المونوليثيك (Monolithic Architecture) والمايكرو سيرفيسز، وكيفية اتخاذ القرار الصحيح بتبني أحدهما بناءً على متطلبات العمل والتحديات التقنية. يبدأ النقاش بتوضيح أن المايكرو سيرفيسز ليست الحل السحري لكل مشاكل البرمجيات، بل هي أداة معقدة تتطلب فهمًا عميقًا للبزنس، البنية التحتية، فريق العمل، ومستوى التعقيد.
يشرح حسن ضرورة دراسة الحالة العملية لاختيار البنية المناسبة، ويؤكد أن الانتقال إلى المايكرو سيرفيسز يجب أن يكون مدفوعًا بحاجات فعلية مثل توسع الفريق، الحاجة لعزل الفشل، أو التعامل مع تحميل عالي، وليس مجرد اتباع موضة تقنية. كما يوضح أن البدء دائماً بالمونوليثيك MVP (منتج قابل للتطبيق بأقل الخصائص) هو الخيار الأمثل لمعرفة مدى نجاح الفكرة في السوق قبل التفكير في تعقيدات المايكرو سيرفيسز.
يناقش المهندس حسن أهمية دومين دريفن ديزاين (Domain Driven Design) كخطوة أساسية قبل الانتقال للمايكرو سيرفيسز، حيث يساعد هذا النهج في تقسيم النظام بشكل منطقي بناءً على طبيعة الأعمال، مما يسهل إدارة التطوير والتوسع لاحقًا.
كما يتناول الحديث مشاكل المايكرو سيرفيسز مثل الكاسكيدين فيليرز (Cascading Failures)، تعقيد الإدارة، صعوبة التنسيق بين الخدمات، ومسألة فصل قواعد البيانات لكل خدمة، مشددًا على أن هذه القرارات يجب أن تُتخذ بعناية بعد تقييم شامل للمتطلبات الفنية والتنظيمية.
في نهاية الحلقة، يشارك حسن تجربته الشخصية في الانتقال من تطوير تطبيقات الموبايل إلى تطوير الباك إند، ويبرز أهمية التعلم المستمر، وضع الأهداف الواضحة، وتحمل المسؤولية في تطوير المهارات لتحقيق مكانة متقدمة في مجال الهندسة البرمجية.
مواضيع الحلقة:
- ايه انطباع حسن عن الـ Microservices
- امتى استخدم Microservices بشكل عملي
- هل فعلاً أحتاج أبدأ بمايكروسيرفيس بعد الـ MVP؟
- التريد أوف الحقيقي في المايكروسيرفيس: بين السهولة والاستقرار
- ما هو الـ Domain Driven Design؟
- هل لازم حد يتعلم الـ Domain Driven Design ويمشي بكل الخطوات؟
- الـ Checkout القاتل (55 ثانية انتظار)
- حسن بقا شاطر ازاي ؟
- نصيحة حسن للمبرمجين

