فوائد اعتماد مبادئ صلبة في هيكل الخدمات البالغة الصغر

مقدمة

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

ما هي مبادئ SOLID؟

(SOLID) هي المختصر الذي أدخله روبرت س. مارتن (العمدة بوب) يمثل خمسة مبادئ تصميمية تشجع على وضع مدونة ذات وجهة موضوعية قابلة للاستمرار ومكثفة، وفي سياق الخدمات الصغرى، تترجم هذه المبادئ إلى خدمات مفصَّلة ومركزة وعقود واضحة بينهما.

مبدأ المسؤولية الوحيدة

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

المبدأ المفتوح/المغلق

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

Liskov Substitution Principle (LSP)

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

Interface Segregation Principle (ISP)

وهناك العديد من الوصلات البينية الخاصة بكل زبون أفضل من واجهة واحدة للأغراض العامة، وهذا يترجم في الخدمات البالغة الصغر إلى تعاريف صغيرة ومركزة للمواصفات أو الأحداث تتناسب مع احتياجات كل مستهلك، وعلى سبيل المثال، قد تعرض خدمة العملاء نقاط نهاية منفصلة لاسترجاع البيانات، ومعالجة الإدارة، ووضع الولاء بدلا من المسار الأحادي " التجاري " .

مبدأ الإعالة

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

لماذا مبادئ SOLID حرجة في الخدمات الدقيقة

وتتطلب الخدمات الصغيرة في جوهرها حدودا واضحة، واتساعا فضفاضا، وتماسكا عاليا، وتوفر مبادئ SOLID إطارا مثبتا لتحقيق هذه الصفات، فبدونها، كثيرا ما تقع الأفرقة في محاربة العواصم مثل " الاحتكارات الموزعة " ، حيث تقترن الخدمات بشدة من خلال قواعد البيانات المشتركة أو معايير الثرثرة، ويمنع تطبيق هذه المعايير من إنفاذ الفصل بين الشواغل على مستوى الهيكل.

وعلاوة على ذلك، ومع تزايد عدد الخدمات، تزداد تكلفة التغييرات بشكل كبير إذا لم تدار المعالين، وتبقي مبادئ SOLID مقومات واضحة وغير قابلة للحل، مما يتيح للأفرقة تطوير الخدمات بشكل مستقل، ويتوافق مباشرة مع أهداف الخدمات الصغرى: قابلية النشر المستقلة، والارتقاء، والقدرة على التكيف.

فوائد تطبيق مبادئسولي في الخدمات البالغة الصغر

تعزيز القدرة على الاستمرار

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

تحسين القدرة على التصعيد

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

مرونة أكبر وإمكانية إعادة الاستخدام

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

أفضل

فالخدمات المعزولة ذات الوصلة البينية المحددة جيداً أسهل بكثير من الاختبار، إذ أن اختبار الوحدة للخدمة التي تعتمد على الخلاصات بدلاً من الخدمات الملموسة يتيح للمطورين استخدام الطوابق أو المشابك، ويصبح اختبار التكامل أبسط لأن كل خدمة يمكن أن تدار بمعزل عن أداة الاختبار، ويؤدي ارتفاع التغطية بالاختبار إلى انخفاض عدد حوادث الإنتاج وتواتر أسرع للتغذية المرتدة.

التسامح والارتقاء

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

Easier Onboarding and Team Autonomy

وعندما تتبع الخدمات برنامج التدريب على التعليم الخاص وبرنامج دعم التنفيذ، تكون مسؤولياتها واضحة ومحدودة، ويمكن للمطورين الجدد أن يفهموا غرض الخدمة بسرعة، ويمكن أن تمتلك الأفرقة مجموعة من الخدمات ذات الصلة دون أن تحتاج إلى معرفة عميقة بالآخرين، مما يتيح أنواع الأفرقة المستقلة ذاتياً التي تعدها الخدمات الصغرى.

التطبيق العملي لبرنامج SOLID في الخدمات البالغة الصغر

تحديد حدود الخدمات مع نظام تخطيط البرامج

فالبدء بحذف مجالكم من السياقات المقيدة، وكل سياق يصبح خدمة، مثلا، في نظام التجارة الإلكترونية، إنشاء خدمات منفصلة للخصائص والعربات والأوامر والمدفوعات والشحنات والاستعراضات، وكل خدمة تملك بياناتها وقواعدها التجارية، وتتجنب إنشاء " خدمة للخصوبة " تخلط بين المسؤوليات.

تصميم واجهات متطاولة مع مكتب المقارنات الدولية وبرنامج دعم التنفيذ

وضع تعاريف للوصلات البينية (التعاقدات) باستخدام البروتوبوف أو برنامج سباعي أو أسينكاب.(ه) ضمان أن يتم طباعة هذه الوصلات البينية وأن تكون قابلة للتكثيف، فعلى سبيل المثال، ينبغي أن يشمل حدث " أو ما تم إنشاؤه " مجالات تتأكد منها، ولكن يسمح بمجالات مستقبلية عن طريق الممتلكات الاختيارية، وتجنب حدوث تغييرات جديدة بإضافة نقاط نهائية أو أنواع رسائل بدلا من تعديل ما هو قائم منها.

ضمان الإحلال مع نظام الأفضليات المعينة

وعندما تنفذ الخدمات المتعددة نفس الوصلة البينية (مثلاً، المكيفات المتعددة لبوابات الدفع)، تُوحّد العقد، وتُكتب اختبارات التكامل التي تُحقّق من أي تنفيذ تُلتزم بالسلوك المتوقع (مثل قبول الدفع، يعود النجاح أو الفشل بمدونات الأخطاء المتسقة)، مما يجعل من المبادىء آمنة.

تجنب التبعية عن طريق الرسائل وخدمة

وبدلا من تقديم الخدمات إلى شركة A، وهي تقوم بالاتصال المباشر بشركة HTTP، وتنشر خدمة " A " حدثاً إلى وسيطة للرسالة (كافكا، رابيتماك) أو تستخدم مشهداً للخدمة (إستيو، لينكريد) ويمكن لموسم الخدمات أن يعالج سياسات الفرز والتوقيت وكسر الدوائر، ولا يزال منطق الأعمال داخل الخدمة ألف مفتوناً للشبكة الأساسية.

التحديات والنظر في المسألة

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

وثمة تحد آخر يتمثل في الصيغ والتوافق الرجعي، فبعد أن يتطلب مكتب المقارنات الدولية سياسات دقيقة لإلغاء الاستهلاك، يمكن أن تساعد الأدوات مثل سجلات الكيماويات (سجل الكيماويات المؤثرة، أبيكوريو) على إدارة مستويات التوافق.

وأخيرا، مسألة ثقافة الأفرقة والمواءمة التنظيمية - بدون وجود ملكية واضحة واتصالات، يمكن أن تقترن حتى خدمات SOLID المحددة جيدا بعادات تنظيمية (مثل قواعد البيانات المشتركة أو المكتبات المشتركة) ويجب أن تدعم ممارسات التكامل المستمر والمكافحة النشر المستقل.

خاتمة

(ج) اعتماد مفاهيم [مخطط الخدمة المنزلية] في بنية الخدمات الصغرى ليس دليلاً فضياً، ولكنه دليل قوي لنظم البناء التي يمكن صيانتها وقابلية للتكرار ومرنة، بالتركيز على مسؤوليات واضحة، وعقود مستقرة، وقابلية للاستبدال، ووصلات بينية مُحكمة، وقابلية للتجنب، يمكن أن تتجنب الأفرقة الكثير من المجازف المشتركة للنظم الموزعة.