11
نوفمبر
2023

نمط MVC هو نموذج معماري يُستخدم على نطاق واسع في تطوير تطبيقات الويب والبرمجة الحاسوبية، وهو اختصار لـ (Model-View-Controller). 

يُعدُّ نمط MVC مفتاحاً لتحسين أداء التطبيقات وتنظيمها، وفهمه أمرٌ بالغ الأهمية لمصممي الويب ومطوريه.

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

يلقي فريق Syrian Geeks الضوء على نموذج MVC ومكوناته الثلاثة في هذا المقال، فتابع معنا.

مكونات MVC

يتألف MVC من ثلاثة مكونات:

النموذج (Model): 

يمثل هذا القسم البيانات والجانب الخلفي (back-end) للتطبيق، ويُستخدم للوصول إلى قاعدة البيانات، ومعالجة البيانات. 

مثال: في المتجر على الإنترنت، يمثل النموذج قاعدة البيانات، ويمكن أن يحتوي على بيانات تتعلق بالمنتجات والمخزون.

العرض (View): 

هو الجزء الذي يراه المستخدم، فهو واجهة المستخدم التي تُعرض فيها البيانات.

لا يتفاعل العرض مع قاعدة البيانات مباشرة؛ بل يتلقى البيانات من المراقب (التحكم) ثم يعرضها للمستخدم.

مثال: في التطبيق نفسه، يشمل العرض صفحات الويب وواجهات المستخدم التي تعرض المنتجات.

المتحكم (Controller): 

يدير هذا القسم التفاعل بين النموذج والعرض، ويتحكم في استجابة التطبيق لإدخالات المستخدم، ويوجّه التنقل بين الصفحات والعرض.

يستخدم المتحكمُ النموذجَ لاستخراج البيانات اللازمة ويوفرها للعرض، ويدير التفاعل بين العرض والخدمات الخارجية (مثل إرسال رسائل البريد الإلكتروني باستخدام Nodemailer).

مثال: يتعامل المتحكم (Controller) في التطبيق مع أمور عدة، مثل: إضافة منتج إلى سلة التسوق، وتحديث الكميات.

فوائد استخدام MVC:

لاستخدام نمط MVC فوائد عديدة، هي:

ينظم تطبيقات الويب كبيرة الحجم

يسهّل MVC تقسيم عملية تطوير التطبيقات وتنظيمها؛ لوجود فصل للتعليمات البرمجية بين المستويات الثلاثة. 

يدعم استدعاء الطريقة غير المتزامنة (AMI)

بما أن بنية MVC تعمل بصورة جيدة مع JavaScript وأطرها، فإنها تدعم أيضاً استخدام Asynchronous Method Invocation (AMI)، ما يسمح للمطورين ببناء تطبيقات ويب ذات تحميل أسرع. 

قابلية تعديل التطبيق بسهولة

تسمح منهجية MVC بتعديل التطبيق بأكمله بسهولة؛ لأن التغيير في قسم معين من التطبيق لا يؤثر على البنية بأكملها، وهذا يساعد على إضافة وظائف جديدة بيسر، ويزيد مرونة التطبيق وقابليته للتوسع. 

تسريع عملية تطوير تطبيقات الويب 

نظراً لوجود فصل للكود بين المستويات الثلاثة، فإن تطوير تطبيقات الويب باستخدام نموذج MVC يتيح لأحد المطورين العمل على قسم معين (العرض مثلاً)، بينما يمكن لمطور ثانٍ العمل على أي قسم آخر (مثل المتحكم) في وقت واحد.

سهولة التخطيط والصيانة

يعدُّ نموذج MVC مفيداً في مرحلة التخطيط الأولي للتطبيق؛ لأنه يمنح المطور مخططاً تفصيلياً لترتيب أفكاره في كود فعلي، ويحدُّ من تكرار التعليمات البرمجية، ويسمح بصيانة التطبيق بسلاسة.

ومن جهة أخرى، يسهم في العثور على أجزاء محددة من التعليمات البرمجية بسرعة.

إرجاع البيانات دون تنسيق

يتيح لك MVC إرجاع البيانات بشكل غير منسق، ما يعني أنك تقوم بفصل البيانات عن تنسيق العرض. 

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

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

طرق عرض متعددة

في بنية MVC، يمكنك تطوير مكونات عرض متعددة لنموذج بياناتك الخاص بيسر، أي إنك ستتمكن من توظيف نموذج البيانات نفسه في تصميم مكونات واجهة المستخدم المختلفة، مثل الشاشات أو الواجهات البصرية المتعددة.

يدعم TTD (التطوير القائم على الاختبار)

Test-Driven Development هي منهجية تطوير برمجي تتضمن كتابة الاختبارات، واختبار الكود قبل تطبيقه.

نمط MVC يجعل TTD أمراً سهلاً وفعالاً، من خلال فصل الأجزاء، وتنفيذ اختبارات موجهة نحو المكونات الفردية بطريقة دقيقة فعالة.

يوفر طريقة سهلة لتطوير عناوين URL RESTful الصديقة لمحركات البحث (SEO)

باستخدام MVC Pattern، يمكنك إنشاء عناوين URL RESTful بسهولة، وبطريقة ملائمة لمحركات البحث، وهذا يجعل التطبيق أكثر مرونة وقابلية للفهم. 

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

بالنسبة لعناوين URL، يتم إنشاؤها عادة من خلال المتحكم (Controller)، وهذا يعتمد على كيفية تنظيم تطبيقك، وكيفية تقديم مسارات الويب.

أمثلة عن نمط MVC

  • جميع أطُر الويب مثل: (Ruby on Rails - ASP.NET MVC - Laravel - Angular) تستخدم نمط MVC لمساعدة المطورين في تنظيم تطبيقاتهم.
  • بعض أنماط التصميم الأخرى مستندة إلى MVC، مثل:

MVVM (Model-View-Viewmodel)

MVP (Model-View-Presenter)

MVW (Model-View-Whatever)

 

ختاما

في هذا المقال سلطنا الضوء على نمط (MVC) وبينَّا أهميته في تطوير التطبيقات، إذ هو خطوة رئيسة في تنظيم تطبيقات الويب وتنفيذها بطريقة فعّالة وسهلة الصيانة. 

 

المصادر:

اكتب ملاحظاتك

(اقتراحات - تعديلات - اضافة)

يرجى مشاركتنا ملاحظاتك واقتراحات حول الموقع:
تم استلام ملاحظتك
img