المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : المكتبات البرمجية التطور لأى مبرمج



salima
11-01-2013, بتوقيت غرينيتش 01:29 PM
http://www.dzbatna.com/images/icons/iconrote.gif ط§ظ„ظ…ظƒطھط¨ط§طھ ط§ظ„ط¨ط±ظ…ط¬ظٹط© ط§ظ„طھط·ظˆط± ظ„ط£ظ‰ ظ…ط¨ط±ظ…ط¬ (http://www.dzbatna.com/t889971/)



السلام عليكم ورحمة الله

أولا ً انا فى منتهى السعادة لعودتى لموقع تريدنت التى غابت طويلا ً بسبب ضياع اليوزر نيم
ثانيا
سوف احاول ان اتحدث فى موضوع قصير عن المكتبات فى اللغات البرمجية وما هى وما هو عملها

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


--مقدمة--

منذ حوالى عام تكلمت فى موضوع عن دمج اللغات البرمجية لأنتاج اسكربتات او موقع ذو موصفات قياسية عالية

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


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

والله ما فى كلمة من الى قالها إلا ويتكتب فيها عشرة مواضيع ..


--ما هى المكتبات البرمجية--

المكتبات البرمجية تختلف مسمياتها على حسب اللغة التى نتعامل معها
وبشكل عام فان مسمياتها تتراوح بين (الأوبجيكت ++ كلاسات) والمودلز و البكايجز والمكتبات


والهدف الأول والاخير منها هو تسهيل مهما نقوم بها او نحتاج اليها وكل ما توساعت المكتبة فشملت ادوات نحتاجها اكثر فا اكثر




-- المذيد--
ان اقصى ما قد يشغل انتباهنا هو مدى انبهار الجميع بالتقدم الذى حققته مكتبات الجافا سكريبت script
مثل
البرو تايب
والجى كويرى
وغيرها مثل مكتبت الكور
و العديد من المكتبات الرائعة
التى تجعلنا نقوم بعمل الاسكربت بأقل مجهود ممكن ويكون فى أروع اشكالة

وفائدة مكتبات الجافا سكريبت script هى لا تحصر ولا تعد
ومن اقصها هى علاج المشكلة التى تكون رفيقة كل المبرمجين الذين يتقنون الجافاسكريبت script وهى تعدد المتصفحات
حيث انك لكى تقوم بكتابة كود code يعمل على جميع المتصفحات فان هذة مهمة مرهقة
ان لم تكن مميته على الأمد البعيد
ولهاذا فان أهم ما فى موضوعى الان هو مكتبات الجافا سكريبت script
وانا شخصيا ً اعشق مكتبة الجى كويرى
الأكثر من رائعة ولو شاء الله سوف اقوم بعمل دروس كثيرة فيها ولاكن حين يتوافر لى الوقت
وهى مكتبة رائعة هدفها الأساسى هو تقصير الكود code الخاص بك على اقل الحتمالات الممكنه

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



وكما قلت فهذا هو موضوع نظرى فقط
ولاكن لكى نفهم ما هى المكتبات البرمجية بمختلف مسامياتها
فسوف نأخذ مثال ::

--مثال --

على فرض انك مبرمج وكنت تقوم بعمل احد البرامج فى صيغة الاسكربت باللغة البى اتش بى لأحد عملائك من المواقع

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


http://hack-systems.com/photos/tutorials/arabic_tut/tutrel.png


حسنا ً هنا فى الصورة لقد استخدمت الكلامات التى سوف نستخدمها للتعبير عن الدوال المسؤلة عن كل عملية
من الاتصال بالقاعدة الى اختيار القاعدةة التى سنتعامل معاها الى التعديل


حسنا ً كيف نحقق هذا ؟؟؟
هناك عدة طرق
الأولة ان نقوم مثلا ً بعمل صفحة ونطلق عليها
vote.php

على ان يكون محتواها
دالة الاتصال بقاعدة البينات
دالة اختيار القاعدة
وبعدها نتأكد من المستخدم
مثال :
رمز Code:
$user = $_COOKIE[userid]; $select = mysql_query("select `id` from `users` WHERE(`id` = '$user' ) ") or die (mysql_error()); $select = mysql_fetch_array($select); $result = $select[id]==$user?True:false;
وبناء ً على قيم المتغير ريسولت فأننا بهاذا نقو بتحديد ما اذا كان العضو موجود فعلا ً ام انه غير مسجل ام انه احد العابثين

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

