إفهم .. لماذا تبدأ البرمجة من الصفر؟

مدرج تحت قسم: مقالات
11 سبتمبر 2007

إن كان في عقلك فكرة برنامج أو سكريبت معين ، فلماذا تهرع إلى برمجته من الصفر و خصوصاً لو أن هذا البرنامج موجود بالفعل ؟

حتى و إن لم يكن موجود ، أنت لست مضطر للبداية من أول الطريق، بل إبدأ من حيث إنتهى الآخرون.

إسم السلسلة

لماذا تبدأ البرمجة من الصفر؟

عنوان الدرس

إفهم

تمهيد

فى هذه السلسلة القصيرة سأتحدث باختصار عن تجربتي لعملية بناء برنامج قاعدة بيانات لأعضاء هيئة التدريس بكلية التربية (جامعة المنيا) معتمداً على منتديات الآي بي Invision Power Board الشهيرة (نسخة زاجل 1.1).

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

أهداف هذا الدرس

  1. تدرك مميزات بدايه العمل من حيث إنتهى الأخرون.
  2. تتعرف على خطوات العمل.
  3. تفهم الهيكلية العامة لمنتدى IPB .

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

مميزات

  1. توفير الوقت بشكل ملحوظ خاصة إذا كان البرنامج الأم ذو هيكلية سهلة الفهم.
  2. ستعرف كيف يفكر غيرك و هى أفضل وسيلة لتتعلم خبايا البرمجة التي لن تجدها في أي سلسلة دروس أو بين سطور أي كتاب.
  3. ستضمن تأمين البرنامج بنسبة لا تقل عن 60-70% لأن أغلب وسائل تأمين البرنامج ستكون مكتوبة و جاهزة لك لتستعملها.
  4. ستكتشف مواهبك..لأنك ستدرك أن عقول هؤلاء المبرمجين (أصحاب البرنامج الأم) تتعمد الغباء أحياناً، و قتها ستؤمن بمقولة “بوخليفه” الشهيرة “شويه ذكاء على شويتين غباء وحبتين خيال ممكن نصبح مبرمجين”

الخطوات

الخطوات سهله بأذن الله ،فأنت غير مطالب سوي بالأتي:

  1. إعرف ماذا تريد .. إبنى جداولك في قاعدة البيانات -إن كنت ستعتمد في البرنامج على قواعد بيانات- و لا مانع أيضاً لو صممت صفحات العرض و النماذج و رسائل الخطأ و النجاح …إلخ، حتى تتضح لك صورة ما تريد تماماً.
  2. إفهم هيكيلة البرنامج الذي ستعتمد عليه في البناء و لو حتى بصورة سطحية في البداية.
  3. إمسح ما ترى أنه لن يفيدك من الأكواد و الدوال أو حتى ملفات بأكملها من البرنامج الأم و قم ببعض التجارب لتتأكد من أنه لا يزال يعمل (هذه أشبه بعمليه سلخ و تنظيف الفرخة لتتخلص فيها من الريش و الأحشاء و كل غير ذي فائدة).
  4. ضع شفرتك الخاصة و أعد التجربة، و لكن راعي أن تلتزم بهيكلية الكود الأصلى.

إلى المضمون

سأبدأ سريعاً..

indexphp

