Table of Contents
ويشير الحفاظ على تصميم البرامجيات إلى السهولة التي يمكن بها تعديل نظام البرامجيات أو توسيعه أو تحديثه أو تحديده على كامل دورة الحياة، وفي المشاريع الكبيرة التي يزداد فيها التعقيد بشكل مكثف مع كل سمة جديدة وتكامل، تتطلب البرامجيات التي تدون دون مراعاة القدرة على الاستمرار بذل جهد أربع مرات تقريباً للمحافظة على ما كان عليه تطويره، وهذا الواقع الصارخ يؤكد على السبب في أن تطبيق مبادئ التصميم السليمة ليس مجرد نجاحاً بل ضرورة حاسمة بالنسبة للمشروع الطويل الأجل.
ويكفل التصعيد أن يكون البرنامج قادرا على معالجة عبء العمل المتزايد مع نمو قاعدة المستعملين، بينما تركز القابلية للاستمرار على سهولة تعديل البرنامج الحاسوبي وثباته وتعزيزه بمرور الوقت، وبما أن بيئات البرامجيات تراكمت التعقيد من خلال التوسع المستمر في المكونات الجديدة وإدماجها، فإن الصيانة لم تعد تقتصر على التغييرات المفردة بل تشمل فهم العلاقات عبر النظام بأكمله، ويستكشف هذا الدليل الشامل كيف تستخدم مبادئ التصميم كأساس لبناء نظم برمجيات قابلة للاستمرار يمكن أن تتطور.
Understanding Software Maintainability in Large-Scale Systems
إن النظام القابل للاستمرار هو نظام سهل الفهم، وله شفرة واضحة ونموذجية، وهو موثق جيدا، ويخشى أن يُحدث أخطاء عندما تُجرى التغييرات، وفي سياق المشاريع الكبيرة، تصبح المحافظة على البيئة أكثر أهمية مع نمو الأفرقة، وتوسيع قواعد البيانات، ويجب أن تتكيف البرمجيات مع المتطلبات السوقية الناشئة.
The True Cost of Poor Maintainability
فالدين التقني يُتكبد عن طريق تقصير مثل عدم التعليق على المدونة، وعدم إعادة التصنيع لجعلها أكثر قابلية للقراءة، وتجاوز الوثائق، ومثل الديون المالية، فهو دين يجمع الاهتمام بمرور الوقت، ويدفع بتكلفة الصيانة، وتواجه المنظمات التي تتجاهل القدرة على الاستمرار عدة تحديات خطيرة تتفاقم بمرور الوقت.
وعندما تتعرض القدرة على الاستمرار للخطر، تواجه الأفرقة الإنمائية عقبات عديدة، إذ تتراكم مع مرور الوقت المواصفات السريعة والحلول المؤقتة، مما يجعل القاعدة الرمزية أكثر تعقيدا وأصعب إدارة شؤونها، في حين قد يمضي المطورون وقتا طويلا في فهم المدونة المعقدة قبل حل المسائل، مما يخلق دورة مفرغة يصبح فيها كل تعديل تدريجيا أكثر صعوبة ويستغرق وقتا طويلا.
فضعف القدرة على المحافظة يمكن أن يبطئ من تطوير السمات ويجعل الوفاء بالمواعيد النهائية للمشروع أمراً صعباً، فبعد الآثار المباشرة على الإنتاجية، تكافح الأفرقة مع المطورين الجدد الذين يجب أن يبحروا في هياكل رمزية موثقة ومتشابكة بشكل غير سليم، ويقلل الأثر التراكمي من المرونة، ويزيد من التكاليف، ويقلل من الميزة التنافسية في الأسواق السريعة التطور.
السمات الرئيسية للبرمجيات القابلة للاستمرار
وتتقاسم نظم البرامجيات التي يمكن صيانتها بدرجة عالية عدة خصائص أساسية تميزها عن نظرائها المصممين تصميما ضعيفا، ويعني التوحيد أن البرمجيات تنقسم إلى وحدات أو مكونات مستقلة منفصلة، وكل منها ذو قدرة وظيفية واضحة ومحددة، مما يجعل من الأسهل تعديل أو استبدال أجزاء فردية دون التأثير على النظام بأكمله.
ويتم القراءـة عندما يتم كتابة المدونة بوضوح وموجز، بعد إبرام اتفاقيات متسقة للتسمية، ومعايير الترميز، وممارسات التوثيق، مما يسهل على المطورين فهمها، والتشويه، وتعزيزها، وهذه السمة بالغة الأهمية في المشاريع الكبيرة التي يعمل فيها مطورون متعددون على مختلف أجزاء المنظومة في آن واحد.
وتشمل الخصائص الإضافية القابلية للاختبار، حيث يُصمم البرنامج لدعم الاختبار الشامل، مع وجود عناصر يمكن اختبارها بصورة مستقلة، كما أن القابلية للتداول تؤدي دورا حيويا، حيث أن البرمجيات تتيح التكوين من خلال الملفات أو البيئات الخارجية بدلا من القيم التي تم تحديدها بدقة، مما يسهل تكييف البرنامج مع بيئات أو متطلبات مختلفة دون تغيير الرمز.
مبادئ SOLID: مؤسسة التصميم القابل للاستمرار
(ب) إن برنامج " سوليد " هو عبارة عن مجموعة من خمسة مبادئ تصميمية لكتابة برامجيات قابلة للاستمرار والتقسيم، استحدثها روبرت س. مارتن واعتمدت على نطاق واسع في البرمجة الموجهة نحو الجسم، وهي بمثابة دليل لإيجاد بنية برمجية مرنة وقوية، وقد أثبتت هذه المبادئ اختبار الوقت، وظلت ذات صلة حتى مع تطور التكنولوجيا تطوراً كبيراً على مدى العقدين الماضيين.
مبادئ تصميم مارتن و ريش تشجعنا على إنشاء برامجيات أكثر قابلية للاستمرار وفهما ومرونة، ومع تزايد حجم تطبيقاتنا، يمكننا أن نخفض تعقيداتها ونوفر لنا الكثير من الصداع في الطريق، لنستكشف كل مبدأ بعمق ونفهم كيف يسهم في الحفاظ على البرامجيات.
مبدأ المسؤولية الوحيدة
وهذا المبدأ ينص على أن " الفئة ينبغي أن يكون لها سبب واحد للتغيير " ، مما يعني أن كل فئة ينبغي أن تكون لها مسؤولية واحدة أو وظيفة واحدة أو غرض واحد، وأن مبدأ المسؤولية الوحيدة يعتبر في كثير من الأحيان أهم مبادئ مبادرة " شولد " ، لأنه يتناول المسألة الأساسية المتمثلة في إدارة التعقيد.
كل صف أو وحدة مسؤولة عن جزء من وظيفة البرمجيات أكثر ببساطة يجب أن تحل كل فئة مشكلة واحدة فقط عندما يكون للفصل مسؤوليات متعددة التغييرات في المسؤولية الواحدة يمكن أن تؤثر بشكل غير مقصود على الآخرين، وخلق حشرات غير متوقعة وجعل الشفرة أصعب من اختبارها وصيانتها.
وفي الممارسة العملية، فإن تطبيق نظام المسؤولية القانونية يعني تحليل كل فئة أو وحدة من فئاته بعناية لضمان أن يكون له غرض واحد محدد تحديدا جيدا، مما ييسر فهم الرموز وصيانتها وإعادة استخدامها، وعلى سبيل المثال بدلا من إنشاء فئة واحدة تتولى التحقق من هوية المستخدم، وقطع الأشجار، والإخطارات بالبريد الإلكتروني، ستفصل هذه الشواغل في فصول متميزة، يركز كل منها على مجاله المحدد.
وهذا يعزز النمط والقابلية للاختبار والقدرة على الحفظ، وعندما يكون لكل عنصر غرض واضح ومفرد، يمكن للمطورين أن يحددوا بسرعة الرمز ذي الصلة عندما تنشأ الحشرات أو يلزم إضافة سمات جديدة، مما يقلل بدرجة كبيرة من الحمولة المعرفية المطلوبة للعمل مع قاعدة البيانات.
المبدأ المفتوح/المغلق
وينص المبدأ المفتوح على أن كيانات البرمجيات ينبغي أن تكون مفتوحة للتمديد، ولكن مغلقة للتعديل، ويشجع هذا المبدأ المطورين على تصميم نظم يمكن أن تستوعب وظائف جديدة دون تغيير النظر في المدونة القائمة التي يجري اختبارها والتي تعتبر حاسمة الأهمية للحفاظ على الاستقرار في المشاريع الكبيرة الحجم.
إن فوائد الالتزام بالمبدأ المفتوح/المغلق هي فوائد كبيرة، إذ أن التوسع يتيح إضافة سمات جديدة دون تعديل المدونة القائمة، ويقلل الاستقرار من خطر إدخال الحشرات عند إجراء التغييرات، وتساعد المرونة النظم على التكيف مع الاحتياجات المتغيرة بسهولة أكبر.
يجب أن تكون قادراً على توسيع نطاق سلوك صنفي دون تعديله، وهذا يتم عادة من خلال الاختراق وتعددية الصدر، مثلاً، عندما تصمم نظاماً لتجهيز المدفوعات، بدلاً من تعديل فئة مجهزي المدفوعات الأساسية لدعم أساليب الدفع الجديدة، ستخلق واجهة للدفعات بسيطة وتطبق أنواعاً جديدة من المدفوعات كصفوف منفصلة تمد هذه الوصلة.
ويكفل هذا النهج استمرار عدم المساس بالوظيفية الحالية واستقرارها، في حين أن القدرات الجديدة مدمجة بشكل لا يحصى، ويتيح المبدأ المفتوح للمطورين إضافة سمات جديدة دون تغيير الرمز القائم، مما يسهل التكيف مع المتطلبات الجديدة، وهذا أمر له قيمة خاصة في بيئات المؤسسات التي يمكن أن يكون فيها اختبار التراجع باهظ التكلفة ومستهلكا للوقت.
Liskov Substitution Principle (LSP)
وينص مبدأ ليزكوف للاستبدال على أن الوظائف التي تستخدم المرشدين أو الإشارات إلى فئات الأساس يجب أن تكون قادرة على استخدام المرشدين أو الإشارات إلى الفصول المستقاة دون معرفة ذلك، وهذا المبدأ يضمن تصميم الهرميات المتعلقة بالميراث بشكل صحيح، مع الحفاظ على الاتساق السلوكي في النظام.
وتوفر خطة العمل المحلية عدة ضمانات هامة، فالتعددية تتيح استخدام السلوك المتعدد المورففي، مما يجعل المدونة أكثر مرونة وقابلية للانتعاش، ويكفل الموثوقية أن تتقيد الفئات الفرعية بالعقد الذي تحدده الدرجة العليا، وضمانات القدرة على التنبؤ بأن الاستعاضة عن جسم من الدرجة العليا بأجسام من الدرجة الفرعية لن يكسر البرنامج.
وكثيرا ما تتجلى انتهاكات مبدأ ليزكوف البديل في السلوك غير المتوقع عندما تستخدم الطبقات المستقاة بدلا من فصول قاعدتها، مما قد يؤدي إلى حشرات من الصعب تشخيصها وإصلاحها، وذلك بضمان أن تكون الفصول المستقاة بديلا حقيقيا لدروس قاعدتها دون تغيير صحة البرنامج، فإن المطورين ينشئون نظما أكثر قوة وقابلية للتنبؤ.
مبدأ الفصل بين الأوجه
وينص مبدأ الفصل بين الوصلة على أنه لا ينبغي إجبار العملاء على الاعتماد على الوصلات البينية التي لا يستخدمونها، وهذا المبدأ يدعو إلى إيجاد وصلات وصلية مركزة ومحددة بدلا من واجهات احتكارية كبيرة تحتوي على أساليب لا صلة لها ببعض المنفذين.
عندما تكون الوصلات البينية واسعة جداً، فطبقات التنفيذ مجبرة على توفير وسائل لا تحتاجها فعلاً، مما يؤدي إلى تقريب غير ضروري وارتباك محتمل، بتفريق الوصلات البينية إلى عقود أصغر وأكثر تحديداً، تخلق نظاماً أكثر مرونة حيث تتوقف الفصول فقط على الأداء الذي تحتاجه فعلاً.
وهذا المبدأ مهم بصفة خاصة في النظم الواسعة النطاق التي قد تحتاج فيها عناصر مختلفة إلى مجموعات فرعية مختلفة من الوظائف، بدلا من إنشاء واجهة واحدة شاملة، تقومون بتصميم وصلات وصل متعددة ومركزة يمكن تنفيذها بصورة مستقلة أو مجتمعة، وتوفرون أقصى قدر من المرونة والحد الأدنى من الانقلاب.
مبدأ الإعالة
ويقضي مبدأ التبعية بأن يعتمد على الخلاصات وليس على الخرسانات، وهذا المبدأ يغير أساساً كيفية تفاعل المكونات، وتشجيع الانقلابات غير المستقرة، وجعل النظم أكثر مرونة وقابلية للاختبار.
وتخفض التقاربات بين الوحدتين من حيث الاختلاف، مما يجعل المدونة أكثر مرونة وأسهل اختبارا، بينما تتيح المرونة إجراء تغييرات في التنفيذ دون التأثير على العملاء، وتنشئ، حسب الخلاصات بدلا من التنفيذ الملموس، نظما يمكن فيها بسهولة مسح المكونات، أو تسخر لإجراء الاختبارات، أو تمدد دون تعديل المدونة القائمة.
وهذا يعني عملياً أن الوحدات الرفيعة المستوى ينبغي ألا تعتمد على الوحدات النموذجية المنخفضة المستوى مباشرة، بل ينبغي أن يعتمد كلاهما على الخلاصات (الصفوف المتقطعة أو المستنقعات)، وهذا يحول دون هيكل الإعالة التقليدي ويوفر فوائد كبيرة للاستمرارية، لأن التغييرات في تفاصيل التنفيذ المنخفضة المستوى لا تتطور عبر النظام بأكمله.
مبادئ التصميم التكميلي لتعزيز القدرة على الاستمرار
وفي حين تشكل مبادئ SOLID الأساس لتصميم برامجيات قابلة للاستمرار، فإن العديد من المبادئ التكميلية تزيد من تحسين نوعية المدونة والاستدامة الطويلة الأجل، ويؤدي تطبيق مبادئ صلبة دورا حاسما في ضمان جودة المشاريع وقابليتها للاستمرار وطويلتها، وتوفر مبادئ توجيهية وأفضل الممارسات لتصميم مدونة قوية وفعالة وكتابتها.
لا تكرّر نفسك
إن الرمز التكراري كابوس للنفقة، وينادي مبدأ جمهورية يوغوسلافيا الاتحادية بإنشاء أشكال مجردة من المعارف المتكررة، مما يعزز قابلية التداول من حيث الشفرة ويقلل من فرص الأخطاء، وعندما يظهر المنطق نفسه في أماكن متعددة، يجب تطبيق أي تغيير أو إصلاح للحشرات في كل مكان يوجد فيه المنطق، مما يزيد من احتمال عدم الاتساق والأخطاء.
ويشجع مبدأ جمهورية يوغوسلافيا الاتحادية المطورين على تحديد الأنماط والأوضاع المشتركة في رموزهم، واستخراجها إلى عناصر أو وظائف أو وحدات قابلة لإعادة الاستخدام، وهذا لا يقلل من حجم قاعدة البيانات العامة فحسب، بل يضمن أيضاً ضرورة إجراء تغييرات في مكان واحد فقط، مما يؤدي إلى تحسين كبير في إمكانية المحافظة على هذه المواد.
ولكن من المهم تطبيق نظام جمهورية يوغوسلافيا الاتحادية تطبيقاً حكيماً، ليس كل الازدواج الرمزي ضار أحياناً، يبدو أن هناك رمزاً مشابهاً يخدم أغراضاً مختلفة وقد يتطور بشكل مستقل، والمفتاح هو تحديد الازدواجية الحقيقية في المعرفة أو المنطق، وليس مجرد التشابه السطحي في الهيكل الشفروي.
أبقيه بسيطاً، غبياً
ويؤكد هذا المبدأ على البساطة، والدعوة إلى تجنب التعقيد غير الضروري والاختيار لإيجاد حلول مباشرة، لأن التصميم البسيط يسهل فهمه والحفاظ عليه وإخراجه، وفي المشاريع الكبيرة، يكون التعقيد عدو القابلية للاستمرار، ويستخدم مبدأ نظام المعلومات المسبقة عن البضائع كتذكير دائم لتسليط الضوء على الذكاء.
فالرمز المبسط هو في جوهره أكثر قابلية للاستمرار لأنه يتطلب جهداً أقل إدراكاً للفهم، وعندما يتمكن المطورون من فهم ما يفعله بسرعة وكيف يعمل، يمكنهم تعديله بثقة ودرجة أدنى من المخاطرة بإدخال الحشرات، وعلى العكس من ذلك، فإن الحلول المعقدة للغاية، حتى وإن كانت مثيرة للإعجاب تقنياً، تخلق حواجز أمام الفهم والتعديل.
تطبيق نظام المعلومات المسبقة عن علم لا يعني تجنب الحلول المتطورة عندما تكون مطلوبة حقاً بل يعني اختيار أبسط نهج يحل المشكلة المطروحة بشكل ملائم ويتجنب التأقلم المبكر وطبقات الإجهاد غير الضرورية التي تضيف تعقيداً دون فوائد مقابلة
لن تحتاجه
ويركز مبدأ " يانغ " على المتطلبات الحالية، ويُستشير إلى تجنب الملامح التي قد تكون ضرورية في المستقبل، ولكنها ليست ضرورية الآن، مما يحول دون الإفراط في الهندسة ويبقي المشروع مركزا، وهذا المبدأ ذو أهمية خاصة في بيئات التنمية المتعثرة حيث تتطور الاحتياجات استنادا إلى احتياجات المستعملين الفعلية بدلا من المضاربة.
وتطبيق مبدأ " يانغ " يحد من تعقيد المدونة بتجنب إضافة سمات غير ضرورية، مما يجعل المدونة أكثر وضوحاً، وأخف، ويسهل الحفاظ عليها، مع توفير الوقت والموارد أيضاً عن طريق تجنب تطوير واختبار سمات قد لا تستخدم أبداً.
فالإفراط في الهندسة هو حافز مشترك في تطوير البرامجيات، حيث يتوقع المطورون الاحتياجات المستقبلية ويبنيون المرونة التي قد لا تستخدم أبدا، وهذا ليس فقط وقت تنمية النفايات، بل يضيف أيضا تعقيدات يجب الحفاظ عليها إلى أجل غير مسمى.
الفصل بين الشواغل
ويرتكز الهيكل النموذجي على مبدأ " الفصل بين الشواغل " ، حيث يركز كل وحدة على وظيفة أو سمة محددة، ويعزز إعادة استخدام الرموز، والمرونة، والقدرة على الاستمرار، ويمتد هذا المبدأ إلى ما يتجاوز الفصول الفردية ليشمل هيكل النظام العام.
(ج) تقسيم البرمجيات إلى وحدات أصغر حجماً ومتماسكة تلخص خصائص وظيفية محددة، وتحافظ على الفصل الواضح بين مختلف الشواغل، مثل واجهة المستخدمين، ومنطق الأعمال التجارية، وتخزين البيانات، وهذا الفصل ينشئ حدوداً طبيعية داخل المنظومة، مما يسهل فهم واختبار وتعديل المكونات الفردية دون التأثير على الآخرين.
ومن الناحية العملية، قد يتجلى الفصل بين الشواغل في هيكل مطبق، حيث يرسم العرض، ومنطق الأعمال، ومستويات الوصول إلى البيانات بوضوح، وقد يظهر أيضا في هياكل الخدمات الصغرى، حيث تنفذ مختلف القدرات التجارية كخدمات مستقلة، وبغض النظر عن التنفيذ المحدد، فإن الهدف هو التقليل إلى أدنى حد من التقريب بين مختلف جوانب النظام.
التكتل اللوّي والتماسك العالي
عناصر التصميم المصاحبة بشكل غير متسم بالوضوح (المعال الدنيا) والمتماسكة للغاية (المتعلقة بالعملية المجمّعة معا)، حيث أن انخفاض الانقلاب يقلل من الآثار المتطورة للتغييرات، بينما يعزز التماسك العالي الوضوح والقدرة على الاستمرار، ويعمل هذان المفهومان التكميليان معا على إنشاء نظم سليمة التنظيم وقابلة للاستمرار.
ويعني الجمع بين اللوم أن العناصر لا تعرف سوى العناصر الأخرى وتعتمد عليها، وعندما تكون المكونات مقترنة بشكل غير سليم، فإن التغييرات في أحد المكونات أقل احتمالاً في أن تتطلب تغييرات في العناصر الأخرى، مما يجعل النظام أكثر مرونة وسهولة في الحفاظ عليه، وتساعد مبادئ SOLID في تعزيز الانقلابات غير المستقرة، مما يعني أن مجموعة من الفصول أقل اعتماداً على بعضها البعض، مما يساعد على جعل المدونة أكثر قابلية للاستمرار ومرونة واستقراراً.
إن وجود عنصرين في عنصر ما يرتبط ارتباطا وثيقا ويتعاونان لتحقيق هدف واحد محدد جيدا، والمكونات المتماسكة جدا أسهل فهما لأن جميع عناصرها تسهم في تحقيق هدف مشترك، وهي أيضا أكثر قابلية للإستعمال لأنها تستوعب وظيفية كاملة ومكتفية ذاتيا.
تنفيذ مبادئ التصميم في مشاريع النطاقات الكبيرة
إن فهم مبادئ التصميم هو أحد التحديات، إذ أن النجاح في تنفيذها في المشاريع الكبيرة يشكل تحديا آخر تماما، إذ أن تنفيذ القدرة على الحفظ في نظم البرمجيات ينطوي على اعتماد ممارسات وأدوات ومنهجيات تيسر التعديل الكفء وتوسيع البرنامج وتشويه المشاكل على مدى دورة الحياة، ويتطلب ذلك نهجا شاملا يشمل ممارسات الترميز وعمليات الأفرقة والثقافة التنظيمية.
وضع معايير ومبادئ توجيهية للترميز
استخدام أسماء مجدية ومتسقة للمتغيرات والوظائف والفصول والكيانات الأخرى، واتباع قواعد متسقة لتشكيل الرموز لتعزيز إمكانية القراءة، وتوفر معايير الترميز لغة مشتركة وهيكلا يجعل المدونة أكثر سهولة لجميع أعضاء الفريق، بغض النظر عن من كتبها أصلا.
ويؤدي الاتساق في استخدام أنماط التصميم، وممارسات الترميز، وأفضل الممارسات اللغوية، والمبادئ المعمارية في جميع البرامجيات إلى الحد من منحنى التعلم للمطورين الجدد، ويساعد على الحفاظ على جودة موحدة عبر قاعدة البيانات، وعندما يتبع الجميع نفس الاتفاقيات، يصبح الرمز أكثر قابلية للتنبؤ به ويسهل الملاحة.
وينبغي توثيق معايير الترميز الفعالة، وإنفاذها من خلال أدوات آلية حيثما أمكن، واستعراضها بانتظام لضمان استمرار أهميتها مع تطور المشروع، وينبغي أن تحقق توازنا بين توفير توجيهات واضحة وإتاحة المرونة للمطورين لاتخاذ القرارات المناسبة استنادا إلى سياقات محددة.
استعراضات المدونة والتنمية التعاونية
إجراء استعراضات منتظمة للمدونة لضمان التقيد بالمعايير وتبادل المعارف فيما بين أعضاء الأفرقة، وتخدم استعراضات المدونة أغراضا متعددة: فهي تستوعب القضايا المحتملة قبل أن تصل إلى الإنتاج، وتنشر المعرفة عن مختلف أجزاء المنظومة في جميع أنحاء الفريق، وتتيح فرصا للتوجيه وتنمية المهارات.
ويجري استعراض المدونة، المعروف أيضاً باسم استعراضات الأقران أو التفتيش على الرموز، قبل أي نشاط اختباري، ويشرك المطورين الذين يستعرضون خط الرموز حسب الخط، من أجل إيجاد أخطاء، وفي حين يمكن أن تكون الاستعراضات الرسمية للمدونة شاملة، فإن عمليات الخفض والثغرات غير الرسمية، إذا ما أجريت على النحو الصحيح، يمكن أن تكون فعالة تماماً.
ولا تركز عمليات استعراض الرموز الفعالة على إيجاد الحشرات فحسب، بل على ضمان أن تلتزم المدونة بمبادئ التصميم، وأن تكون قابلة للاستمرار، وأن تتبع الأنماط القائمة، وينبغي أن يطرح مراجعو الحسابات أسئلة مثل: هل من السهل فهم هذه المدونة؟ هل تتبع مبدأ المسؤولية الوحيدة؟ وهل تدار المعالون على النحو الصحيح؟ هل يمكن اختبار المدونة؟
الرفض بوصفه ممارسة مستمرة
إن إعادة التصنيع هي تقنية منضبطة في تطوير البرامجيات تتضمن إعادة هيكلة المدونة القائمة دون تغيير سلوكها الخارجي بدلاً من معالجة إعادة التصنيع كمرحلة منفصلة تحدث "عندما يحين الوقت" يجب أن تدمج في تدفق العمل الإنمائي العادي
:: وضع مدونة للمفاعلات بانتظام لتحسين هيكله وإمكانية قراءته وقابليته للاستمرار دون تغيير سلوكه الخارجي، وهذا النهج المستمر للتحسين يحول دون تراكم الديون التقنية ويبقي القاعدة المشفرة صحية وقابلة للتكيف.
لا تنتظر أن يصبح الشفرة غير قابلة للاستمرار بدلاً من ذلك، يجب على المطورين أن يصلحوا المفاعلات بشكل غير انتهازي عندما يعملون على مجال معين من الشفرة، يأخذون الوقت لتحسين هيكلها، حتى لو لم يكن هذا التحسن مرتبطاً بالمهمة الحالية
ممارسات التوثيق الشاملة
الاحتفاظ بوثائق حديثة، بما في ذلك وثائق التصميم، وكتيبات المستخدمين، ومراجع نظام المعلومات الإدارية المتكامل، وتقديم ملفات نظام README في مستودعات لإرشاد المطورين الجدد على وضع المبادئ التوجيهية المتعلقة بالاستعمال والاشتراكات، وتمثل الوثائق جسراً بالغ الأهمية بين المدونة والأشخاص الذين يحتاجون إلى فهمها وصيانتها.
وتخفض الوثائق الجيدة منحنى التعلم للمطورين الجدد وتساعد الفريق القائم على فهمه بشكل أفضل أثناء الصيانة، ولا تغطي فقط التعليقات الرمزية بل أيضا القرارات المعمارية، وتصميم النظم، والمراجع المتعلقة بالمشاريع المنفذة تنفيذا مشتركا، ولا توضح الوثائق الفعالة ما تفعله المدونة فحسب، بل توضح سبب اتخاذ قرارات معينة، مما يوفر سياقا قيما يساعد المطورين في المستقبل على إجراء تغييرات مستنيرة.
وينبغي أن تكون الوثائق على مستويات متعددة: تعليقات خطية على المنطق المعقد، والوثائق على مستوى الوحدات التي توضح الغرض والاستخدام، والوثائق المعمارية التي تصف هيكل النظام وقرارات التصميم، ووثائق تحديد موقع المستعملين للمعايير والوصلات البينية، وكل مستوى يخدم جمهوراً مختلفاً والغرض، ويسهم في الحفاظ على النظام عموماً.
الاختبارات الآلية والتكامل المستمر
:: إجراء اختبارات للوحدة، واختبارات نهاية الخدمة، واختبارات الدخان والإدماج، فضلا عن ممارسات التكامل المستمرة، والاختبارات الآلية ضرورية للحفاظ على الثقة عند إجراء تغييرات في النظم الواسعة النطاق، وبدون اختبارات شاملة، يتردد المطورون في إعادة تكييف أو تعديل المدونة، خوفا من أن يكسروا الوظائف القائمة.
تنفيذ عملية التكامل المستمر/النشر المستمر من أجل التشغيل الآلي لعمليات البناء والاختبار والنشر، وتكفل خطوط الأنابيب التابعة للجنة مكافحة التصحر اختبار التغييرات الرمزية والتحقق منها تلقائيا، وضبط القضايا قبل أن تؤثر على نظم الإنتاج.
استراتيجية اختبار قوية تشمل مستويات متعددة من الاختبارات: اختبارات الوحدة التي تتحقق من كل عنصر في العزلة، اختبارات التكامل التي تضمن أن تعمل العناصر معا بشكل صحيح، واختبارات نهاية إلى نهاية تحقق من تدفق كامل لعمل المستعملين، وهذا النهج المتعدد المستويات يوفر تغطية شاملة وثقة في سلوك النظام.
إدارة شؤون الأقاليم في النظم الكبيرة الحجم
وكثيرا ما تكون إدارة المعالين فعالة مصدرا رئيسيا للألم عندما تعمل مع قواعد مشفرة كبيرة ومنظمات كبيرة، ومع تزايد النظم، تصبح شبكة المعالين بين المكونات والمكتبات والخدمات أكثر تعقيدا، مما يتطلب إدارة دقيقة للحفاظ على استقرار النظام وأمنه.
استراتيجيات إدارة الإعالة
وإدارة شؤون الإعالة جانب حاسم من جوانب تطوير البرمجيات يشمل إدارة المعالين الخارجيين، والمكتبات، والأطر، والعناصر التي يعتمد عليها مشروع البرامجيات، مما يتطلب إدارة دقيقة وتحديثات منتظمة للاستفادة من إصلاحات الحشرات وتحسينها، وقد يؤدي سوء إدارة التبعية إلى مواطن الضعف الأمنية، وقضايا التوافق، وكوابيس الصيانة.
تكفل الإدارة السليمة للمعالين إمكانية تحديث أو استبدال المكتبات أو المكونات الخارجية دون حدوث انقطاعات كبيرة، بما في ذلك استخدام حقن الإعالة، ومراقبة النسخ، وتصميم الوحدات، وهذا يتطلب وضع سياسات واضحة بشأن كيفية إدخال المعالين وتحديثها واستهلاكها.
ومن السهل على الأفرقة أن تضيف وتستكمل حالات المعالين، وأن تكفل استقرارها ونادرا ما تكسر الرمز، يعني تحسين الأمن، مع بلوغ سن المعالين، ومن الأرجح أن يكتشف وجود أوجه ضعف فيها، مما يجعل من الضروري الحفاظ على مستويات المعالين حتى الآن، ولا سيما بعد العثور على مواطن الضعف ومعالجتها.
والأقاليم التابعة والاتساق عبر منظومة الأمم المتحدة
وفي البنيانات الموزعة، كثيرا ما تعبر المعالون حدود النظام، وتربط العناصر التي يتم تطويرها ونشرها وصيانتها بصورة مستقلة، وضمان الاتساق عبر هذه الحدود، يشكل تحديا كبيرا، إذ قد لا تنعكس التغييرات في نظام ما على الفور في نظام آخر، مما يؤدي إلى اختلالات في هياكل البيانات، وتعاريف الوصلات البينية، أو في سياقات التشكيل.
ويتطلب الحفاظ على الاتساق إجراء تحديثات منسقة على جميع العناصر المعالِلة، التي كثيرا ما تكون معقدة بسبب الاختلافات في دورات إطلاق النار، وأولويات الأفرقة، والقيود على النظام، ودون الاتصال الفعال والتزامن، قد تصبح المعالين غير متوافقة، مما يؤدي إلى مسائل التكامل أو عدم استقرار النظام.
ويتمثل أحد النهج لمعالجة هذا التحدي في إقامة وصلات وصلية وعقود موحدة بين النظم، وتحديد توقعات واضحة بشأن كيفية تفاعل العناصر، يمكن للمنظمات أن تقلل من خطر عدم الاتساق، وتسهم جميع عمليات الفرز والاختبار التعاقدية والاتفاقات على مستوى الخدمات في إدارة المعالين على نطاق المنظومة بفعالية.
تحليل الأثر وإدارة التغيير
ويمكن أن يؤثر أي تغيير يُدخل في أحد العناصر على الخدمات المتعددة، أو تدفقات البيانات، أو نقاط التكامل، وذلك غالبا من خلال علاقات غير مباشرة لا يمكن رؤيتها على الفور، ويعتبر فهم هذه الآثار الوخيمة أمرا حاسما في الحفاظ على استقرار النظام عند إجراء التغييرات.
وتشمل إدارة التأثير الفعال رسم خرائط لهذه المعالين وتتبع كيفية انتقال التغييرات من خلال النظام، مما يتيح لجهود الصيانة أن تُحسب لجميع العناصر المتأثرة، مما يقلل من خطر عدم اكتمال التحديث أو عدم الاتساق في السلوك، وقد تكون الأدوات التي تصور المعالين والأثر الأثر الأثر الأثر اللاحق قيمة للغاية لفهم النطاق الكامل للتغييرات.
وتتطلب إدارة أثر التغيير تقييم أهمية هذه الآثار، إذ لا تتسم جميع الآثار بنفس القدر من الأهمية، كما أن تحديد الأولويات استنادا إلى أهمية النظام أمر أساسي للصيانة الفعالة، بما في ذلك تقييم مدى تأثير التغييرات على مسارات التنفيذ الحاسمة، وسلامة البيانات، وأداء النظام.
أنماط الهندسة المعمارية للحفظ
وبالإضافة إلى مبادئ التصميم الفردية، توفر الأنماط المعمارية هياكل أعلى مستوى تعزز القدرة على الاستمرار في جميع النظم، ويشمل الهيكل النموذجي كسر نظام معقد إلى وحدات أصغر حجماً مستقلة ذاتية الاتّصالات ذاتية ومحددة جيداً، مما يتيح تطويرها واختبارها بشكل منفصل، ثم تجميعها وإدماجها في شكل تطبيق كامل.
الهيكل الملكي
وينظم الهيكل المرتكز مدونة في الطبقات الأفقية، لكل منها مسؤوليات محددة، وتشمل الطبقات المشتركة العرض، ومنطق الأعمال، والوصول إلى البيانات، وهذا الفصل بين الشواغل يجعل من الأسهل تعديل طبقة واحدة دون التأثير على الآخرين، ما دامت أوجه الترابط بين الطبقات مستقرة.
إن فوائد الهيكل المطبق للاستمرارية كبيرة، فالتغييرات في واجهة المستخدمين لا تتطلب إدخال تعديلات على منطق العمل، ويمكن أن تكون تغيرات قاعدة البيانات معزولة عن طبقة الوصول إلى البيانات، ويصبح الاختبار أسهل لأن كل طبقة يمكن اختبارها بشكل مستقل مع وجود معالين متحركين بالنسبة للطبقات الواردة أدناه.
بيد أنه يجب تنفيذ الهياكل المطبقة بعناية لتجنب إنشاء هياكل شديدة للغاية، ويتمثل مفتاح الحفاظ على حدود واضحة مع إتاحة المرونة المناسبة للشواغل الشاملة لعدة قطاعات مثل قطع الأشجار والأمن ومناولة الأخطاء.
هيكل الخدمات البالغة الصغر
ويمكن أن تساعد الخدمات البالغة الصغر في تحقيق التصعيد، حيث يمكنك أن تُقيس فرادى المكونات بشكل مستقل، ولكن يمكن أن تضيف تعقيداً إلى نظامك وأن تزيد من النفقات العامة للاتصالات، ومن منظور الاستدامة، فإن الخدمات الصغرى توفر مزايا وتحديات على حد سواء.
الميزة الأساسية هي أن كل خدمة يمكن تطويرها ونشرها والحفاظ عليها بشكل مستقل يمكن أن تعمل الأفرقة على خدمات مختلفة دون أن تخطو على أصابع قدم بعضها البعض
لكن الخدمات الصغرى أيضاً تُحدث تعقيدات من حيث التواصل بين الخدمات، والمعاملات الموزعة، والمصروفات التشغيلية العامة، كل شيء عن إيجاد التوازن الصحيح لمشروعك وفريقك المحددين، قرار اعتماد الخدمات الصغرى يجب أن يكون مستنداً إلى الاحتياجات الفعلية بدلاً من اتباع الاتجاهات.
تنظيم المسابقة
وتروج البنيانات التي تحركها الأحداث للتقريب من خلال الاتصال بالمكونات عن طريق الأحداث بدلا من الاتصال المباشر، وعندما يحتاج العنصر إلى إخطار الآخرين بتغيير الدولة، فإنه ينشر حدثا، وتشترك فيه العناصر المهتمة بالأحداث ذات الصلة وتستجيب تبعا لذلك.
ويعزز هذا النمط إمكانية المحافظة على هذه العناصر بتقليص المعالين المباشرين بين العناصر، ويمكن إضافة وظيفة جديدة بإنشاء مشتركين جدد في المناسبات دون تعديل العناصر القائمة، ويمكن تعديل المكونات أو استبدالها ما دامت تواصل نشر واستهلاك الأحداث المتوقعة.
وتُعد البنيانات التي تُنفذ في الأحداث مناسبة بشكل خاص للنظم المعقدة التي تضم العديد من العناصر المتفاعلة، حيث يؤدي الحفاظ على المعالين المباشرين إلى إنشاء شبكة غير مستدامة من الانقلابات، غير أنها تتطلب تصميما دقيقا لخصائص الأحداث ومناولة الاتساق في نهاية المطاف.
قياس ورصد القدرة على الاستمرار
ما هي النسبة المئوية من قاعدة بيانات منظمتك التي يمكن البحث عنها؟ ما هي النسبة المتوسطة من وقت القيادة لإحداث تغيير في جزء من قاعدة البيانات التي لا أملكها؟
المدونة: قياس الجودة
يمكن أن توفر مقاييس مختلفة معلومات عن مدى قابلية الحفظ الشفرة، ويحد التعقيدات المناخية من عدد الطرق المستقلة عبر الشفرة، مع زيادة التعقيد التي تشير إلى الرمز الذي يصعب فهمه واختباره، وتدل التغطية المدونة على النسبة المئوية للرمز التي تمارسها الاختبارات الآلية، وتوفر الثقة في القدرة على إجراء التغييرات بأمان.
وتحاول مقاييس الديون التقنية تحديد تكلفة تقصير البيانات والحلول دون المستوى الأمثل في قاعدة البيانات، وفي حين أن هذه القياسات ذاتية إلى حد ما، فإنها يمكن أن تساعد الأفرقة على إعطاء الأولوية لجهود إعادة التصنيع وتتبع التحسن على مر الزمن.
وتُحدد مقاييس الازدواج مدونة متكررة تنتهك مبدأ جمهورية يوغوسلافيا الاتحادية، وتدل زيادة الازدواجية على مخاطر الصيانة، إذ يجب تطبيق التغييرات في أماكن متعددة، وتكشف القياسات التبعية عن الانقسام بين العناصر، وتبرز المجالات التي يحتمل أن تكون فيها التغييرات آثاراً متطورة.
فريق فيلوسيتي وتايم الرصاص
فالاحتفاظ بالقابلية في نهاية المطاف يتجلى في إنتاجية الفريق، وإذا كانت القدرة على الصمود ضعيفة، فإن الأفرقة ستتباطأ بمرور الوقت مع كفاحها مع التعقيد والديون التقنية، فتعقب القياسات مثل سرعة إنجاز السمات، ووقت إصلاح الحشرات، والوقت الذي يستغرقه إجراء التغييرات يمكن أن يوفر علامات إنذار مبكر بشأن قضايا المحافظة على القدرة على البقاء.
عندما تظهر هذه القياسات تدهوراً بمرور الوقت، غالباً ما تشير إلى أن الدين التقني يتراكم أسرع مما يجري معالجته، وهذا يشير إلى الحاجة إلى زيادة الاستثمار في إعادة التصنيع، والوثائق، وغيرها من الأنشطة التي تركز على الاستدامة.
مقاييس الخبرة في مجال التنمية
إعطاء الأولوية لتجربة المطورين: الأدوات والمبادئ التوجيهية والعمليات التي تجعل حياة المطورين أسهل غالباً ما تؤدي إلى وضع مدونة أكثر قابلية للاستمرار، قياس مدى رضا المطور، والوقت المستغرق لأعضاء الفريق الجدد، والوقت الذي يستغرقه فهم الرمز الجديد مقابل كتابة الرموز الجديدة يمكن أن يوفر معلومات قيمة عن إمكانية المحافظة على هذه المواد.
ويمكن أن تلتقط الدراسات الاستقصائية والتوقعات الرجعية ردود فعل نوعية بشأن نقاط الألم في قاعدة البيانات، فالمناطق التي يُعيّن المطورون باستمرار أنها صعبة العمل مع المرشحين الرئيسيين لجهود إعادة التصنيع والتحسين.
الشلالات المشتركة وكيفية تجنبها
حتى مع أفضل النوايا، يمكن أن تقع الفرق في فخ مشترك يقوّض القدرة على الصمود، فهم هذه المجازفات يساعدك على تجنبها في مشاريعك الخاصة.
أعمال الهندسة فوق سطح الأرض
إن إضافة تعقيدات أو توقعات غير ضرورية للاحتياجات المستقبلية التي قد لا تأتي أبداً هي نقطة انطلاق مشتركة، والحل هو اتباع نظامي " ياغيني " و " كيس " ، وتنفيذ ما هو مطلوب فقط، وفي حين أن مبادئ التصميم تشجع على السخرة والمرونة، وتأخذ إلى أقصى حد، فإنها يمكن أن تخلق نظماً معقدة لا داعي لها.
المفتاح هو تطبيق المبادئ عملياً، إيجاد خلاصات عندما تكون لديك أدلة ملموسة تحتاجها، لا تستند إلى المضاربة بشأن المتطلبات المستقبلية، والبدء في حلول بسيطة وإعادة تشكيل تصميمات أكثر تطوراً مع ظهور الاحتياجات الفعلية.
تطبيق المبادئ غير المتسق
وعندما تطبق مبادئ التصميم بشكل غير متسق عبر قاعدة مشفرة، فإن النتيجة هي مزيج مريب من الأساليب والأنماط، وتتابع بعض أجزاء النظام مبادئ SOLID بصرامة، بينما تتجاهلها أجزاء أخرى تماما، ويصبح هذا التناقض في حد ذاته مشكلة تتعلق بالاستمرارية.
الحل هو وضع معايير واضحة وضمان تطبيقها بشكل متسق من خلال استعراضات الرموز، والطول الآلي، وتعليم الفريق، عندما تكون الاستثناءات ضرورية، يجب توثيقها وتبريرها.
الدين التقني الملغي
عندما تكون الموارد ضيقة، من السهل التركيز على الحد الأدنى المطلوب لجعل البرمجيات تفعل ما هو مقدر لها أن تفعله وتترك مهام أقل إلحاحا مثل الوثائق والاختبار وإعادة التصنيع، حتى نهاية المشروع، مع الخطة غالبا ما تكون لإكمال هذه المهام عندما تسمح الوقت، ونادرا ما تسمح بذلك الوقت.
ولا بد من أن تكون الديون التقنية أمراً لا مفر منه في تطوير البرامجيات، ولكن يجب إدارتها بفعالية، وينبغي أن تخصص الأفرقة الوقت لمعالجة الديون التقنية إلى جانب تنمية السمات، وأن يجعل الدين التقني مرئياً من خلال التتبع والمقاييس يساعد على ضمان حصوله على الاهتمام المناسب.
إغفال العنصر البشري
الحفاظ على الوضع ليس فقط حول الشفرة بل حول الناس، ثقافة تعاونية قوية داخل فريق التنمية تساعدهم على تبادل المعرفة مع بعضهم البعض،
الاستثمار في التواصل مع الفريق، وتبادل المعارف، والممارسات التعاونية هي بنفس أهمية تطبيق مبادئ التصميم التقني، والبرمجة العادلة، وجلسات تبادل المعارف المنتظمة تسهم جميعها في قدرة الفريق الجماعية على الحفاظ على قاعدة البيانات بفعالية.
المنافع العالمية الحقيقية للبرمجيات الصالحة للاستمرار
والاستثمار في الحفاظ على القدرة على العمل يسدد أرباحاً على امتداد دورة حياة البرامجيات، ويعني تطوير الصور المتحركة أن من الأسهل توسيع نطاقها مع الملامح الجديدة، ويحدث انخفاض في عدد البغائن لأن الشفرة النظيفة والنموذجية تميل إلى أن يكون لديها أقل حشرات، ويسمح الأسهل في الإلحاق بأعضاء الفريق الجديد بالتحرك بسرعة أكبر، ويعني انخفاض التكاليف أنه بمرور الوقت، فإن النظم الصالحة للاستمرار أقل تكلفة للاستجابة والعمل بسرعة أكبر.
الكفاءة التنافسية
ومن المرجح أن تزدهر نظم البرامجيات القابلة للتعديل والمستقبلية في بيئات دينامية وأن تستمر في توفير القيمة للمستعملين وأصحاب المصلحة على مر الزمن، وأن تتحقق هذه النظم بتوقع التغييرات المقبلة وتصميم النظام بمرونة في الاعتبار مع تجنب الافتراضات التي قد تتغير بصعوبة مع مرور الوقت.
ويمكن للمنظمات التي لديها قواعد مشفرة عالية الصيانة أن تستجيب بسرعة أكبر لفرص السوق والتهديدات التنافسية، ويمكنها أن تجرب مع سمات جديدة بسهولة أكبر، وأن تنشط عند الضرورة، وأن تحسن باستمرار منتجاتها دون أن تُقيد بسبب القيود التقنية.
الاستدامة الطويلة الأجل
ومن خلال إعطاء الأولوية لإمكانية الحفاظ على تصميم البرامجيات، يمكن للمطورين أن يقللوا من تكلفة التطوير الجاري، وأن يقللوا إلى أدنى حد من خطر إدخال عيوب، وأن يمددوا فترة عمر البرمجيات، وكذلك البرامجيات المحتفظ بها جيدا، من الأسهل أن تتطور وتكيف مع الاحتياجات والتكنولوجيات المتغيرة واحتياجات الأعمال التجارية.
في عالم تركيب البرمجيات، القدرة على الصمود هي عن لعب لعبة طويلة، وعن طريق التركيز على إمكانية قراءة الشفرة، والنموذج، والتوثيق، والتغطية الاختبارية، أنت لا تبنى فقط لليوم - أنت تضع الأساس لسنوات من التطور والتعزيز الناجحين.
الفريق المعني بالموريل والاحتفاظ
ويفضل المطورون العمل مع مدونة جيدة التصميم وقابلة للحفظ، وعندما تكون قواعد الشفرة نظيفة وموثوقة جيداً، وتتبع المبادئ المتسقة، يكون المطورون أكثر إنتاجية وارتياحاً، وعلى العكس من ذلك، فإن العمل مع النظم القديمة التي لا تحافظ على صحتها يُحبط ويُضعف.
ومن ثم فإن الاستثمار في القدرة على الصمود هو أيضا استثمار في معنويات الفريق واستبقائه، وتميل المنظمات التي تعطي الأولوية لجودة المدونة إلى اجتذاب المطورين الموهوبين الذين يقدرون الحرف والنمو المهني والاحتفاظ بهم.
مواءمة مبادئ التصميم مع السياقات الحديثة
وفي حين أن الحوسبة قد تغيرت كثيرا في السنوات العشرين التي انقضت منذ وضع مبادئ SOLID، فإنها لا تزال أفضل الممارسات لتصميم البرامجيات، ولا تزال تحت الأرض التي تجري اختبارا زمنيا لإنشاء برامجيات جيدة، ولكن تطبيقها يجب أن يتطور لمعالجة السياقات الإنمائية الحديثة.
تنمية السحابة
ويعد حساب السحابة عاملا أساسيا في هيكل البرامجيات الحديثة والمتدرجة، مما يتيح إمكانية تصعيد البرامجيات المرنة، مما يعني أن تكيف الموارد تلقائيا مع الطلب، في حين توفر الخدمات السحابية أيضا حلولا مدروسة، وتقليص العبء التشغيلي، والمساعدة في تكاليف المراقبة، وتحقيق الاستخدام الأمثل للموارد من أجل النمو الطويل الأجل، وبناء هيكل قابل للتكدس حقا.
وتنطبق مبادئ التصميم على التنمية السحابية ولكن مع بعض التعديلات، وينبغي تصميم الخدمات على أن تكون عديمة الجنسية حيثما أمكن، وأن تيسر التوسع الأفقي، وينبغي أن تكون المصادرة خارجية لدعم النشر في مختلف البيئات، وينبغي أن تبنى إمكانية الرصد منذ البداية، مع قطع الأشجار والرصد الشاملين.
أجهزة الحماية والتبليغ المستمر
وتؤكد الممارسات الإنمائية الحديثة على سرعة التنفيذ المستمر للقيمة، فالاحتفاظ بالقيمة في هذا السياق يعني الرمز الذي يمكن نشره بشكل متواتر بثقة، ويتطلب إجراء اختبار آلي قوي، ورصد شامل، والقدرة على التراجع بسرعة إذا ما نشأت مسائل.
كما أن البنية التحتية كمدونة تُدخل مبادئ التصميم على إدارة الهياكل الأساسية، وينبغي أيضاً أن تنطبق على تعاريف الهياكل الأساسية نفس مبادئ النمذجة والقابلية للتداول والنسخة التي تنطبق على مدونة التطبيقات.
المصدر المفتوح والمصدر الداخلي
إذا أطلقت برامجية مصادر مفتوحة قابلة للاستمرار خلال فترة مشروعك عندها قد تحصل على مطورين آخرين يصلحون الحشرات أو يُحدثون تمديدات لا تملك الوقت لتقوم بها وإذا ما ساهمت في إعادة هذه البرامج إليك أو جعلها متاحة بحرية، يمكن أن يُنظر إليها على أنها جهد مجاني لمشروعك، بينما هذه التمديدات يمكن أن تعطي أيضاً ملامح جديدة للبرامجيات الخاصة بك، أو تأخذها في الاتجاهات التي لم تنظر فيها، والتي تزيد من من مناشدتها للمستعملين المحتملين.
فالاحتفاظ بالزمالة أمر بالغ الأهمية بالنسبة للمشاريع المفتوحة المصدر والمبادرات الداخلية داخل المنظمات، ويجب أن يكون متاحا للمطورين الذين لم يشاركوا في إنشائهم الأصلية، كما أن الوثائق والهيكل الواضح والتقيد بالأنماط المشتركة تزداد أهمية في هذه السياقات.
بناء ثقافة الحفظ
وفي نهاية المطاف، فإن القدرة على الاستمرار هي نفس القدر من الثقافة التنظيمية كما هي بشأن الممارسات التقنية، إذ أن تصميم نظام يمكن الحفاظ عليه بدرجة عالية يتطلب نهجا استباقيا خلال عملية التنمية، ويجب دعم هذا النهج الاستباقي وتعزيزه بالقيم والممارسات التنظيمية.
دعم القيادة
ويجب أن تعترف القيادة بأن المحافظة على هذه القدرة هي سمة هامة من سمات النوعية تستحق الاستثمار، وهذا يعني تخصيص وقت لإعادة التصنيع، ودعم التطوير المهني في مبادئ التصميم، ومقاومة الضغط لقطع الزوايا التي ستخلق ديونا تقنية.
إن أخذ وقت إضافي وبذل جهد إضافي في الوقت الحاضر يستحق كل التقدير، حيث أن برمجة برنامج SOLID تجعل من البرمجيات أسهل بكثير من الحفاظ عليها واختبارها ومداها على المدى الطويل، فالقيادات التي تفهم هذا المنظور الطويل الأجل تهيئ بيئات يمكن أن تزدهر فيها القدرة على الاستمرار.
التعلم المستمر
وبفهم وتطبيق مبادئ SOLID، يمكن لمهندسي البرامجيات أن يستحدثوا قواعد مشفرة قابلة للاستمرار، وقابلة للاتساع، ومرنة، حيث تسترشد هذه المبادئ بعملية التصميم، وتشجع المطورين على بناء نظم نموذجية، ومكثفة، ويسهل فهمها، مما يؤدي إلى تحسين نوعية البرامجيات وتجربة إنمائية أكثر متعة.
يجب على الأفرقة أن تستثمر في التعلم المستمر بشأن مبادئ التصميم وأفضل الممارسات، قد يشمل ذلك دورات تدريبية، أو نوادي للكتاب، أو حضور المؤتمرات، أو وقت مخصص لاستكشاف التقنيات الجديدة،
الاحتفال بالجودة
وينبغي للمنظمات أن تحتفل بعمل جيد وتكافؤه، لا مجرد تقديم عروض، وعندما يأخذ المطورون الوقت اللازم لكتابة مدونة نظيفة وحسنة الاختبار وقابلة للاستمرار، ينبغي الاعتراف بهذا الجهد وتقديره، وينبغي أن تبرز استعراضات المدونة أمثلة ممتازة لتطبيق مبدأ التصميم، وليس مجرد أخطاء في الصيد.
وبجعل المنظمات نوعية بارزة ومثمرة، فإنها تخلق حلقات تعزيز إيجابية تشجع على مواصلة الاستثمار في مجال المحافظة على القدرة على الاستمرار.
الاستنتاج: الطريق إلى الأمام
وتطبيق مبادئ تطوير البرامجيات مثل برامجيات SOLID و DRY و KISS وغيرها من المبادئ حاسمة لضمان تطوير برامجيات عالية الجودة، حيث أن هذه المبادئ هي نتيجة سنوات من الخبرة وأفضل الممارسات التي يتقاسمها المطورون، وتساعد على إنشاء برامجيات قوية وقابلة للاستمرار ومتطورة وذات نوعية عالية، ومن خلال اعتماد هذه المبادئ، يستطيع المطورون بناء نظم برمجيات أكثر مرونة وقابلة لإعادة الاستخدام وفهما، مما يساعد على تيسير الازدواج بين الأعضاء في مجال البرمجيات.
إن تطبيق مبادئ التصميم لتحسين قدرة البرامجيات على الاستمرار في المشاريع الكبيرة ليس جهداً لمرة واحدة بل التزاماً مستمراً، ويتطلب معارف تقنية، وممارسة منضبطة، وثقافة تنظيمية داعمة، ومنظوراً طويل الأجل يُقدر الاستدامة على المكاسب القصيرة الأجل.
تذكر، سمة اليوم المتطورة هي رمز الغد، وبتصميمها للاستمرارية، ستمنع نظامك في المستقبل وتضع فريقك في طريق النجاح الطويل الأجل، المبادئ والممارسات المبينة في هذا الدليل توفر خريطة طريق لبناء نظم البرامجيات التي يمكن أن تتطور بشكل جيد، وتتكيف مع المتطلبات المتغيرة، وتستمر في تحقيق القيمة لسنوات قادمة.
وبالنسبة للأفرقة التي تشرع في مشاريع واسعة النطاق أو تسعى إلى تحسين النظم القائمة، تبدأ الرحلة إلى تحسين إمكانية المحافظة على البيئة في التعليم والتوعية، فهماً لمدى أهمية هذه المبادئ وكيفية إسهامها في النجاح الطويل الأجل، هي الخطوة الأولى، ومن هناك، تحسين الوثائق تدريجياً، واختبارات أكثر شمولاً، واستعراضات منتظمة للمدونة متسقة مع مرور الوقت لإنشاء نظم أكثر استدامة.
ويدفع الاستثمار في القدرة على الحفظ أرباحاً على امتداد دورة حياة البرامجيات، مما يتيح تطوير السمات بصورة أسرع، ويسهل الإلحاق بها، ويقلل من التكاليف، ويحسن من سهولة استخدامها، وفي صناعة تتسم بالتغير السريع والاحتياجات المتطورة، لا تكون المحافظة على هذه المواد ترفا بل ضرورة لتطوير برامجيات مستدامة.
To learn more about software structure best practices, explore resources from the Software Sustainability Institute], review ]Microsoft's Engineering Fundamentals Playbook , and study DORA's research on DevOps capabilities