نویسنده پشتیبانی وب یار
امتیاز مطلب
تعداد بازدید 707
تاریخ بروزرسانی ۵ خرداد ۱۴۰۱

MVC و همه چیز در مورد آن

با گسترش صفحات وب و پویایی و تعامل آنها بیشتر شده در نتیجه پیچیدگی بیشتری دارند. اینجاست که معماری 3  لایه جوابگوی نیازطراحان سایت نیست و مبحثی به نام معماری MVC  پیش می آید.

نحوه عملکرد معماری mvc

فرض کنید یک نرم افزار تحت وب جهت ارائه سود و زیان شرکت ارائه کردید که سود و زیان شرکت را به کمک عدد و رقم نمایش میدهد. بعد از مدتی صاحب نرم افزار از شما میخواد اعداد را به صورت نمودار نمایش دهید. یا حتی بخواهید داده ها را با فرمت خاصی روی یک فایل ذخیره کنید.

اگر شما از استانداردهای کد نویسی استفاده نکرده باشید و در کد نویسی مستقیما از پایگاه داده استفاده کرده باشید، جدای از آنکه مشکل امنیتی دارد که موضوع بحث ما در این مقاله نیست اعمال تغییرات بر روی برنامه را با مشکل جدی روبرو میکند. اما اگر از معماری MVC استفاده کرده باشید به دلیل تفکیک تمام بخش ها (بخش سرور سایت و بخش کلایت سایت) اعمال تغییرات بر روی این سیستم سریع تر و راحت تر خواهد بود و دست برنامه نویس بازتر است.

همینطور استفاده از معماری MVC به ما کمک میکند تا بتوانیم قسمت های مختلف پروژه را در یک تیم طراحی نرم افزار همزمان پیش بریم بدون اینکه هریک از گروه های طراحی نرم افزار از نحوه عملکرد قسمت های دیگر آگاهی داشته باشند.

معماری MVC چیست؟

MVC از ابتدای حروف کلمه های Model, View, Controller  گرفته شده است. به طور خلاصه میتوان گفت معماری سه لایه مجزاسازی بخش های منطقی از بخش های سمت کاربر میباشد. بر این اساس وظایف هر یک از قسمت های  MVC یعنی Model, View, controller را به صورت زیر تعریف میکنیم.

1.     Model:

در واقع مهمترین بخش معماری MVC قسمت Model است. این بخش با داده ها در ارتباط است. منظور از داده میتواند ارتباط با جداول پایگاه داده یا داده ای که در یک متغییر یا آرایه ذخیره شده باشد همچنین چک کردن صحت داده ها نیز در این قسمت صورت میگیرد.

2.     View:

این قسمت وظیفه ارتباط با کاربر را بر عهده دارد. در این قسمت داده ها از کاربر گرفته میشود به قسمت های دیگر اعم از بخش Model یا Controller فرستاده میشود و نتیجه نهایی به کاربر نمایش داده میشود. فرض کنید یک فرم Login طراحی کرده ایم اطلاعات کاربر را اعم از نام کاربری و رمز عبور از کاربر دریافت میکند و به قسمت controller و Model ارسال میکند تا صحت اطلاعات چک شود و تنها چیزی که دریافت میکند این است که آیا این کاربر اجازه ورود به سیستم را دارد یا خیر.

3.     Controller:

همانطور که از نامش پیداست وظیفه این قسمت ارتباط برقرار کردن با بخشهای دیگر یعنی بخش View و Model میباشد نحوی کار این بخش به این صورت است که بعد از اینکه کاربر تقاضای خود را از طریق واسط های کاربری (از جمله فرم ها، user control ها و…) از طریق بخش view درخواست کرد این اطلاعات به بخش controller فرستاده میشود و این بخش با برقراری ارتباط با بخش Model این اطلاعات را پردازش میکند و نتیجه را به بخش View ارسال میکند تا درصورت لزوم بخش View با توجه به اطلاعاتی که دریافت کرده خودش را Update کند.

برای درک بهتر مطلب مثالی از دنیای واقعی را ارائه میکنیم.

مثالی از MVC  در دنیای واقعی!

  • فرض کنید به رستوران رفته اید مسلما خودتان به آشپزخانه نمیروید و غذای خود را آماده نمیکنید. منتظر میمانید تا گارسون از شما سفارش بگیرد.
  • گارسون شما را نمیشناسد و از قبل سفارش غذای شما را نمیداند. سفارش شما را یادداشت میکند و به آشپزخانه میرود غذای شما را آماده نمیکند.
  • سرآشپز درحال پختن غذاست، گارسون سفارش شما و شماره میزتان را به او میدهد.
  • سرآشپز با مواد اولیه ای که در اختیار دارد غذای شما را آماده میکند.
  • سرآشپز نهایتا غذا را به گارسون میدهد، گارسون غذا را از آشپزخانه خارج میکند.
  • گارسون میداند شما چه غذایی سفارش داده اید و این غذا چطور سرو میشود.