هذه صورة تشرح تسلسل عمل ملف الـ Index.php في المنتدى حين تطلب عرض قائمة الأعضاء Member list و الصورة تبين أن الملف يقوم بالأتي:

  1. إستدعاء ملف ال conf_global.php و الذي به أهم المتغيرات اللازمة لعمل البرنامج.
  2. يبدأ الملف في حساب الوقت الذي بدأ فيه في العمل ، و هذه خطوة مهمة حتى إذا إستغرق وقت طويل في التنفيذ يتم إيقاف التنفيذ مع إظهار رسالة تفيد بوجود ضغط
    شديد على الموقع.
  3. إستدعاء ملف الدوال functions.php و هو بمثابة محرك engine المنتدى ،فهو يحتوى على كل الدوال الهامة الخاصة بتأمين المدخلات و التاريخ و الطباعة
    الأخيرة لمحتويات الصفحة … إلخ
  4. تطبيق دالة تأمين المدخلات يتم حتى إن حاول أحد إضافة بعض الشفرات الضارة للعنوان مثلاًً و هذه خطوة مهمة ينساها كثير من شباب المبرمجين.
  5. التحقق من صلاحياتك و تجهيز الإستايل و تعريف الجلسات هى مجموعة من الخطوات التي لن أتحدث عنها ، لأنى ببساطة حذفتها في التجربة :) .
  6. اللغة أيضاً لن أتحدث عنها لأنها من الأشياء التي تخلصت منها حيث أن البرنامج كان مطلوب بلغة واحده هى العربية طبعاًً.
  7. بدء العرض العام بتفيذ دالة من دوال الملف functions.php لعرض الهيدر الخاص بالمنتدى ،لذا سميت هذه الخطوة بالعرض العام لأن الهيدر هذا موجود في كل صفحات
    المنتدى تقريباً.
  8. عرض رسائل في حال كنت تحاول الوصول لمنطقة لا تملك صلاحيه الوصول لها أو أن المنتدى مغلق أو إجبارك على تسجيل الدخول قبل أن تتابع.
  9. الأن إن لم تكن ممنوعاً و لك صلاحيه الوصول و بناء على قيمة المتغير act يقوم ملف الإندكس بأستدعاء الملف المطلوب و في حالتنا هذه الملف المطلوب هو memberlist.php .

الدرس القادم

فى الدرس القادم سنتحدث عن الملف Memberlist.php و عن ميكانيكية عمله.

للكاتب إبراهيم عبد الغني

  • Share/Bookmark

التعليقات (5) على ”إفهم .. لماذا تبدأ البرمجة من الصفر؟“

  1. السلام عليكم

    الصورة لوحدها درس :)
    الله يعطيك العافية

    والسـلام

  2. dezology

    شرح طيب لكن اخى الكريم كنت اتمنى توضيح مفهومين design patrtern و programming patterns لمن لا يعرفهم لأنهم سيقصروا المشوار على الكثير سأختم هذه الجمله التى قرأتها فى كتاب wrox web2.0 programming
    the feature take 200 times than if it was implented in the project plan

  3. السلام عليكم …
    اخي العزيز لا اعتقد انه هذه المقولة تسري هنـا :
    ( إبدأ من حيث أنتهى الأخرون )
    بصراحة مستحيل احد يتعلم صح اذا ما بدأ من الصفر مرات عديدة وعديدة …

    يعني بإختصار عامل الخبرة بيختفي اذا ما جربت وخطأت وتعلمت …

    اي شيء جاهز وتطورة بصراحة احسه اكبر غلط …

    غير المشاكل اللي ممكن تكون موجودة بالسكربت الأصلي …

    مشكور على المقال الرائع …

  4. تطوير منتج معين فكره جيده
    لكن برمجة اى سكريبت من الصفر هو الانتاج الحقيقى

  5. انا مبتدء فى برمجة البى اتش بى
    فكيف ابدء من حيث انتهى الاخرون ؟
    فمثلا انا اتعلم الاساسايات عشان اصنع اى سكربت مطلوب منى
    فهل من المعقول انى لا اتعلم الاساسا وادور على سكربتات جهازة اقوم بفحصها وتعديها
    فهذا يجعلنى لا اكون مبرمج —فربما يكون شى جميل ان اعدل على سكربتات
    وممكن تكون وظيفة مطور او وظيفة لا اعلمها
    وربما يكون قصدك ان لا اتعلم لغة برمجة قديمة نوعا ما ؟
    ———————-
    ماذا لو طلب منك شخص ان تصنع لة شى معين وهو شى جديد او مميز ونادر
    فسوف تذهب لتعلم كيف يتم وباى لغة
    فى وجة نظرى لابد من التعلم من البداية حتى تحترف وتصبح مطور او تعدل على سكربتات كبيرة
    ————————-
    ارجو توضيح وجة نظرك

أضف تعليقك




يمكنك استخدام الوسوم التالية في التعليق: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


* حقول مطلوبة