الخميس، 8 يناير 2009

نظام MVC


كانت php إلى وقت قريب لغة سيئة بنسبة لكتير من المبرمجين المحترفين وخصوصا اللي اشتغلوا على لغة بحجم Java لأنها ما كنتش لغة ( O O ) لحد وقت قريب بالشكل المفهوم للأوبجكتس

على كل حال في شيء خطير ومهم وحيوي برضو في هندسة البرمجيات اسمه Design pattern .. ودا يعتبر خطوات لحل مجموعة من المشاكل البرمجية اللي واجهت مبرمجين فبقوا يمشوا على نمط معين علشان ما يقعوش في نفس المشكلة تاني المهم ان الباترن دي او الانماط دي اصبحت شيء مهم جدا وخطير ومريح في البرمجة

وتقدر تقرا عنها كتير

لما جت php4 بدأت البي اتش بي تاخد شكل جديد بحيث يقدر المبرمجين يخلوها لغة (OO) لكن فضلت برضو مملة جدا خاصة في كتير من نواحيها لكن بعدها قدروا يطبقوا النمط الشهير جدا Model view controller عليها وبكده اتنقلت بي اتش بي لمرحلة تانية

جت php5 دعمت النمط ده جدا فيها وخصوصا ان في اطر عمل كتير جدا بدأت تهتم بده زي CackPHP وCodeigniter على الرغم من php4

لما ظهرت php5 وظهرت معاها نقلة نوعية في برمجة الكائنات بدأت تظهر تطبيقات جديدة جدا في php وتحولت للغة المفضلة لكتير من مبرمجين الجافا واصدقاء اجانب ليا شخصيا بدأوا يرتاحوا لبي اتش بي


دا كله ما تكلمناش عن النمط ده اللي هو MVC

في انماط كتير جدا منها سنجلتون وفاكتوري وان شاء الله اقدر اشرحهم ببساطه للمبرمج العربي :)

بالنسبة للنمط MVC ظهر لحل مشكلة خطيرة جدا وهي اساس برمجة الكائنات وهو ِAbstraction

ترجمة حرفية التجريد


هنتخيل عندك موقع كبير جدا وليكن يوتيوب ولما بنيت الموقع فكرت في استخدام قاعدة بيانات نوعها اكسس وكنت متوقع ان المستخدمين قليلين فجأة بقى يجيلك ملايين الزوار واحتجت فورا انك تعدل نظام قاعدة البيانات إلى نظام تاني خالص وليكن Mysql

هتعمل ايه ؟
تفتكر كام سطر استعلام ممكن تغيره علشان تخليه يقرا اس كيو ال سيرفر او اوراكل ؟
تفتكر كام سطر برمجي لازم تعدل عليه في موقع زي يوتيوب؟

اظن ان الموضوع معقد اكثر بكتير ؟

دي مشكلة واحدة من المشاكل الكتير اللي حلها النظام ده او الباترن ده فلقيوا الحل في الويب بالذات وخصوصا بعد ظهور لغة Ruby on rails ان افضل حل لمشاكل الانترنت هو الباترن MVC

السبب ببساطه :: ان تطبيقات الانترنت بتتكون من تلات حاجات

1- منطق برمجي
2- تصميم خارجي (شكل)
3- نظام قواعد بيانات

المنطق البرمجي = Controller
التصميم الخارجي = View
قواعد البيانات = Model




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

هذا باختصار أهمية نظامMVC وقوته

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


فضلا لو وجدت نفسك غير فاهم للمقال اطلب فورا شرح تفصيلي لنقطة ما كفى تضييعا للوقت نريد ان نتقدم وانا في المساعدة :)

يمكنك محادثتي ماسنجر
Ebnauf@gmail.com

تحياتي لكل العرب :)

الأحد، 4 يناير 2009

الاول بالعربي

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

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

حال العرب اليوم بحاجة إلى كل شخص يحمل او يمتلك معلومة والعلم مرتكز المعلومات.. فأتمنى ان اكون على قدر كبير من المسئولية :)

على كل حال تابعوا معي كل جديد في عالم التكنولوجيا وأتمنى أن اتناقش معكم عبر الماسنجر الخاص بي ebnauf@gmail.com

وانا في غاية السعادة في تلقي طلباتكم عبر بريدي الشخصي او الماسنجر

ولنبدأ بإسم الله