النتائج 1 إلى 11 من 11

الموضوع: الإجابة على : مالفائدة من الكلاسات إذا كانت الدوال تؤدي الغرض ؟

  1. #1

    الإجابة على : مالفائدة من الكلاسات إذا كانت الدوال تؤدي الغرض ؟



    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاته .. وتحية طيبة للجميع وبعد.

    جاءني سؤال على بريدي يقول : مالفائدة من الكلاسات إذا كانت الدوال تؤدي الغرض ومتى أستخدم كل منهما ؟ من أحد الأعضاء في سوالف و فضلت الإجابة عليه من خلال المنتدى لتصل الفائدة للجميع وإليكم التوضيح الذي أسأل الله جل وعلا أن يكتب أجره لوالدي رحمه الله تعالى .

    دعنا نجيب عن هذا السؤال بالتفصيل كالتالي :

    الدوال

    من المعروف أن الدالة يكتب فيها شفرة معينة ويتم تنفيذ هذه الشفرة عدة مرات عن طريق استدعاء الدالة وهذه الطريقة توفر الجهد وتوفر علي كتابة الكود .

    الكلاسات

    من المعروف أن الكلاس هو عبارة عن مجموعة من المتغيرات والدوال .

    ----------------------------------------------------

    من أهم النقاط التي جاء بها مفهوم الكلاسات هو التنظيم والترتيب أو بكلام أخر تنظيم الكود البرمجي على شكل وحدات صغيرة يتم تمثيلها بالكلاسات أي أن كل وحدة يتم تمثيلها بكلاس معين وفي الأخير يتم تمثيل البرنامج على أنه وحدة واحدة ولكنه في الواقع هو عبارة عن مجموعة من الكلاسات .

    ولكن مالفائدة من هذا الكلام ؟

    دعنا نلاحظ المثال التالي :

    لوكان لدينا برنامج اسمه X وهو مثلاً برنامج لإدارة المقالات ويحتوي هذا البرنامج على 5 كلاسات بداخله والتي يتكون البرنامج منها ولنفرض ان هذه الكلاسات هي كالتالي :

    1- كلاس A وهو خاص بقواعد البيانات.
    2- كلاس B وهو خاص بمحرك القوالب .
    3- كلاس C وهو خاص بالسيشن .
    4- كلاس D وهو خاص بالـ PDF .
    5- كلاس E وهو خاص بتأثيرات الفلاش .

    و الآن ما نريد ملاحظته هو أن البرنامج X يعمل كوحدة واحدة تمثل برنامج مقالات ولكن كل كلاس يقوم بالعملية الخاصة فيه دون التدخل في شأن الكلاسات الأخرى والآن لاحظ النقطة المهمة في عالم هندسة البرمجيات الا وهي تصحيح الأخطاء.

    النقطة الأولى : لو ظهر خطأ مثلاً في الكلاس D والخاص بالتعامل مع الـ PDF فعندها لن تقوم بتعديل كامل البرنامج ولن تلمس أي كود في الشفرات الخاصة بالبرنامج لأن قواعد البيانات تعمل و محرك القوالب يعمل وكلاس السيشن يعمل وتأثيرات الفلاش تعمل وكل ماعليك القيام به الآن هو الذهاب وتعديل بعض الأمور في كلاس D الخاص بالـ PDF ليعود البرنامج كما كان في وقت قصير جداً دون تعديل الكثير من الشفرات وهذه الخاصية أو الميزة تحسب لصالح مفهوم الكائنات و الكلاسات .

    النقطة الثانية : والتي يجب الإنتباه لها هي ما يسمى بـ Reusability أو إعادة الإستخدام ولتوضيح هذه الفكرة بشكل مفصل دعنا نقول الآن أننا نريد بناء برنامج جديد اسمه Y وهو عبارة عن سكربت اخبار مثلاً عندها ستكون العملية اسهل من ذي قبل لأنني سأعيد استخدام الملفات السابقة التي تم استخدامها في البرنامج X أي من الممكن أن أستخدم جميع الكلاسات أو بعضها ولنقل الآن اننا نريد استخدام الكلاس الخاص بقواعد البيانات والكلاس الخاص بالقوالب عندها فقط سنقوم بإستخدام الكلاسات الجاهزة في البرنامج الجديد بأخذ نسخة مثلاً من ملف db.php وملف template.php والتي على سبيل المثال تمثل اسماء ملفات الكلاسات وبهذا وفرت علي الجهد والوقت وهذا مايسمى بنظرية اعادة الإستخدام .


    النقطة الثالثة : وهي تطوير البرنامج وللتوضيح دعنا نقول أنك اردت ان تطور البرنامج X بإضافة نشر المقالات في الفيس بوك وقمت بإضافة كلاس جديد للبرنامج اسمه F خاص بالنشر على الفيس بوك عندها لن تحتاج إلى لمس اي من الكلاسات السابقة بل كل ماعليك فعله هو اضافة الكلاس F في البرنامج ليستطيع البرنامج نشر المقالات على الفيس بوك بدون لمس قواعد البيانات أو الـ PDF أو غيرها وفي حالة اردت إلغاء هذه الخاصية فإن كل ماعليك فقط هو حذف الكلاس ومسح الشفرات الخاصة بهذا الكلاس وعندها لن يتضرر ايضاً اي من الكلاسات السابقة أي بإختصار في التطوير والتعديل والحذف فإن البرنامج لن يتضرر.

    النقطة الرابعة : هي المشاركة حيث يقوم المبرمجين بتطوير كلاسات مختلفة ونقلها فيما بينهم ممايساعد المطورين والمبرمجين على تطوير برامجهم بسرعة عالية لأنك لن تضطر لكتابة كل شئ من الصفر وعلى سبيل المثال لو قلنا أن فلان من الناس قام بتطوير كلاس يساعدك على إرسال رسائل إلى تويتر عندها فقط يمكنك أخذ هذا الكلاس وإضافته لبرنامج X وجعلها يرسل عناوين المقالات إلى تويتر ولاحظ أنك قمت بإضافة هذه الخاصية بسرعة عالية جداً دون كتابة أكواد بل ربما يمكنك إنهاء النسخة الجديدة من البرنامج X وتطويرها في يوم واحد فقط وهذا يسمى بـ Sharing Library أو المكتبات التي يتم مشاركتها في العديد من البرامج .

    النقطة الخامسة : هي تقليل الكود وأكبر دليل على هذا الكلام هو عند كتابة برنامج إدارة محتوى حيث أن برامج إدارة المحتوى تحتوي على برامج عديدة مثل الأخبار والمقالات والدروس وغيرها .. وعندها كل ما عليك فعله هو عمل مجلد واحد فقط للكلاسات و استدعاء نفس الكلاسات في البرامج المختلفة وهذا يساعد على تقليل الكود المستخدم في البرامج المختلفة ويساعد ايضاً على تقليل مشاكل التعديل التي سبق ذكرها .


    هل هذا الكلام يعني أن الدوال غير مفيدة ؟

    هذا الكلام غير صحيح والسبب هو أن الكلاسات اصلاً تقوم على الدوال ولكن من أفضل الحالات التي يكون فيها استخدام الدوال افضل من الكائنات هو حالات "تضارب الإصدارات" و للتوضيح أكثر عندها دعنا نقول ان هناك مشاكل عديدة في اصدارات PHP4 عند التعامل مع الكلاسات وعند كتابة كلاس مثلاً على PHP5 وهذا الكلاس مثلاً قمنا فيه بإستخدام جميع الخصائص الجديدة التي جاءت مع PHP5 عندها لن نستطيع استخدام هذا الكلاس في السيرفرات التي تحتوي على الإصدار الرابع وبهذه الطريقة فإن الدوال تكون أنسب في هذه الحالة لأنها ستعمل على الإصدارين بدون مشاكل و المثال المشهور على هذه الحالة هي مدونة وورد بريس فهي تستخدم دوال تبدأ بـ wp_ و هي تعمل كـ API وهي تعمل في اصدارات بي اتش بي بدون مشاكل مع ان وورد بريس تحتوي على كلاسات ايضاً.


    خلاصة القول

    إن استخدام الكلاسات يجعل البرنامج اكثر تنظيماً من ذي قبل ويسهل عليك العديد من الأمور ويوفر عليك الكثير من الجهد وبتعديل كلاس واحد فقط عندها لن تحتاج لتعديل كامل البرنامج وهذا يسرع عملية التطوير وفي حالة قمت بتطوير كلاس جديد فإن عملية إضافته للبرنامج تكون سهلة .


    وفي الأخير أرجوا أن أكون قد وفقت في الإجابة على السؤال وأرجوا ممن وجد الفائدة أن يدعوا لوالدي رحمه الله تعالى وأسكنه فسيح جناته وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل .

    أخوكم عبدالله عيد





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)


  2. #2
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    حسب رأيي الفائدة الاهم للكلاس هو ترتيب البرنامج

    قد يبدو هذا الامر غريبًا للبعض ولكن من جرب عمل مشاريع كبيرة باستعمال الدوال فقط سوف يضيييييع في الكود، هذا غير ان تقسيم النظام لكلاسات هو منطقي اكثر، فتقسيم النظام لوحدات صغيرة كل منها تتخصص بمشكلة معينة يسهل على قارئ الكود فهمه حتى لو لم يكن هو من كتبه(حتى من كتب الكود سوف ينساه بعد فترة من الزمن).
    اضف على ذلك خواص الكلاسات الاخرى مثل الوراثة وال interfaces وامكانية حفظ المتغيرات بداخلها، كل هذه الامور تجعل من الكود الذي نكتبه اقصر واكثر فعالية وتجعل البرمجة ممتعة اكثر






  3. #3
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    جزاك الله خيرا اخي الكريم عبدالله

    الله يرحم والدك ان شاء الله

    جزاك الله الف خير اخي الكريم





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    232


    شكرا اخي عبد الله ورحمة الله لوالدك ولجميع المسلمين
    حينما سمعت بالكلاسات بحثت عن درس مفصل لها ولم اجد سوى موضوعا واحدا كنت قد كتبته من قبل
    ولكن بعد قرائة الموضوع بصراحة لم اتممه لانني خرجت بفكرة ان الكلاسات تؤدي عمل الدوال...
    لكن هل اكون مخطئا اذ قلت ان النقاط الاربع الاولى ممكنة ايضا في الدوال نفسها ?!
    كما انني اتفق مع الاخ على ان الميزة الاساسية هي التنظيم وسهولة التعديل كما ذكرت انت...
    بانتظار الرأي والرأي الاخر ^_^





    __________________
    www.morobile.com

  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    789


    الكلاسات أيضاً تفيد اذا كنت لا تريد طلب جميع الدول بنفس الوقت، لنأخذ مثال التالى


    لنفرض أنه لدي 20 كلاس، ولدي صفحة شات تحتاج إلى 3 كلاسات للعمل وهم "الاعضاء، الرسائل، قاعده البيانات"، سأقوم بطلب الكلاسات الثالثه فقط، وبذالك وفرت موارد السيرفر من قرائة وترجمة 20 كلاس مع كل تحديث، تستطيع عمل ذالك عن طريق الدلالات ولكن سيكون العمل غير منطقي، لا اعتقد أنه يوجد شخص يعمل ملف لكل دلاله، وانما ستجد الكثير من المبرمجين يعملون ملف لكل كلاس، ويقوم بطلبهم بالوقت اللذي يحتاجه فيه.

    وأيضاً يوجد مايسمى "NameSpace" فى PHP6، وهذى ستكون إضافة رائعه.





    __________________
    متى استعبدتم الناس وقد ولدتهم أمهاتهم أحرار........
    -----------------------------------
    شبكة الشعر الادبيه

  6. #6
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    شكرا اخي عبد الله ورحمة الله لوالدك ولجميع المسلمين
    حينما سمعت بالكلاسات بحثت عن درس مفصل لها ولم اجد سوى موضوعا واحدا كنت قد كتبته من قبل
    ولكن بعد قرائة الموضوع بصراحة لم اتممه لانني خرجت بفكرة ان الكلاسات تؤدي عمل الدوال...
    لكن هل اكون مخطئا اذ قلت ان النقاط الاربع الاولى ممكنة ايضا في الدوال نفسها ?!
    كما انني اتفق مع الاخ على ان الميزة الاساسية هي التنظيم وسهولة التعديل كما ذكرت انت...
    بانتظار الرأي والرأي الاخر ^_^
    طيب كمان الاشياء التي يمكن ان نعملها مع دوال يمكن ان نعملها بدونها
    ولكن لماذا نستعمل الدوال؟ نستعملها لاختصار الكود وترتيبه، ولكي يبدو اكثر منطقية

    وهذا ما تفعله الكلاسات، انها تختصر علينا كتابة الدوال(الوراثة مثلا ً)، اي انها مرحلة متقدمة من الدوال، وبواسطتها يمكن تطبيق تراكيب برمجية لا يمكن تطبيقها مع الدوال بسهولة مثل ال design patterns
    اذا كنت حقًا تريد معرفة فائدة الكلاسات فتعلم الجافا فمن الصعب ان تعرف فائدتها مع ال php فهي لغة عشوائية الى حد ما.

    هل لك ان تخبرني ما الفرق بين الاسمبلي وبين "لغة" متطورة جدًا مثل ال c#.net ؟ كل ما يمكن عمله بالسي شارب يمكن عمله بالاسمبلي، بل ان اوامر السي شارب نفسها يتم ترجمتها للاسمبلي، زد على ذلك ان الاسمبلي اسرع من السي شارب.
    مع ذلك قلة من المبرمجين تقوم بعمل برمجياتها كاملة على الاسمبلي بينما السي شارب.نت منتشرة جدًا ، لماذا؟ لان تعلم السي شارب اسهل وتطوير البرمجيات فيها اسرع بكثير وتعتمد على .net framework وهي بيئة عمل ضخمة توفر علينا الوقت والجهد

    الوقت عامل مهم في تطوير البرمجيات، فاذا لم ترد ان تختصر الوقت فاستعمل الدوال بدلا ً من الكلاسات، واذا لم تكن ترغب باختصار الوقت ابدًا فلا تستعمل الدوال واستعمل الاوامر البرمجية وحدها.





    التعديل الأخير تم بواسطة ahmad sadiq ; 27-12-2009 الساعة 11:59 PM

  7. #7
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    232


    شكرا اخي احمد صديق على الرد والشرح المفصل
    اظن انك اعتقدت انني ادافع عن الدوال ^_^
    قبل دقيقة من كتابة هذا الرد كنت سابحث عن الدرس الذي كان قد كتبه الاخ عبد الله لابدأ تعلم الكلاسات
    ليس لاقتناعي بفكرتك وانما فقط ارى انها لغة عصرية وحديثة
    على العموم شكرا على التوضيح و lets go with classes





    __________________
    www.morobile.com

  8. #8
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    شكرا اخي احمد صديق على الرد والشرح المفصل
    اظن انك اعتقدت انني ادافع عن الدوال ^_^
    قبل دقيقة من كتابة هذا الرد كنت سابحث عن الدرس الذي كان قد كتبه الاخ عبد الله لابدأ تعلم الكلاسات
    ليس لاقتناعي بفكرتك وانما فقط ارى انها لغة عصرية وحديثة
    على العموم شكرا على التوضيح و lets go with classes
    وهذا افضل شيء تعمله لأن التجربة مهمة جدا لتفهم مبدأ البرمجة الكائنية -oop

    بالتوفيق اخي الكريم






  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509


    بارك الله فيك اخي عبد الله عيد وجزاك عنا كل خير .

    حقيقة قمت بقرائة موضوعك الاول والذي يتحدث عن البرمجة الكائنية , صراحة كان درس مميز جدا بسبب تفصيل الشرح فيه والذي قد يبدو ممل للوهلة الأولى , قمت بمتابعة الدرس والردود وقام احد الاخوة بسؤالك هذا السؤال في النهاية ولكنك لم تقم باعطائه الجواب , لذلك اكملت ما بدأ به اخونا وقمت بارسال الرسالة لك عبر البريد والحمد لله انك وضعت الجواب للجميع لكي تعم الفائدة .

    الى الامام اخي العزيز .





    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟

  10. #10


    شكرا لك اخ عبدالله عيد على هذا الدرس الرائع ،،

    وان شاء الله جاري تعلم برمجة php






  11. #11


    يعطيك العافية

    ويحتاج الواحد ينتقل للكلاسات في أسرع وقت 0_o





    __________________
    مدونتي الشخصية : Q_Q
    فليكري : o_O
    تويتري : ’_’
    حياكم فيهم





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض