إعادة هيكلة التعليمات البرمجية، هي عبارة عن عملية إعادة هيكلة رمز الكمبيوتر الحالي - تغيير شكله - دون تغيير سلوكه الخارجي. الغاية منه Refactoring تحسين السمات الغير الوظيفية للبرنامج. وتضم المزايا تحسين قراءة التعليمات البرمجية وتقليل التعقيد.
يمكن أن ينتج عن ذلك إلى تحسين إمكانية صيانة التعليمات البرمجية المصدر وإنشاء بنية داخلية أكثر تعبيراً أو النموذج الكائني لتحسين قابليتيه للتوسعة.
بشكل عام، تطبق إعادة الهيكلة سلسلة من عمليات إعادة الهيكلة الدقيقة الأساسية الموحدة، والتي يكون كل منها (عادة) تغييراً طفيفًا في الكود المصدري لبرنامج الكمبيوتر الذي إما يحتفظ بسلوك البرنامج، أو على الأقل لا يعدل توافقه للمتطلبات الوظيفية. توفر الكثير من بيئات التطوير دعمًا تلقائيًا لأداء الجوانب الميكانيكية لإعادة الهيكلة الأساسية.
إذا تمت إعادة صياغة التعليمات البرمجية بشكل جيد، فقد تساعد مطوري البرامج على اكتشاف وإصلاح الخلل أو الثغرات الخفية أو النائمة في النظام من خلال تبسيط المنطق الأساسي والقضاء على مستويات التعقيد غير الضرورية. إذا تم القيام به بشكل سيئ، فقد يفشل متطلب عدم تغيير الوظيفة الخارجية أو إدخال أخطاء جديدة أو كليهما.«من خلال التحسين المستمر لتصميم الكود، نجعل التعامل معه أسهل وأكثر سهولة.
هذا في تناقض حاد مع ما يحدث غالبآ: القليل من إعادة الهيكلة والكثير من الانتباه يساهم في التسريع من وتيرة إضافة ميزات جديدة, إذا اعتدت على عادة إعادة الهيكلة بإستمرار ,فستجد أنه من السهل تطوير التعليمات البرمجية والحفاظ عليها.» – Joshua Kerievsky, Refactoring to Patterns
التحفيز
غالبآ ما يكون الدافع وراء إعادة الهيكلة ينتج من خلال عن طريق ملاحظة بعض الاخطاء في الكود. على سبيل المثال، قد تكون بعض الطرق لحل مشكل ما طويلة جدا، أو قد تكون الطريقة مكررة من طريقة اخرى قريبة. بمجرد التعرف عليها، يمكن معالجة هذه المشكلات عن طريق إعادة هيكلة الكود المصدري، أو تحويله إلى شكل جديد يتصرف كما كان من قبل بدون اخطاء وأسطر أقل.بالنسبة الإجراءات الطويلة، يمكن استخراج إجراء فرعي أصغر أو أكثر؛ أو لتكرار الإجراءات، يمكن إزالة التكرار واستبداله بوظيفة مشتركة واحدة. يمكن أن يؤدي الفشل في تنفيذ إعادة الهيكلة إلى تراكم الديون التقنية (technical debt)؛ من ناحية أخرى، فإن إعادة الهيكلة هي إحدى الوسائل الرئيسية لسداد الديون التقنية.
الفوائد
هناك فئتان عامتان من الفوائد لنشاط إعادة الهيكلة.قابلية الصيانة. من الأسهل إصلاح الأخطاء نظرًا لأن شفرة المصدر سهلة القراءة ونوايا مؤلفها سهلة الفهم. يمكن تحقيق ذلك من خلال تقليل الإجراءات الكبيرة المتجانسة إلى مجموعة من الطرق الفردية والموجزة جيدًا وذات الأهداف الفردية. يمكن تحقيق ذلك من خلال نقل طريقة إلى فصل أكثر ملاءمة، أو عن طريق إزالة التعليقات المضللة.التوسيع. من الأسهل توسيع إمكانات التطبيق إذا كان يستعمل أنماط تصميم يمكن التعرف عليها، ويوفر بعض المرونة في حالة عدم وجود أي منها من قبل.
المراجع
areq.net
التصانيف
برمجة هندسة البرمجيات العلوم التطبيقية علم الحاسوب