الدرس (18) الدوال (Methods) لتقسيم الكود وإعادة استخدامه.

رقم الدرس 18
آخر تحديث 2025/07/22
تقدم القراءة

الدرس 18: الدوال - ابْنِ فريقك من العمال الرقميين


ماذا لو أخبرتك أن أفضل المبرمجين هم الأكثر كسلًا؟ ليس كسلًا سلبيًا، بل كسل استراتيجي. إنهم يكرهون تكرار أنفسهم ويعيشون بمبدأ “لا تكرر نفسك” (Don’t Repeat Yourself – DRY). إذا قمت يومًا بنسخ ولصق كتلة من الكود “فقط لاستخدامها مرة أخرى هناك”، فقد انتهكت أهم قاعدة في البرمجة الفعالة. اليوم، ستتعلم كيف تبني فريقك الخاص من العمال الرقميين الذين لا يكلون ولا يملون، والذين يطيعون الأوامر بدقة متناهية. هؤلاء العمال هم “الدوال” (Methods)، ومعهم، لن تضطر أبدًا لأداء نفس المهمة مرتين.

في هذا الدرس ستتعلم


ما هي الدوال (Methods) ولماذا هي حجر الزاوية في البرمجة.
كيفية تعريف دالة “الإجراء” التي لا تعيد قيمة (void).
فهم معمق لكيفية جعل الدوال “مُنتِجة” للبيانات باستخدام أنواع الإرجاع و return.
الفرق الجوهري بين تعريف الدالة واستدعائها.
لمحة أولية عن تمرير المعلومات للدوال باستخدام المعلمات (Parameters).

الفصل الأول: مشكلة العامل المُرهَق: لعنة النسخ واللصق
لنتخيل أنك تبني برنامجًا، وفي كل مرة تبدأ مهمة جديدة، تحتاج إلى طباعة ترويسة (header) ترحيبية مميزة. في البداية، قد يبدو الأمر سهلًا، فتكتب الكود مباشرة:

اضغط على "تشغيل" لعرض النتيجة هنا.

رسائل النظام ستظهر هنا.

جاهز
السطر 1, العمود 1

هذا الأسلوب، المعروف بالنسخ واللصق، هو عدو المبرمج المحترف. إنه ليس فقط متعبًا، بل خطير. ماذا لو قررت تغيير شكل الترويسة؟ سيتعين عليك البحث عن كل نسخة وتعديلها يدويًا، مع وجود فرصة كبيرة لنسيان واحدة أو ارتكاب خطأ. هذا الكود صعب الصيانة وهش.
الفصل الثاني: العامل المنفِّذ: بناء دالة void
الحل هو أن نكون مدراء أذكياء. بدلاً من القيام بالعمل بأنفسنا كل مرة، نوظف “عاملاً متخصصًا” (Specialist worker). مهمته الوحيدة هي طباعة الترويسة. نحن نُعرّف هذه المهمة في مكان واحد فقط، ثم “نستدعي” هذا العامل كلما احتجنا إليه. هذا العامل هو الدالة (Method).

الدالة (Method)


كتلة من الكود يتم تغليفها وإعطاؤها اسمًا لأداء مهمة محددة. يمكن استدعاؤها (Call) بالاسم من أي مكان في البرنامج لتنفيذ تلك المهمة، مما يمنع تكرار الكود ويجعل البرنامج أكثر تنظيمًا وقابلية للقراءة.

عندما تكون مهمة العامل هي تنفيذ إجراء فقط (مثل الطباعة) دون أن ننتظر منه نتيجة أو “منتجًا”، نستخدم الكلمة المفتاحية void. كلمة void تعني حرفيًا “فارغ”، أي أن هذه الدالة لا تعيد أي قيمة عند انتهائها.

اضغط على "تشغيل" لعرض النتيجة هنا.

رسائل النظام ستظهر هنا.

جاهز
السطر 1, العمود 1

انظر كيف أصبح الكود الرئيسي (main) أنظف وأوضح. الآن، إذا أردنا تغيير شكل الترويسة، نعدلها في مكان واحد فقط: داخل دالة printHeader، وسينعكس التغيير في كل مكان يتم استدعاؤها فيه.
الفصل الثالث: العامل المنتج: سحر قيم الإرجاع (Return Values)
عامل void رائع لتنفيذ الأوامر، لكن ماذا لو أردنا عاملاً يقوم بحساب شيء ما ثم يسلمنا النتيجة لنستخدمها؟ تخيل أن void هو عامل يدهن الحائط (ينفذ أمرًا)، لكننا الآن نحتاج إلى عامل يصنع كرسيًا ثم يعطيه لنا. نحن (الكود الرئيسي) نريد استلام هذا الكرسي لنقرر ما نفعله به: نضعه في غرفة، نبيعه، أو نعطيه لعامل آخر ليقوم بتزيينه.
هنا يأتي دور أنواع الإرجاع. بدلاً من void، نحدد نوع “المنتج” الذي ستعيده الدالة: int، double، String، إلخ. ولكي تسلمنا الدالة المنتج، نستخدم الكلمة المفتاحية return.
كلمة return تفعل شيئين حاسمين:
توقف تنفيذ الدالة فورًا. أي كود يأتي بعد return داخل نفس الدالة لن يتم تنفيذه أبدًا.
ترسل القيمة المحددة إلى المكان الذي تم استدعاء الدالة منه.

اضغط على "تشغيل" لعرض النتيجة هنا.

رسائل النظام ستظهر هنا.

جاهز
السطر 1, العمود 1

متى تختار؟ إجراء (void) أم نتيجة (return)؟


استخدم void (العامل المنفذ): عندما تريد أن تؤدي الدالة مهمة قائمة بذاتها لها تأثير جانبي واضح (مثل طباعة شيء ما، حفظ ملف، تعديل متغير عام). أنت تقول له “افعل هذا” ولا تنتظر منه شيئًا في المقابل.
استخدم return (العامل المنتج): عندما تريد أن تقوم الدالة بحساب، أو تحويل، أو إنشاء قيمة تحتاجها في مكان آخر من الكود. أنت تسأله “ما هي قيمة هذا؟” وتنتظر منه إجابة (منتج) لتستخدمها.

ماذا تفعل الكلمة المفتاحية return في الدالة؟







ملخص الدرس: أنت مدير المشروع


لقد تخرجت اليوم من كونك عاملاً يقوم بكل شيء بنفسه إلى مدير مشروع ذكي يبني ويدير فريقًا من العمال الرقميين. تعلمت أن بعض عمالك (دوال void) هم منفذون رائعون للإجراءات، بينما البعض الآخر (دوال return) هم منتجون خبراء للبيانات. الدوال هي قلب البرمجة المنظمة، فهي تسمح لك بتقسيم المشاكل الكبيرة إلى مهام صغيرة وقابلة للإدارة، وتطبيق مبدأ “لا تكرر نفسك” (DRY)، وكتابة كود نظيف وفعال وقابل للصيانة.

الخطوات التالية


لقد رأينا لمحة سريعة عن كيفية إعطاء تعليمات لعمالنا الرقميين باستخدام ما يسمى “بالمعلمات” (Parameters). في الدرس القادم، سنتعمق في هذا الموضوع الحاسم. سنتعلم كيف نصبح خبراء في التواصل مع دوالنا، ونستكشف كل جوانب تمرير البيانات إليها، مما يفتح الباب أمام بناء دوال أكثر قوة ومرونة.

🔐 سجل دخولك لحفظ التقدم

سجل دخولك لحفظ تقدمك والحصول على شهادة إتمام

تسجيل الدخول