إن كان فى عقلك فكرة برنامج أو سكريبت معين ، فلماذا تهرع إلى برمجته من الصفر و خصوصاً لو أن هذا البرنامج موجود بالفعل ؟
حتى و إن لم يكن موجود ، أنت لست مضطر للبداية من أول الطريق، بل إبدأ من حيث إنتهى الآخرون.
إسم السلسلة
لماذا تبدأ البرمجة من الصفر؟
عنوان الدرس
إفهم
تمهيد
فى هذه السلسلة القصيرة سأتحدث بأختصار عن تجربتي لعملية بناء برنامج قاعدة بيانات لأعضاء هيئة التدريس بكلية التربية (جامعة المنيا) معتمداً على منتديات الآي بي Invision Power Board الشهيرة (نسخة زاجل 1.1 )
نعم .. ربما يكون إختيارى لمنتدى لأبنى عليه قاعدة بيانات لأعضاء هيئة التدريس غير موفق فى نظر البعض و لكنى كنت أريد ضرب عصفورين بحجر واحد .. أولا كنت و منذ أمد بعيد أتوق لفهم ميكانيكية عمل هذا المنتدى و الثاني كنت أريد إنجاز المهمة فى وقت سريع و هذا من مميزات (البدء من حيث إنتهى الآخرون)
أهداف هذا الدرس
1. تدرك مميزات بدايه العمل من حيث إنتهى الأخرون.
2. تتعرف على خطوات العمل.
3. تفهم الهيكلية العامة لمنتدى IPB .
ستتدرك فيما يلي أنى لم أبدء شرح تجربتي من أول خطوة و ذلك لأنى أخشى كعادتى من كسلي فى أن أكمل السلسلة و فى هذه الحالة سيكون هذا الدرس مفيد حتى و إن كان قائماً بذاته دون السلسلة.
مميزات
1. توفير الوقت بشكل ملحوظ خاصة إذا كان البرنامج الأم ذو هيكلية سهلة الفهم.
2. ستعرف كيف يفكر غيرك و هى أفضل وسيلة لتتعلم خبايا البرمجة التى لن تجدها فى أى سلسلة دروس أو بين سطور أي كتاب.
3. ستضمن تأمين البرنامج بنسبة لا تقل عن 60-70% لأن أغلب وسائل تأمين البرنامج ستكون مكتوبة و جاهزة لك لتستعملها.
4. ستكتشف مواهبك..لأنك ستدرك أن عقول هؤلاء المبرمجين (أصحاب البرنامج الأم) تتعمد الغباء أحياناً، و قتها ستؤمن بمقولة “بوخليفه” الشهيرة “شويه ذكاء على شويتين غباء وحبتين خيال ممكن نصبح مبرمجين”
الخطوات
الخطوات سهله بأذن الله ،فأنت غير مطالب سوي بالأتي :
1. إعرف ماذا تريد .. إبنى جداولك فى قاعدة البيانات -إن كنت ستعتمد فى البرنامج على قواعد بيانات- و لا مانع أيضاً لو صممت صفحات العرض و النماذج و رسائل الخطأ و النجاح …إلخ، حتى تتضح لك صورة ما تريد تماماً.
2. إفهم هيكيلة البرنامج الذي ستعتمد عليه فى البناء و لو حتى بصورة سطحية فى البداية.
3. إمسح ما ترى أنه لن يفيدك من الأكواد و الدوال أو حتى ملفات بأكملها من البرنامج الأم و قم ببعض التجارب لتتأكد من أنه لا يزال يعمل (هذه أشبه بعمليه سلخ و تنظيف الفرخة لتتخلص فيها من الريش و الأحشاء و كل غير ذي فائدة).
4. ضع شفرتك الخاصة و أعد التجربة، و لكن راعي أن تلتزم بهيكلية الكود الأصلى.
إلى المضمون
سأبدأ سريعاً..
رسم توضيحي لميكانيكية عمل ملف ال index.php فى منتديات IPB
هذه صورة تشرح تسلسل عمل ملف الـ 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 و عن ميكانيكية عمله.