الدرس 11: تفكيك برنامج إلى دوال
نعرف بالفعل كيف نعرّف الدوال ونستدعيها — والآن نتعلّم الحرفة: كيف نفكّك برنامجاً كاملاً إلى الدوال الصحيحة. القاعدة الأساسية: دالة واحدة = مهمة واحدة، باسم يقول بالضبط ما الذي تفعله. سنبني آلة حاسبة صغيرة تحتوي على add وsub وmul، ودالة print_menu تعرض قائمة، وmain رفيعة تقود فقط: تقرأ المدخلات وتوزّ
البرنامج الجيد مثل مطبخ مطعم: محطة للسلطات، ومحطة للشواء، ومحطة للحلويات — ورئيس طهاة يوجّه الطلبات فقط إلى المحطة الصحيحة. لا توجد محطة تفعل كل شيء، ولذلك يسير كل شيء بسلاسة.
- التفكيك إلى دوال
- تقسيم برنامج كبير إلى دوال صغيرة، لكل منها مهمة واحدة واضحة.
- مهمة واحدة
- المبدأ القائل إن كل دالة تفعل شيئاً واحداً فقط — يسهل اختبارها وإصلاحها وإعادة استخدامها.
- main كقائد أوركسترا
- main رفيعة لا تحسب بنفسها: بل تستدعي الدوال الصحيحة بالترتيب الصحيح.
- التوجيه (dispatch)
- اختيار الدالة التي ستُنفَّذ بناءً على مدخلات المستخدم، مثلاً عبر سلسلة if / else if.
- التصميم من الأعلى إلى الأسفل
- نبدأ من المهمة الكبيرة، ونقسّمها إلى مهام فرعية، وبعد ذلك فقط نكتب كل دالة.