كود قديم

الرمز القديم  هو كود مصدري يتعلق بنظام تشغيل أو تقنية كمبيوتر لم تعد مدعومة  أو مصنّعة حالياً. يمكن أن يعني المصطلح أيضًا كود تم إدراجه في البرامج الحديثة بغرض الحفاظ على ميزة أقدم أو مدعومة سابقًا  على سبيل المثال دعم واجهة تسلسلية على الرغم من أن العديد من الأنظمة الحديثة ليس لديها منفذ تسلسلي. قد يكون أيضًا في شكل دعم تنسيقات الملفات القديمة  التي ربما تم ترميزها بأحرف غير ASCII ، مثل EBCDIC . 

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

بينما يشير المصطلح عادةً إلى الكود المصدري، فإنه يمكن أيضًا أن ينطبق على التعليمات البرمجية القابلة للتنفيذ التي لم تعد تعمل على إصدار أحدث من النظام، أو تتطلب طبقة توافق للقيام بذلك. من الأمثلة على ذلك تطبيق Macintosh الكلاسيكي الذي لن يعمل أصلاً على نظام التشغيل Mac OS X ، ولكنه يعمل داخل البيئة الكلاسيكية، أو تطبيق Win16 يعمل على Windows XP باستخدام ميزة Windows على Windows في XP.

التفسيرات الحديثة 

في الآونة الأخيرة، طور مجتمع هندسة البرمجيات تفسيرات أخرى لمصطلح الكود القديم legacy code . من بين الأكثر شيوعًا هي الكود المصدري الموروثة من شخص آخر الكود المصدري الموروث من إصدار أقدم من البرنامج . عرّفه إيلي لوبيان، الرئيس التنفيذي لشركة تايبموك، على أنه «كود يخشى المطورون تغييره». قدم مايكل فيذرز
 تعريفًا للكود القديم على أنه كود بدون اختبارات ، وهو ما يعكس منظور صعوبة التعامل مع الكود القديم جزئيًا بسبب نقص اختبارات الرجعية (regression test). كما حدد اختبارات التوصيف characterization tests لبدء وضع الكود القديم تحت الاختبار.

وصف Ginny Hendry إنشاء التعليمات البرمجية على أنه تحد للمبرمجين الحاليين لإنشاء تعليمات برمجية «مثل الإرث الآخر في حياتنا - مثل التحف والإرث والقصص التي نعتز بها وننتقلها بمحبة من جيل إلى آخر. ماذا لو كان الكود القديم شيئًا نفخر به؟».

المراجع 

هندسة البرمجيات