شعار ConstructiCat
CodeBust.
تصفح القسم ▾

دمج الأجزاء الشرطية المكررة.

المشكلة

يمكن العثور على كود متطابق في جميع فروع الشرط.

الحل

انقل الكود خارج الشرط.

##مثال

قبل
if (isSpecialDeal()) {
  total = price * 0.95;
  send();
}
else {
  total = price * 0.98;
  send();
}
بعد
if (isSpecialDeal()) {
  total = price * 0.95;
}
else {
  total = price * 0.98;
}
send();

##لماذا نعيد الهيكلة

يوجد كود مكرر داخل جميع فروع الشرط، غالباً نتيجة لتطور الكود داخل هذه الفروع. ويمكن أن يكون تطوير الفريق عاملاً مساهماً في ذلك.

##الفوائد

  • إلغاء تكرار الكود.

##كيفية إعادة الهيكلة

  1. إذا كان الكود المكرر في بداية الفروع الشرطية، فانقل الكود إلى مكان قبل الشرط.

  2. إذا كان الكود يُنفذ في نهاية الفروع، فضعه بعد الشرط.

  3. إذا كان الكود المكرر يقع بشكل عشوائي داخل الفروع، فحاول أولاً نقل الكود إلى بداية أو نهاية الفرع، اعتماداً على ما إذا كان ذلك يغير نتيجة الكود اللاحق.

  4. إذا كان ذلك مناسباً وكان الكود المكرر أطول من سطر واحد، فحاول استخدام طريقة استخراج الدالة.