عرقلة التغيير (Change Preventers)

من موسوعة حسوب
< Refactoring‏ | smells
مراجعة 14:07، 26 فبراير 2019 بواسطة جميل-بيلوني (نقاش | مساهمات) (إنشاء الصفحة.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

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

  1. التغيير المتشعِّب (divergent change)
  2. الهيكليّة التفرعيّة للوراثة (parallel inheritance hierarchies)
    • المشكلة: يتطلَّب إنشاءُ صنفٍ فرعيٍّ لأحد الأصناف إنشاءَ صنفٍ فرعيٍّ ثانٍ لصنفٍ آخر غيره.
    • الحل: التخلُّص من التكرار التفرعيّ بين الهيكليّتين، ويتمّ بخطوتين: إنشاء مرجعيّة من إحدى الهيكليّتين التفرعيّتين إلى الهيكليّة الثانية، وإزالة الهيكليّة في الصنف المُشار إليه، وذلك بنقل التوابع ونقل الحقول.
  3. تغيير الأصناف المتعدِّدة (shotgun surgery)
    • المشكلة: يتطلَّبُ أيُّ تعديلٍ تقوم به إجراءَ تغييراتٍ طفيفةٍ بأصناف متفرِّقة.
    • الحل: نقل سلوك الأصناف إلى صنفٍ واحدٍ عبر نقل التوابع ونقل الحقول إلى الصنف المناسب أو إنشاء صنفٍ جديدٍ عند عدم وجوده.

انظر أيضًا

مصادر