MVC Archiالبنية والإطار مع أمثلة

⚡ ملخص ذكي

نمط Model-View-Controller (MVC) هو نمط معماري يفصل التطبيق إلى ثلاثة مكونات - النموذج والعرض ووحدة التحكم - ويعزل منطق الأعمال عن طبقة العرض لبناء تطبيقات ويب وسطح مكتب قابلة للصيانة والاختبار باستخدام أطر عمل مثل Spring وDjango وLaravel.

  • 🧱 ثلاثة مكونات: يقسم نمط MVC التطبيق إلى نموذج (بيانات)، وعرض (تقديم)، ووحدة تحكم (تفاعل المستخدم).
  • 🗄️ طراز: يخزن البيانات ومنطق الأعمال، ويستجيب للطلبات الواردة من العرض والتعليمات الواردة من وحدة التحكم.
  • 🖼️ عرض: يعرض البيانات للمستخدم من خلال عناصر واجهة المستخدم مثل مربعات النص والقوائم المنسدلة والرسوم البيانية والجداول.
  • 🎮 المراقب: يقوم بتفسير مدخلات المستخدم، ثم يقوم بتحديث النموذج والعرض وفقًا لذلك.
  • ⚙️ الأطر الشعبية: Spring MVC، Django، Ruby on Rails، CakePHP، Laravel، و Codeيقوم Igniter بتطبيق نمط MVC.
  • 🇧🇷 المزايا مقابل العيوب: يُحسّن نمط MVC قابلية الاختبار والتطوير المتوازي، ولكنه يُضيف أيضًا...tracطبقات المعلومات وتعقيد التنقل.

MVC Archiالهيكل والإطار

ما هو إطار عمل MVC؟

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

تاريخ شركة MVC

  • تمت مناقشة هندسة MVC لأول مرة في عام 1979 بواسطة Trygve Reenskaug
  • تم تقديم نموذج MVC لأول مرة في عام 1987 في لغة برمجة Smalltalk.
  • تم قبول MVC لأول مرة كمفهوم عام، في مقالة عام 1988
  • في الآونة الأخيرة، يتم استخدام نمط MVC على نطاق واسع في تطبيقات الويب الحديثة

مميزات برنامج MVC

  • قابلية اختبار سهلة وبدون احتكاك. إطار عمل قابل للاختبار وقابل للتوسيع والتوصيل بدرجة عالية
  • لتصميم بنية تطبيق ويب باستخدام نمط MVC، فإنه يوفر تحكمًا كاملاً في HTML الخاص بك بالإضافة إلى URLs
  • الاستفادة من الميزات الموجودة التي توفرها ASP.NET، وJSP، وDjango، وما إلى ذلك.
  • الفصل الواضح بين المنطق: النموذج، والعرض، ووحدة التحكم. فصل مهام التطبيق مثل منطق الأعمال، ومنطق UL، ومنطق الإدخال
  • URL التوجيه لتحسين محركات البحث URLقوي URL-خريطةping للفهم والبحث URLs
  • يدعم التطوير القائم على الاختبار (TDD)

MVC Architecture

والآن بعد أن اتضحت الفوائد، إليكم البنية التفصيلية لإطار عمل MVC:

MVC Architecture
MVC Archiمخطط فني

ثلاثة مكونات مهمة لـ MVC هي:

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

دعونا نلقي نظرة على كل مكون من هذه المكونات بالتفصيل:

عرض الطلب

العرض هو ذلك الجزء من التطبيق الذي يمثل عرض البيانات.

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

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

مراقب

وحدة التحكم هي جزء التطبيق المسؤول عن تفاعل المستخدم. تُفسر وحدة التحكم مدخلات الماوس ولوحة المفاتيح من المستخدم، مُعلمةً النموذج والعرض بالتغيير حسب الحاجة.

يرسل المتحكم أوامر إلى النموذج لتحديث حالته (مثل حفظ مستند معين). كما يرسل المتحكم أوامر إلى العرض المرتبط به لتغيير طريقة عرضه (مثل تمرير مستند معين).

