إعادة الهيكلة (Refactoring) مثل ترتيب المطبخ وتنظيفه: الطعام الذي تطبخه هو نفسه، لكن كل شيء الآن في مكانه وتعمل لاحقاً بسهولة أكبر.
ما الذي يمكن فعله#
- تقسيم دالة طويلة إلى عدة دوال صغيرة
- تغيير أسماء المتغيرات إلى أسماء معبّرة
- حذف الشيفرة المكررة أو غير المستخدمة
- تبسيط الشروط المتداخلة
- نقل الشيفرة إلى مكان أنسب
القاعدة الأساسية#
يجب ألا يتغير سلوك البرنامج. فإذا أضفتَ ميزة جديدة أو أصلحتَ خللاً في الوقت نفسه فلم تعد إعادة هيكلة خالصة، ويصبح العثور على سبب الأعطال صعباً.
لماذا هي لازمة#
الشيفرة التي تتوسع شهوراً دون ترتيب تصبح بطيئة وهشّة. وكل تعديل بسيط يأخذ وقتاً طويلاً ويرتفع احتمال الخطأ. وتُسمّى هذه الحالة «الدين التقني»، وإعادة الهيكلة هي طريقة سداده تدريجياً.
خطيرة بدون اختبارات#
لأن السلوك يجب أن يبقى ثابتاً، تحتاج إلى وسيلة للتأكد. واختبار الوحدة يفعل ذلك تماماً: يجب أن تنجح كل الاختبارات قبل إعادة الهيكلة وبعدها.
متى نفعلها#
- عندما تريد إضافة ميزة جديدة لكن الشيفرة الحالية تعيق ذلك.
- أثناء إصلاح خلل، إذا كانت الشيفرة مربكة.
- بشكل صغير ومستمر، لا كمشروع كبير ومحفوف بالمخاطر.
ملاحظة#
يساعد مساعدو الذكاء الاصطناعي في اقتراح إعادة الهيكلة، لكن اختبر النتيجة بالاختبارات والمراجعة حتماً.