TOP

ما هي إعادة الهيكلة؟

وصف

إعادة بناء التعليمات البرمجية (Refactoring) – التغييرات التي يتم إجراؤها على البنية الداخلية للبرمجيات (البرمجيات) لتسهيل الفهم وأسرع في التعديل دون تغيير السلوك الخارجي. كما أنها عبارة عن إعادة هيكلة للبرنامج من خلال تطبيق سلسلة من عمليات إعادة الهيكلة دون تغيير السلوك الخارجي للبرنامج.


مزايا إعادة الهيكلة:

عندما تحتاج إلى القيام بإعادة الهيكلة:

الروائح الكريهة في الكود (Smells Catalog) :

خيارات إعادة الهيكلة الممكنة

  1. Moving Features Between Objects (نقل التعليمات البرمجية الكامل بين الكائنات):

    • Move Method (ركز على الطريقة) – آزل تعريف العربية إضاء كانت كانت جديل جديدي وعلى برمجية تعليقة تعليقة كامنة.
    • Move Field (المجال المتحكر) - يتم عندما يتم استعمال الحق من قبل فئة أخرى أكثر من المكان المحدد فيه.
  2. Organizing Data (ترتيب البيانات):

    • Encapsulate Field (إعادة التدوير) - أحد المبادئ الأساسية في OOP هو تغليف البيانات أو إخفاؤها. ومن خلال جعل البيانات عامة، يمكن للكائنات قراءة القيم وتغييرها دون علم صاحب البيانات. لذلك، نجعل مشعل هذا الحقل مغلقًا ونوفر ترقق حرقة.
    • Encapsulate Collection (التغليف الجماعي) - يحتوي الفصل غالبًا على مجموعة من العينات. يمكن أن تكون هذه المجموعة مصفوفة، أو قائمة، أو مجموعة، أو متجهًا. يجب ألا يُرجع التابع getter كائن المجموعة نفسه، لأن ذلك سيسمح للعملاء بتعديل محتويات المجموعة دون معرفة الفئة التي تمتلكها. لذلك، تحتاج إلى جعل القيمة التي يتم إرجاعها بواسطة الطريقة للقراءة فقط وإنشاء طرق لإضافة/إزالة العناصر.
  3. Composing Methods (استخراج ودمج الكود):

    • Extract Method (ركز على الطريقة) – إذا كان هناك جزء من الكود يمكن تجميعه، ضع ذلك الجزء في طريقة منفصلة باسم يوضح الغرض منه. وهكذا، فان اسم الترجمة سوف يحل محل المعلومات.
    • Inline Method (تريكة التمسين) - في بعض الأحيان يكون من الضروري نسخ نص الطريقة إلى الكود المطلوب. في بعض الأحيان تكون كائنات الطريقة واضحة بذاتها، مثل اسم الطريقة نفسها. قد يكون هناك أيضًا موقف عندما يكون هناك العديد من الطرق المختلفة، والتي لا يكون هيكلها ناجحًا، لذا من الأفضل دمجها جميعًا بطريقة عامة واحدة، ثم فصل الطرق بطريقة أخرى.
    • Inline Temp (أدخل متغير متغير) - استخدم هذه العناصر البسيطة عبر الإنترنت. في بعض الأحيان يتداخل هذا المتغير مع عمليات إعادة البناء الأخرى.
    • Replace Temp with Query (استبدال متغير مؤقت بطلب الطريقة) - يستخدم عند استخدام متغير مؤقت لتخزين قيمة التعبير. في هذه الحالة، سنقوم باستبدال التعبير بالطريقة واستبدال جميع المراجع في الكود لهذا المتغير بالطريقة الجديدة.
    • Split Temporary Variable (متغير القسم مؤقت) - ينطبق عند استخدام وحدة مؤقت متغيرة لتعيين نتائج مختلفة عدة مرات (ليست متغيرة في الحلقة داخل الحلقة وليست متغيرة لتجميع النتيجة). في هذه الحالة، نقوم بإنشاء متغير منفصل لكل مهمة.
  4. Simplifying Conditional Expressions (تبسيت العبارات بالشروط):

    • Decompose Conditional (تحليل العمل الشني) - يتم تعريفة هيما يكتون يتم إدارة شركة شرطية من الشيكات (إذا كان قان أمر إلى). نستبدل بنجاح (إذا)، ومنتج من ثم، وإلا بطرق ووصفة. فهو يساهم في فهم سبب التفرع بطريقة أفضل، ويشرح أسماء المسارات والغرض من الجزء المقابل من كود البرمجة.
    • Consolidate Conditional Expression (توهيد الإجموع التركي) - يتم إجراوه يتم إجراوه يديم كان هدا تدرب من فحوصات استما تيتم إجراوه يتم إجراوه ثيم كان هدا تدرب من فحوصات تحميل تيتم إجراوه يديم كان هذا تدرب من الاختبارات إلى تحميل على تنافس تحميل. تحتاج إلى دمج جميع عمليات التحقق في تعبير أو نمط الوحدة الشرطية.
    • Consolidate Duplicate Conditional القطع - نفس الجزء موجود في جميع فروع التعبير القانوني. تحتاج إلى نسخ هذا الجزء من الكود من الكود.
    • Remove Control Flag (إزالة علامة الاختيار) - يوجد متغير يعمل كرمز تحكم لسلسلة من التعبيرات المنطقية. نحن لا نستخدم الراحة أو العودة بدلا من ذلك.
    • Replace Conditional with Polymorphism (استبدال ضابط الشرطة بأشكال متعددة) - يتم تنفيذه عند وجود وكيل شرطي يعتمد على سلوك الكائن. من الضروري نسخ كل الفرع من فرع العامل إلى فرع الشركة التابعة. اجعل الكود المصدر مقدراًا.