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

فهم التحديات

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

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

استراتيجيات لزيادة فعالية

1 - وضع مبادئ توجيهية واضحة وموضوعية

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

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

2- إجراء دورات تدريبية وحلقات عمل منتظمة

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

(د) جدول هذه الجلسات كجزء من مُعسكركم المُستمر، وتقديم حلقات عمل لتجديد المعلومات كل ستة أشهر أو كلما حدث تحول معماري كبير، والنظر في تسجيلها للتعلم المُتَبَلِّق، والاحتفاظ بوسطاء رفيعي المستوى ومتناوبين عبر الفرق؛ وهذا أيضاً ينشر ملكية الجودة الرمزية إلى ما وراء فريق الهندسة المركزية.() وقد اكتسبت الجهات الفاعلة في مجال البحث والتطوير مع الوافدين الجدد في جلسات التكوية حيث تعيد تشكيلة الحقيقية،

3- تنفيذ عمليات استعراض القوانين والبرامج المتعلقة بالعدوى

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

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

4- الأدوات الآلية المستخدمة

In human review alone cannot scale to thousands of commits per day. Leverage static analysis tools and linters that can detect violations of SOLID principles. For example, SonarQube offers rules for check if a class has too many responsibilities (a proxy for SRP) or if dependencies are too broad (ISP:]

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

5 - إنشاء الحرس المعماري

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

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

6- اعتماد التبني الإضافي

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

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

تعزيز ثقافة الجودة

وفيما عدا الاستراتيجيات التقنية، فإن إشاعة عقلية تُقيِّم الجودة وأفضل الممارسات أمر حاسم، وتشجيع إجراء مناقشات مفتوحة بشأن قرارات التصميم وتعزيز ملكية نوعية المدونة بين أعضاء الفريق، والبدء بمنتديات مفتوحة - مثل " تجمع للتصميم " أسبوعياً يمكن لأي مطور أن يتخذ قراراً تصميمياً لاستعراض الأقران، وعندما يقترح شخص ما حلاً يحترم مبادرة " SOLID " ، يُدرك علناً ما يبذلونه من جهود، مما يعزز السلوك الذي تودّه أن يُ توسيعه.

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

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

قياس النجاح

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

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

خاتمة

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

For further reading on SOLID principles in practice, check out Robert C. Martin’s original articles or the chapter on SOLID in ]Clean Architecture. Teams using C# can refer to Microsoft