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

الكود المكرر.

يبدو مقطعا الكود متطابقَين تقريباً.

##العلامات والأعراض

يبدو مقطعا الكود متطابقَين تقريباً.

void printUser(User u) {
  System.out.println(u.name + " <" + u.email + ">");
}
void printAdmin(Admin a) {
  System.out.println(a.name + " <" + a.email + ">");
}

##أسباب المشكلة

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

ثمة أيضاً تكرار أكثر خفاءً، حين تبدو أجزاء معينة من الكود مختلفة لكنها تؤدي في الحقيقة المهمة ذاتها. هذا النوع من التكرار يصعب اكتشافه وإصلاحه.

أحياناً يكون التكرار متعمداً. عند الاستعجال للوفاء بالمواعيد النهائية والكود الموجود «مناسب تقريباً» للمهمة، قد لا يستطيع المبرمجون المبتدئون مقاومة إغراء نسخ الكود المناسب ولصقه. وفي بعض الحالات، يكون المبرمج ببساطة كسولاً جداً للترتيب.

##المعالجة

##الفوائد

  • يؤدي دمج الكود المكرر إلى تبسيط بنية الكود وجعله أقصر.

  • التبسيط + القِصَر = كود أسهل في التطوير وأقل تكلفة في الدعم.