شرح المفهوم
إعادة الهيكلة (Refactoring) في C++ ليست لجعل الكود يبدو ذكيًا. إنها تتعلق بأخذ جزء صغير من الكود يعمل وإعادة تشكيله بحيث يصبح التغيير التالي أسهل وأكثر أمانًا ووضوحًا. في هذا الدرس، ستبدأ بدالة صغيرة جدًا، وتتحقق من أنها تعمل بشكل صحيح، ثم تحسن الأسماء والبنية والاستخدام دون تغيير النتيجة. الهدف هو ملاحظة كيف يصبح حتى مثال المبتدئين القصير أكثر وضوحًا عندما يكون لكل جزء وظيفة واحدة ويُقرأ البرنامج بترتيب طبيعي.
أين تضع الكود
- ابدأ بالمتغيرات والمدخلات. حافظ على وضوح `includes`، ودالة `main`، وأنواع البيانات.
- أضف منطق المعالجة في القسم الأوسط.
- اختتم بالمخرجات والتحقق السريع.
مرجع الأوامر
- أعد تسمية المعرفات غير الواضحة بحيث يكون الغرض من الدالة واضحًا قبل قراءة نصها.
- شغّل البرنامج قبل وبعد إعادة الهيكلة للتأكد من بقاء المخرجات كما هي.
- انتقل من مساعد بسيط إلى مثال أكثر واقعية قليلاً بقيم مسماة ونتائج مطبوعة.
- دوّن سببًا واحدًا يجعل النسخة المعاد هيكلتها أسهل في التوسيع الأسبوع المقبل.
دليل خطوة بخطوة
- قم بتجميع وتشغيل النسخة الأولية لتعرف السلوك الأصلي.
- حدد ما تفعله الدالة وما إذا كان اسمها الحالي يوضح ذلك.
- أعد هيكلة المثال بتحسين التسمية وفصل الإعداد عن المخرجات.
- اختبر حالة طبيعية واحدة وزوجًا مختلفًا من الأرقام للتأكد من عدم وجود أعطال.
- اختتم بملاحظة قصيرة تصف ما أصبح أسهل في القراءة بعد التغيير.
تمارين تطبيقية
- أعد هيكلة دالة تضرب قيمتين وتطبع النتيجة في `main`.
- أنشئ نسخة ثانية تخزن النتيجة في متغير قبل عرضها.
- أعد كتابة المثال بأسماء ومدخلات مختلفة مع الحفاظ على نفس البنية.
تحديات برمجية
- قارن نسخة مدمجة بدالة واحدة مع نسخة موسعة قليلاً وقرر أيهما أسهل للمبتدئ في الصيانة.
- أعد هيكلة المثال بحيث يمكنك إعادة استخدام الدالة لثلاث عمليات حسابية منفصلة دون نسخ المنطق.
مهام تمرين صغيرة
- غيّر اسم دالة واحدة ليتناسب بشكل أفضل مع وظيفتها.
- أضف استدعاءً إضافيًا واحدًا للدالة بقيم جديدة.
- اكتب ملخصًا من سطر واحد لما يحسبه هذا البرنامج.
خطأ شائع
Skipping input validation or mixing logic/output in one unstructured block.
تحدٍ مصغّر من الواقع
Build a small real-life example for this lesson topic using 3 clear steps: input, process, output.