والأن ننتقل الى تعديل الخانات التى نرغب فيها
فى الخطوة الخامسة نقوم بالتعديل على الخانة الخاصة بالتصويت و ايضا ً اترك الحرية للمرمجين بطريقتهم
فانا اتبع طريقة معقدة جدا ً ولا ارغب بأرهاق الاخوه المبتدائين بالطريقة الخاصة بى وعلى اى حال انا اضع نتائج الخاصة بالتصويت على هذا الشكل
نتائج الصوت الاول , نتائج الصوت الثانى , نتائج الثالث,نتائج الرابع ,..
10,18,65,25
واقوم فصلهم فى مصفوفة بتحديد عامل التصنيف الكوما (,)
ومن بعدها اقوم بعمل رقم الصوت ناقص واحد ثوم احدد ان هذا هو العنصر المراد تحديده من النتائج التى فى المصفوفة ثم أضيف الى رقمه الحالى 1 ثم اقوم بأعادة المصفوفة الى حالتها الطبيعية ثم اقوم بعملية الأبديت للخانة .. http://www.dzbatna.com/images/smilies/crazy.gif
ولكل مبرمج طريقته الخاصة

ومن بعدها سوف نقوم بعمل تحديث update ايضا ً الى الخانة التى بها قائمة المصوتين
ومن بعدها القيام بالتعديل ايضا ً على عدد الاشخاص الذين قامو بالتصويت
والان نصل الى روئية الكود code الخاص بنا
يا لها من فوضى
هل ترغب فى تطويره
تفضل



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

حل مناسب
ولاكن ؟؟؟؟



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

وهذا الملف يكون هو مكتبتنا الخاصة بالدوال التى نستخدمها دائما ً

ولاكن فى لغة البى اتش بى بالتحديد
فلماذا لا نستخدم الأوبجيكتز لنقوم بوضع تلك الدوال بها
حتى نستفيد من الخصاصة الخاصة بالأوبجيكت مثل الكونستراكتر
والأينهارت (الأرث) لأقصى حماية ممكنة
وبهاذا فأننا نقوم بعمل دوالنا جميعا ً فى مكتبة
ونقوم بوضع اسامى لهم
فيصبح الكود code الخاص بالفوت vote.php
بهذا الشكل

رمز Code:
<?php require_once(&quot;class.php&quot;); //2nsha2 el class $class= new ClassName(); //الأتصال بقاعدة البينات $class->database(); $class->isUser($_COOKIE[user); $class->isVoted($_COOKIE[user]); $class->Edit($rowid,$value); $class->Edit($rowid,$value); $class->Edit($rowid,$value); ?>
وفى الواقع بالنسبة لدالة التعديل فلدى عدة كلاسات لو شاء الرحمن قد انشرهم هنا وهم من كتابتى الشخصية ومنهم دوال الأبديت لقاعدة البينات والاضافة ولقد قمت بعملهم فى صورة اعتقد انها فى منتهى الروحعة بحيث يكون استخدامها على اكفاء وجه ممكن



وهذا كان مثال أعتقد انه معقد لأستخدام المكتبات البرمجية


ولاكن ما الفائدة من كل هذا
أولا ً سهولة تامة فى تحديث update البرمجيات الخاصة بك
ثانيا ً أقل جهد مبذول بعد قيامك بعمل الكلاسات الرئيسية لك سوف يصبح الأمر ولا أسهل لبرمجة اى اسكربت
والأفضل من هذا
أمكانيت تحميل اعداد مهولة من الكلاسات وبالمجان لدراستها وتطويرها واستخددامها فى احتيجاتك
ومن امثلة للغة البى اتش بى تفضل
http://www.phpclasses.org/



وهاك productذا اعتقد ان الجزاء الأخير بدا معقدا ً واذا اردتو شرح طريقة تفصيلى له فأخبرونى وسوف أوافيكم به فى صيغة دروس فيديو فى القريب ان شاء الرحمن

والسلام ختام












ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)




https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى