هذه المادة جزء من سلسلة "مقدمة لتطوير المشاريع". المقالات السابقة:
- عن الشبكة ؛
- حول هندسة البرمجيات ;
- حول بروتوكولات HTTP/HTTPS ؛
- حول أساسيات مافن .
- حول servlets (نحن نكتب تطبيق ويب بسيط) ؛
- حول حاويات servlet .
تاريخ شركة MVC
تمت صياغة أفكار MVC بواسطة Trygve Reenskaug أثناء عمله في Xerox PARC في أواخر السبعينيات. في تلك الأيام، كان من المستحيل العمل مع جهاز كمبيوتر دون الحصول على درجة أكاديمية ودراسة مستمرة للوثائق الضخمة. كانت المشكلة التي حلها Reenskaug مع مجموعة من المطورين الأقوياء هي تبسيط تفاعل المستخدم العادي مع الكمبيوتر. كان من الضروري إنشاء أدوات، من ناحية، ستكون بسيطة للغاية ومفهومة، ومن ناحية أخرى، من شأنها أن تجعل من الممكن إدارة الكمبيوتر والتطبيقات المعقدة. عمل Reenskaug ضمن فريق قام بتطوير جهاز كمبيوتر محمول "للأطفال من جميع الأعمار" - Dynabook، بالإضافة إلى لغة SmallTalk تحت قيادة Alan Kay. في ذلك الوقت تم وضع مفاهيم الواجهة الودية. أثر عمل رينسكاوج مع فريقه بشكل كبير على تطوير مجال تكنولوجيا المعلومات. دعونا نقدم حقيقة مثيرة للاهتمام لا تتعلق مباشرة بـ MVC، ولكنها توضح أهمية تلك التطورات. في عام 2007، بعد تقديم هاتف Apple iPhone، قال آلان كاي: «عندما ظهر جهاز Macintosh، سألت مجلة Newsweek عن رأيي فيه. قلت: هذا هو أول حاسوب شخصي يستحق النقد. بعد العرض، جاء ستيف جوبز وسأل: هل يستحق iPhone النقد؟ وقلت، اجعلها خمس في ثماني بوصات وسوف تغزو العالم. وبعد ثلاث سنوات، في 27 يناير 2010، قدمت شركة أبل جهاز 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