مشكلة اليويو

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

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

تعتبر التسلسلات الهرمية العميقة مؤشراً على وجود خلل في الكود وعرضاً للتصنيف الفرعي لإعادة استخدام الكود . [ 2 ]

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

توجد العديد من تقنيات إعادة هيكلة التعليمات البرمجية لتسطيح هذه التسلسلات الهرمية دون المساس بالسلوك العام.

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

انظر أيضاً

مراجع

  1. تاينزر، ديفيد ؛ غانتي، مورثي؛ بودار، سونيل (1989). "مشكلات في إعادة استخدام البرمجيات الموجهة للكائنات" (ملف PDF) . وقائع المؤتمر الأوروبي الثالث حول البرمجة الموجهة للكائنات ECOOP 89، 1989. مطبعة جامعة كامبريدج. الصفحات 33-34 . مؤرشف من الأصل (ملف PDF) في 17 ديسمبر 2006. تم الاطلاع عليه في 22 مارس 2013 . 
  2. "Code Smell 11 - Subclassification for Code Reuse" . hashnode. 30 أكتوبر 2020. تم الاطلاع عليه بتاريخ 18 يناير 2021 .