هذه المادة جزء من سلسلة "مقدمة لتطوير المشاريع". المقالات السابقة:
- حول الشبكات
- حول هندسة البرمجيات
- حول HTTP/HTTPS
- حول أساسيات Maven
- حول servlets (كتابة تطبيق ويب بسيط)
- حول حاويات servlet
تاريخ شركة MVC
تمت صياغة الأفكار الكامنة وراء MVC بواسطة Trygve Reenskaug أثناء عمله في Xerox PARC في أواخر السبعينيات. في تلك الأيام، كان العمل باستخدام أجهزة الكمبيوتر يتطلب درجة علمية ودراسة مستمرة للوثائق الضخمة. كانت المهمة التي حلها Reenskaug مع مجموعة من المطورين الأقوياء هي تبسيط تفاعل المستخدم العادي مع الكمبيوتر. كان من الضروري إنشاء أدوات، من ناحية، ستكون بسيطة للغاية ومفهومة، ومن ناحية أخرى، من شأنها أن تجعل من الممكن التحكم في أجهزة الكمبيوتر والتطبيقات المعقدة. عمل رينسكاوج ضمن فريق قام بتطوير جهاز كمبيوتر محمول "للأطفال من جميع الأعمار" - Dynabook، بالإضافة إلى لغة SmallTalk تحت قيادة آلان كاي. كان ذلك عندما تم وضع مفاهيم الواجهة الودية. في كثير من النواحي، أثر العمل الذي قام به رينسكوج وفريقه على تطور مجال تكنولوجيا المعلومات. إليك حقيقة مثيرة للاهتمام لا تنطبق على MVC مباشرة، ولكنها توضح أهمية هذه التطورات. قال آلان كاي ، "عندما ذهبت إلى شركة Apple لأول مرة، وذلك في عام 1984، كان جهاز Mac معطلاً بالفعل واتصلت بي مجلة Newsweek وسألتني عن رأيي في جهاز Mac. فقلت، "حسنًا، جهاز Mac هو أول جهاز كمبيوتر شخصي جيدة بما فيه الكفاية ليتم انتقادها. لذا، بعد الإعلان عن جهاز الآيفون في عام 2007، أحضره لي وسلمه لي، وقال: "آلان، هل هذا جيد بما يكفي ليتم انتقاده؟" وقلت له: "ستيف، اجعله بهذا الحجم بحجم الكمبيوتر اللوحي وستحكم العالم." وبعد 3 سنوات، في 27 يناير 2010، طرحت شركة Apple جهاز iPad بقطر 9.7 بوصة. بمعنى آخر، اتبع ستيف جوبز نصيحة آلان كاي تمامًا تقريبًا. استمر مشروع رينسكاوج لمدة 10 سنوات. لكن المنشور الأول عن MVC ظهر بعد 10 سنوات أخرى. يذكر مارتن فاولر، مؤلف العديد من الكتب والمقالات حول هندسة البرمجيات، أنه درس MVC باستخدام نسخة عمل من Smalltalk. نظرًا لعدم وجود معلومات حول MVC من المصدر الأصلي لفترة طويلة، ولعدة أسباب أخرى، ظهر عدد كبير من التفسيرات المختلفة لهذا المفهوم. ونتيجة لذلك، يعتبر الكثيرون أن MVC هو نمط التصميم. بشكل أقل شيوعًا، يُطلق على MVC اسم النمط المركب أو مجموعة من الأنماط المتعددة التي تعمل معًا لإنشاء تطبيقات معقدة. ولكن، كما ذكرنا سابقًا، فإن MVC هي في المقام الأول مجموعة من الأفكار/المبادئ/المناهج المعمارية التي يمكن تنفيذها بطرق مختلفة باستخدام أنماط مختلفة... بعد ذلك، سننظر في الأفكار الرئيسية المضمنة في مفهوم MVC.MVC: الأفكار والمبادئ الأساسية
- VC عبارة عن مجموعة من الأفكار والمبادئ المعمارية لبناء أنظمة معلومات معقدة ذات واجهة مستخدم
- MVC هو اختصار يرمز إلى: Model-View-Controller
الخطوة 1. افصل منطق عمل التطبيق عن واجهة المستخدم
الفكرة الرئيسية لـ MVC هي أن أي تطبيق به واجهة مستخدم يمكن تقسيمه إلى وحدتين: وحدة مسؤولة عن تنفيذ منطق الأعمال، وواجهة المستخدم. ستقوم الوحدة الأولى بتنفيذ الوظيفة الرئيسية للتطبيق. هذه الوحدة هي جوهر النظام، حيث يتم تنفيذ نموذج مجال التطبيق. في نموذج MVC، هذه الوحدة هي الحرف M، أي النموذج. تقوم الوحدة الثانية بتنفيذ واجهة المستخدم بأكملها، بما في ذلك منطق عرض البيانات للمستخدم والتعامل مع تفاعل المستخدم مع التطبيق. الهدف الرئيسي من هذا الفصل هو التأكد من إمكانية تطوير واختبار جوهر النظام ("النموذج" في مصطلحات MVC) بشكل مستقل. بعد إجراء هذا الفصل، تبدو بنية التطبيق كما يلي:الخطوة 2 استخدم نمط المراقب لجعل النموذج أكثر استقلالية ولمزامنة واجهات المستخدم
وهنا لدينا هدفين:- تحقيق قدر أكبر من الاستقلالية للنموذج
- مزامنة واجهات المستخدم
الخطوة 3 قم بفصل الواجهة إلى العرض ووحدة التحكم
نواصل تقسيم التطبيق إلى وحدات، ولكن الآن على مستوى أقل في التسلسل الهرمي. في هذه الخطوة، يتم تقسيم واجهة المستخدم (التي قمنا بفصلها إلى وحدة منفصلة في الخطوة 1) إلى طريقة عرض ووحدة تحكم. من الصعب رسم خط صارم بين العرض ووحدة التحكم. إذا قلنا أن العرض هو ما يراه المستخدم، ووحدة التحكم هي الآلية التي تسمح للمستخدم بالتفاعل مع النظام، فقد تشير إلى تناقض. تعد عناصر التحكم، مثل الأزرار الموجودة على صفحة الويب أو لوحة المفاتيح الافتراضية على شاشة الهاتف، جزءًا أساسيًا من وحدة التحكم. ولكنها تكون مرئية للمستخدم كأي جزء من العرض. ما نتحدث عنه حقًا هنا هو الفصل الوظيفي. تتمثل المهمة الرئيسية لواجهة المستخدم في تسهيل تفاعل المستخدم مع النظام. هذا يعني أن الواجهة تحتوي على وظيفتين فقط:- الإخراج وعرض معلومات النظام بسهولة للمستخدم
- إدخال بيانات وأوامر المستخدم (إبلاغها للنظام)
- وفقًا لمبادئ نموذج MVC، يجب تقسيم النظام إلى وحدات.
- يجب أن تكون الوحدة الأكثر أهمية واستقلالية هي النموذج.
- النموذج هو جوهر النظام. وينبغي أن يكون من الممكن تطويره واختباره بشكل مستقل عن واجهة المستخدم.
- ولتحقيق ذلك، في الخطوة الأولى من التقسيم، نحتاج إلى تقسيم النظام إلى نموذج وواجهة مستخدم.
- بعد ذلك، باستخدام نمط المراقب، نقوم بتعزيز استقلالية النموذج ومزامنة واجهات المستخدم.
- الخطوة الثالثة هي تقسيم واجهة المستخدم إلى وحدة تحكم وعرض.
- كل ما هو مطلوب لتلقي بيانات المستخدم في النظام موجود في وحدة التحكم.
- كل ما هو مطلوب لتوصيل المعلومات إلى المستخدم موجود في طريقة العرض.
GO TO FULL VERSION