الموديل

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

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

أمثلة على MVC

دعونا نرى مثال وحدة تحكم عرض النموذج من الحياة اليومية:

مثال 1

أمثلة على MVC

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

في هذا المثال لهندسة MVC،

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

دعونا نرى مثالاً آخر لنموذج MVC،

مثال 2

أمثلة على MVC

تعتبر آلية قيادة السيارة مثالاً آخر لنموذج MVC.

  • تتكون كل سيارة من ثلاثة أجزاء رئيسية.
  • العرض: واجهة المستخدم: (ذراع ناقل الحركة، اللوحات، عجلة القيادة، الفرامل، إلخ.)
  • جهاز التحكم - الآلية (المحرك)
  • الموديل- التخزين (خزان بنزين أو ديزل)

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

أطر ويب MVC الشعبية

فيما يلي قائمة ببعض أطر عمل MVC الشائعة:

مزايا MVC: الفوائد الرئيسية

فيما يلي الفوائد الرئيسية لاستخدام بنية MVC:

  • صيانة سهلة للكود والتي يسهل توسيعها ونموها
  • يمكن اختبار مكون نموذج MVC بشكل منفصل عن المستخدم
  • دعم أسهل لأنواع جديدة من العملاء
  • يمكن تنفيذ تطوير المكونات المختلفة بالتوازي.
  • يساعدك على تجنب التعقيد من خلال تقسيم التطبيق إلى ثلاث وحدات. النموذج والعرض ووحدة التحكم
  • إنه يستخدم فقط نمط وحدة التحكم الأمامية الذي يعالج طلبات تطبيقات الويب من خلال وحدة تحكم واحدة.
  • يقدم أفضل دعم ل التنمية القائمة على الاختبار
  • إنه يعمل بشكل جيد مع تطبيقات الويب التي تدعمها فرق كبيرة من مصممي ومطوري الويب.
  • يوفر فصلًا واضحًا للمخاوف (SoC).
  • تحسين محركات البحث (SEO) ودية.
  • جميع الفئات والكائنات مستقلة عن بعضها البعض بحيث يمكنك اختبارها بشكل منفصل.
  • يسمح نمط تصميم MVC بالمجموعات المنطقيةping من الإجراءات ذات الصلة على وحدة تحكم واحدة معًا.

عيوب استخدام MVC

  • من الصعب قراءة هذا النموذج وتغييره واختبار الوحدة وإعادة استخدامه
  • قد يكون التنقل في إطار العمل معقدًا في بعض الأحيان لأنه يُدخل طبقات جديدة منtracالأمر الذي يتطلب من المستخدمين التكيف مع معايير التفكيك الخاصة بنموذج MVC.
  • لا يوجد دعم التحقق الرسمي
  • زيادة تعقيد البيانات وعدم كفاءتها
  • صعوبة استخدام MVC مع واجهة المستخدم الحديثة
  • هناك حاجة لمبرمجين متعددين لإجراء برمجة متوازية.
  • مطلوب معرفة تقنيات متعددة.
  • صيانة الكثير من الأكواد في وحدة التحكم

3 الطبقة Architecture مقابل MVC Architecture

معامل 3-المستوى Architecture MVC Architecture
التواصل لا يتواصل هذا النوع من أنماط الهندسة المعمارية أبدًا بشكل مباشر مع طبقة البيانات. تتواصل جميع الطبقات مباشرة باستخدام طوبولوجيا المثلث.
الأستعمال 3-tier: يُستخدم على نطاق واسع في تطبيقات الويب حيث يعمل العميل وطبقات البيانات والبرامج الوسيطة على منصات منفصلة فعليًا. يُستخدم بشكل عام في التطبيقات التي تعمل على محطة عمل رسومية واحدة.

الأسئلة الشائعة

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

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

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

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

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

تلخيص هذه التدوينة بـ: