ماهو مفهوم MVC وما اهميته فى تطوير الويب

ماهو مفهوم MVC وما اهميته فى تطوير الويب

 ما هو MVC ؟

وهو اختصار لModel-View-Controller وهو نمط يستخدم لفصل مكونات المشروع المنطقية عن بعضها وهذه المكونات هى Model , View , Controller وهو من افضل النظم لانشاء موقع قابل للتوسع.

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

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

لاحظ التالى
MVC نمط من انماط التصميم Design Pattern تعتبر أنماط التصميم (Design Patterns) من أهم مفاهيم هندسة البرمجيات، وهي نماذج وصفية لحل مشاكل تصميم البرامج. تم اقتباس معظم هذه الأنماط من الخبرة السابقة للمبرمجين في حل مشاكل مشابهة.

مكونات MVC

  • View: هو عبارة عن الواجهة التى يتعامل معاها المستخدم فى التطبيق مثل القوائم و حقول البحث و السليدات وغيرها.
  • Model : يتعامل مع البيانات التى يتعامل معه المستخدم ويدخلها الى قاعدة البيانات او يخرج بيانات معينة منها. اذا فدوره مقتصر على التعامل مع قواعد البيانات.
  • Controller : هو الوسيط بين view و controller فهو يعالج العمليات المنطقية والطلبات القادمة (requests) وكذلك التعامل مع البيانات القادمة من قواعد البيانات لاخراجها على view فى صورة ملائمة.
صورة توضيحية ل MVC
صورة توضيحية ل MVC

مثال تقريبى لتوضيح نمط MVC

عند البحث عن شئ معين يتفاعل المستخدم مع view ويكتب كلمة البحث وعند ضغط زر بحث يأتى دور controller ليفهم الطلب ويعالج كلمات البحث ويرسلها اخيرًا الى model الذى يقوم بدوره بالبحث عن الكلمة داخل قاعدة البيانات واعادة النتائج الى controller لعمل اللازم من فلتره للكلمات وخلافه ثم الى view لتعرض اخيرًا على المستخدم.

مميزات نمط MVC

  • السهولة فى التطوير : بفضل هذا الفصل فى مكونات المشروع يسهل تطوير احد هذا الاجزاء الرئيسية بدون المساس بالاجزاء الاخرى.
  • سهولة فى فهم الكود : بفضل انتشار هذا النمط فى التصميم فيكون الكود المكتوب به مفهوم من جميع المطورين الذين يعرفون هذا النمط وبالتالى يستطيع غيرك اكمال عملك ويسهل عمل الفرق فى المشارع الكبرى.
  • سهولة اكتشاف الاخطاء : بفضل التجريد يسهل اكتشاف الاخطاء فى الكود فى اقل وقت.

مثال على MVC بلغة PHP

يمكن استخدام نمط MVC في العديد من لغات البرمجة، وهنا مثال بسيط باستخدام لغة PHP:

نبدأ بتعريف الموديل Model، والذي سيكون مسؤولًا عن الوصول والتلاعب بالبيانات:

class User {
   public $name;
   public $email;
  
   public function __construct($name, $email) {
      $this->name = $name;
      $this->email = $email;
   }
  
   public function get_name() {
      return $this->name;
   }
  
   public function get_email() {
      return $this->email;
   }
  
  }

ثم ننتقل إلى العرض View، والذي سيكون مسؤولًا عن تنسيق وعرض البيانات:

class UserView {
   public function show_user($user) {
      echo "Name: " . $user->get_name();
      echo "<br>Email: " . $user->get_email();
   }
}

وأخيرًا، يأتي دور التحكم Controller الذي سيكون مسؤولًا عن التواصل بين الموديل والعرض:

class UserController {
   private $model;
   private $view;
  
   public function __construct($model, $view) {
      $this->model = $model;
      $this->view = $view;
   }
  
   public function update_user($name, $email) {
      $this->model->name = $name;
      $this->model->email = $email;
   }
  
   public function show_user() {
      $this->view->show_user($this->model);
   }
}

ويمكن استخدام هذه الأجزاء فيما بينها كالتالي:

$model = new User("John Doe", "[email protected]");
$view = new UserView();
$controller = new UserController($model, $view);
  
$controller->show_user();
$controller->update_user("Jane Doe", "[email protected]", "newpassword");
$controller->show_user();

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

اشترك فى القائمة البريدية

عن الكاتب

شارك على وسائل التواصل

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

ثلاثة × واحد =