تبسيط التعابير الشرطية (Simplifying Conditional Expressions)

من موسوعة حسوب
< Refactoring‏ | techniques
مراجعة 17:57، 27 فبراير 2019 بواسطة جميل-بيلوني (نقاش | مساهمات) (←‏مصادر)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

تزداد البنية المنطقية للشروط تعقيدًا مع مرور الوقت، لذا هنالك الكثير من التقنيات لمواجهة هذا التعقيد وتبسيطه وهي:

  1. تجزئة الشَرطيات (Decompose Conditional)
    • المشكلة: يوجد شَرط مُعقد (if-then/else أو switch).
    • الحل: فصل الأجزاء المعقدة من الشَرط إلى توابع منفصلة: الشرط، و then و else.
  2. توحيد التعبير الشرطي (Consolidate Conditional Expression)
    • المشكلة: وجود عدة شروط تؤدي إلى نفس النتيجة أو الإجراء.
    • الحل: توحيد جميع هذه الشروط في تعبير وحيد.
  3. توحيد الأجزاء الشرطية المكررة (Consolidate Duplicate Conditional Fragments)
    • المشكلة: شيفرة برمجية متطابقة موجودة في جميع فروع الشَرطيات.
    • الحل: نقل الشيفرة البرمجية خارج الشَرطية.
  4. إزالة رايات التحكم (Remove Control Flag)
    • المشكلة: لديك متغيرات منطقية تعمل كرايات تحكم لتعبيرات منطقية متعددة.
    • الحل: استخدم الكلمات المفتاحية break و continue و return بدلًا من هذه المتغيرات.
  5. تبديل الشرطيات المتداخلة بعبارات الحماية (Replace Nested Conditional with Guard Clauses
    • المشكلة: وجود مجموعة متداخلة من الشروط وصعوبة تحديد التدفق الطبيعي لتنفيذ الشيفرة البرمجية.
    • الحل: عزل جميع الاختبارات الخاصة والحالات الطرفية في عبارات منفصلة ووضعها قبل الاختبارات الرئيسية. من الناحية المثالية، يجب أن يكون لديك قائمة "مسطحة" من الشروط، واحدةً تلو الأخرى.
  6. تبديل الشرطيات بالتعدديّة الشكليّة (Replace Conditional with Polymorphism)
    • المشكلة: وجود شروط تنفِّذ إجراءات مختلفة اعتمادًا على نوع الكائن أو خصائصه.
    • الحل: إنشاء أصناف فرعية مطابقة لفروع البنية الشرطية. ويُنشأ فيها تابع مشترك وتُنقل إليه الشيفرة البرمجية من الفرع المقابل من الشرطية. ثم تُستبدل البنية الشرطية باستدعاء التابع المناسب.
  7. تقديم الكائن الفارغ (Introduce Null Object)
    • المشكلة: تؤدي إعادة بعض التوابع للقيمة null بدلًا من الكائنات الحقيقية إلى امتلاء الشيفرة البرمجية بالعديد من نقاط التحقق من القيمة null.
    • الحل: إعادة كائن فارغ يظهر السلوك الافتراضي بدلًا من null.
  8. تقديم التوكيد (Introduce Assertion)
    • المشكلة: لكي يعمل جزء من الشيفرة البرمجية بشكل صحيح، يجب أن تتحقق بعض الشروط أو تكون القيم صحيحة.
    • الحل: استبدل هذه الافتراضات بنقاط تحقق خاصة بالتوكيد.

انظر أيضًا

مصادر