در این مثال:

  • View:  شما
  • Controller:  گارسون
  • Model:  سرآشپز
  • Data:  مواد اولیه جهت پختن غذا
mvc

فریمورک های تحت وب مطرح MVC

در زیر لیست برخی از فریمورک های مطرح MVC را مشاهده میکنید:

  • Ruby on Rails
  • Django
  • CakePHP
  • Yii
  • CherryPy
  • Spring MVC
  • Catalyst
  • Rails
  • Zend Framework
  • CodeIgniter
  • Laravel
  • Fuel PHP
  • Symphony

مزایا و معایب MVC

    مزایا:

1.     طراحی سایت سریعتر

MVC  از برنامه نویسی موازی پشتیبانی میکند. به این معنی که 3 نفر به صورت همزمان میتوانند روی یک پروژه کار کنند درنتیجه طراحی سایت نسبت به سایر روش ها 3 برابر سریعترانجام میشود.

2.     امکان تولید چندین view

در MVC این امکان وجود دارد که برای هر Model چندین view یا حالت نمایش طراحی شود. با توجه به اینکه نیاز به دوباره نویسی کدها محدود تر میشود امکان ایجاد چندین ظاهر برای Model ها در زمان کمتری فراهم می آید.

3.     MVC  از تکنیک asynchronous  پشتیبانی میکند

این تکنیک به برنامه نویسان این امکان را میدهد تا اپلیکیشن یا وب سایت هایی طراحی کنند که سریعتر لود میشوند.

4.     برای تولید وب سایت های بزرگ و پیچیده بسیار مناسب است

MVC  الگویی کارآمد برای برنامه نویسی چند برنامه نویس دراختیار ما میگذارد در نتیجه میتوانیم برنامه های پیچیده تری را بنویسیم. همچنین با توجه به اینکه MVC ارتباط خوبی با Javascript و JQuery برقرار میکند امکانات فوق العاده ای برای طراحی در اختیار برنامه نویس قرار میدهد.

5.     تغییرات و اصلاحات روی تمام Model  ها تاثیر نمی گذارد

به دلیل مجزا بودن ساختار View از  Model اعمال تغییرات View سایت روی قسمت Model تاثیری نمیگذارد و تعییرات ساده تر و سریعتر انجام میشود.

6.     طراحی سایت با MVC  سازگاری زیادی با اصول سئو دارد

برنامه نویسی با MVC این قابلیت را در اختیار ما قرار میدهد که سایتی طراحی کنیم که مطابق با استاندارهای سئو باشد. برای مثال در MVC به خوبی میتوان تولید URL را به گونه ای مدیریت کرد که برای موتور جستجو قابل فهم باشد و تاثیر زیادی روی رتبه یک سایت در موتورهای جستجو دارد.

mvc

معایب:

1.     پیچیدگی پیاده سازی:

گاهی اوقات این الگوی طراحی و پیاده سازی را دچار پیچیدگی‎های خاصی می‌کند.

2.     نامناسب برای برنامه های کوچک:

این برنامه برای برنامه های کوچک اصلا مناسب نیست.  معمولا حجم کاری را افزایش داده و کارکرد سیستم را کاهش میدهد.

نتیجه گیری:

در مجموع ممکن است در ابتدای کار برنامه نویسی MVC پیچیده به نظر بیاید و ترجیح دهید برنامه نویسی را بدون MVC انجام دهید. ولی اگر قصد انجام پروژه های پیچیده را دارید که نیاز به انجام کار به صورت تیمی است. با توجه به مزایای استفاده از MVC  که در بالا به آن اشاره شد MVC بهترین گزینه برای طراحی سایت است.

 کلام آخر

تیم طراحی سایت حرفه ای وب یار به منظور کسب رضایت حداکثری مشتریان تمامی پروژه های طراحی سایت اختصاصی را مطابق با اصول معماری mvc انجام می دهد تا کیفیت و سرعت و بروزرسانی سایت در آینده ساده تر باشد و گسترده تر باشد.

برای شرکت در دوره های آموزشی طراحی سایت که در مجموعه وب یار بر پایه mvc آموزش داده میشود به قسمت کلاس های آموزشی مراجعه کنید. لیست سرفصل های دوره آموزشی را میتوانید از این قسمت مشاهده کنید.

تیم وب یار در راستای کمک به پیشرفت شما عزیزان آموزش‌های کاربردی فراوانی در زمینه‌ی طراحی سایت و سئو سایت در اینستاگرام خود قرار داده است.

مقالات مرتبط