إعادة كتابة (برمجة)

في برمجة الحاسوب ، تُعرف إعادة الكتابة بأنها عملية إنشاء شفرة مصدرية جديدة لاستبدال قاعدة بيانات موجودة من الصفر ( إعادة كتابة كاملة )، أو لإجراء تعديلات جوهرية عليها بحيث تحافظ الشفرة الناتجة على الجوانب الأساسية للأصل. قد تختلف هذه الجوانب الأساسية، ولكنها غالبًا ما تشمل السلوك والأداء وواجهة المستخدم . وتُسمى نتيجة هذه العملية أيضًا بإعادة كتابة .

الدوافع

تشمل الدوافع الشائعة لإعادة كتابة البرامج ما يلي:

  • شفرة المصدر غير متاحة أو محمية بترخيص غير متوافق .
  • لا يمكن تكييف الكود مع منصة مستهدفة جديدة؛ ربما يجب استخدام لغة برمجة مختلفة ، حيث لا يوجد دعم للكود الأصلي على المنصة المستهدفة.
  • الكود صعب الفهم والصيانة والتوسيع والتصحيح .
  • هناك رغبة في استخدام تقنيات أو أساليب جديدة، خاصة عندما تتطلب التحسينات المرغوبة تغييرًا كبيرًا.

المخاطر

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

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

أمثلة

يُعتبر مشروع نتسكيب لتحسين تصميم صفحات HTML في متصفح نافيجاتور 4 مثالًا على فشل إعادة كتابة المتصفح. فقد طُوّر محرك التصميم الجديد ( جيكو ) بشكل مستقل عن نافيجاتور، ولم يندمج بسلاسة مع كود نافيجاتور. ونتيجةً لذلك، أُعيدت كتابة نافيجاتور نفسه حول المحرك الجديد، مما أدى إلى تعطيل العديد من الميزات الموجودة وتأخير إصداره لعدة أشهر. في المقابل، ركزت مايكروسوفت على التحسينات التدريجية لمتصفح إنترنت إكسبلورر، ولم تواجه نفس هذه العقبات. [ 1 ] [ 5 ]

انظر أيضاً

مراجع

  1. 1 2 3 سبولسكي، جويل (6 أبريل 2000). "أشياء لا يجب عليك فعلها أبدًا، الجزء الأول" . جويل عن البرمجيات . تم الاسترجاع في 23 يناير 2015 .
  2. رونكس أجربيك، جوست (15 أبريل 2005). "لا تعيد كتابة الكود من الصفر" . مؤرشف من الأصل في 10 أكتوبر 2008. تم الاطلاع عليه في 11 سبتمبر 2008 .
  3. زاوينسكي، جيمي . "سلسلة من المراهقين الذين يعانون من نقص الانتباه" . تم الاسترجاع في 11-09-2008 .
  4. تيلي، بن (29 سبتمبر 2001). "إعادة كتابة قاعدة بيانات ضخمة من الصفر" . تم الاسترجاع في 11 سبتمبر 2008 .
  5. زاوينسكي، جيمي (31 مارس 1999). "الاستقالة والتشريح بعد الوفاة" . تم الاسترجاع في 11 سبتمبر 2008 .