mvc چیست و چرا الگو mvc محبوب شده است؟(همراه آموزش mvc)

خانه / همه مطالب / متن های آموزشی / mvc چیست و چرا الگو mvc محبوب شده است؟(همراه آموزش mvc)
توسط
در متن های آموزشی

جوابی شفاف و ساده برای mvc چیست

فرض کنیم که از mvc برای طراحی یک سایت می خواهیم استفاده کنیم:

  1. یک سایت یک سری صفحات دارد که همان view ها در این معماری است
  2. یک سایت دیتابیس دارد، در معماری mvc یک سایت علاوه بر دیتابیس نیاز به یک سری مدل (کلاس) دارد که می تواند دقیقا مطابق با دیتابیس شما باشد و اطلاعات از دیتابیس به مدل میاید.
  3. یک سایت منطقی دارد که در آن می گوید که مثلا در صفحه اصلی ۱۰ تا از آخرین پست ها را بر اساس تاریخ انتشار آنها نمایش بده، این منطق در کنترلر (controller) نوشته می شود. در کنترلر اطلاعات را مطابق با مدل (model) از دیتابیس گرفته می شود و برای view فرستاده می شود بنابر این در این معماری منطق برنامه کاملا از view جدا می شود و این امر سبب می شود که کار توسعه پروژه بسیار آسان تر شو (رسانه آموزشی لیموناد, از معماری mvc بهره مند است)

جوابی فنی تر و تخصصی تر برای mvc چیست

mvc چیست ؟ mvc مخفف کلمات Model View Controller هست . در واقع MVC بر روی معماری های چند لایه ای جهت جداسازی قسمت های مختلف برنامه است. هر یک از بخش های معماری MVC یعنی Model و View و controller را به شکل زیر تعریف می کنیم.

۱. Model
در mvc مدل ها همان کلاس های برنامه هستند که شبیه به دیتابیس هستند ولی می توانند متفاوت و بیشتر باشند. همچنین Model وظیفه تایید داده ها را برعهده دارد تا اطلاعات درست درون آنها قرار بگیرد و برای دیتابیس ارسال شود.

۲. View
این بخش اطلاعات را به کاربر نشان می دهد، ویو کاری به منطق برنامه ندارد و فقط یک model دریافت می کند و آن را به هر شکلی که نیاز باشد به کاربر نشان می دهد، این model هم توسط کنترلر ایجاد شده است و برای view رسال شده است. نکته مهمی که در بخش View باید مد نظر داشت این است که این لایه مسئول کنترل صحت داده های وارد شده از طریق کاربر و همچنین مسئول صحت داده های نشان داده شده به کاربر نیست . در واقع این بخش با داده های خام کار میکند  و مسولیت صحت داده با model است.

۳. Controller
این بخش همانگونه که از اسم آن مشخص است، یک بخش کنترل کننده است، ساده بگویم controller بیشتر مواقع دو جور کار می کند :

  1. controller اطلاعات را از دیتابیس در قالب model هایی می گیرد و بعد پردازش خود را روی آن انجام می دهد و اطلاعات را در قالب model جدیدی به view می فرستد تا ویو هر طور خواست این اطلاعات را به کاربر نشان دهد.مثل فرض کنید که ما برای صفحه پروفایل یک view برای موبایل داریم و یک view برای ویندوز، حال کنترولر بنا به تشخیص که کاربر با موبایل است یا نه یک view را انتخاب می کند تا برای کاربر ارسال شود و می بینید که یک اطلاعات مشخص در دو view متفاوت ظاهر می شود و view (ظاهر) از منطق برنامه جدا است.
  2. controller اطلاعات را از مدلی که از view برای او ارسال کرده است دریافت می کند و پس انجام اقداماتی آن را در دیتابیس ذخیره می کند و view دیگری را به کاربر می فرستد تا ببیند.

مزیت های استفاده از معماری mvc

اگر تا امروز نمی دانستید که mvc چیست پس احتمالا متوجه دلایل برتری mvc نمی شوید این امری عادی است پس به طرف شروع کار با mvc بروید و مطمئن باشید که مزیت های زیادی دارد. (آموزش asp mvc در پایین صفحه)
بعد از کمی تجربه اگر کنجکاو بودید برگردید و مزیت های mvc را بخوانید.
مزیت های معماری یا الگو mvc:

  1.  استفاده دوباره از کد که در مهندسی نرم افزار بسیار مهم است، به دلیل جدا بودن این سه قسمت از هم این قابلیت به خوبی در این معماری قابل لمس است.
  2. همان طور که در بالا توضیح داده شد ، به سادگی می توان چندین interface داشت. یعنی شما می توانید چندین view مختلف داشته باشید و به سادگی از آنها استفاده کنید.
  3. کسی که ui کار است می تواند کاملا به ظاهر و ui توجه کند و به مسائل منطق یا باگ های برنامه کاری نداشته باشد.
  4. کسانی که کار منطق برنامه را پیدا می کنند می توانند فقط به کار خود توجه داشته باشند و به ظاهر صفحه ها کاری نداشته باشند.
  5. بنابر این کار تیمی بروی یک پروژه به خوبی با mvc انجام می شود.
  6. به دلیل جدا بودن view از model به سادگی می توان view اضافه کرد بدون این که model تغییری کند.

معایب استفاده از mvc و کمک به mvc

من فقط یک عیب به نظرم آمد ، اگر شما موردی برای مزیت یا معایب ام وی سی به نظرتون آمد تو نظرات منتظر شما هستم.

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

فریم ورک هایی که بر پایه mvc هستند

اگر جواب mvc چیست را یافتید نوبت به آموزش mvc  برای یکی از framework های محبوب است. در زیر فریم ورک هایی که بر پایه mvc هستند برای زبان های برنامه نویسی مختلف نام می برم و شما در این میان نام فریم ورک هایی را می بینید که بسیار این روز ها معروف شده اند و افراد قوی آنها را پیشنهاد می کنند که این خود دلیل دیگری برای اثبات خوب بودن mvc است.

  1. asp.net دیگر کنار رفته است و asp.net mvc آمده است که در آن با معماری mvc کد c# می زنید و از توسعه وب لذت می برید. (رسانه آموزشی لیموناد، دیجیکالا، ورزش سه و … از تکنولوژی asp mvc بهره برده اند).
    هرکسی که از asp mvc استفاده کند از Entity Framework هم استفاده می کند و تقربیا این دو تکنولژی از هم جدا ناپذیر اند.
    Entity Framework به دو روش انجام می شود:

    1. code first : در روش ابتدا کد نوشته می شود سپس دیتابیس از روی آن ایجاد و آپ دیت می شود. در این لینک فیلم آموزش entity framework code first با asp.net mvc را ببینید.
    2. database first : ابتدا دیتابیس کامل ایجاد می شود سپس کد نوشته می شود.
  2. php به دلیل متن باز بودن فریم ورک های mvc زیادی دارد که در زیر نام می برم که در میان این ها laravel در ایران بیشتر معروف است.
    1. laravel
    2. CodeIgniter
    3. CakePHP
    4. Zend
    5. Yii
  3. python هم فریم ورک معروفی برای نوشتن وب دارد که از معماری mvc استفاده می شود.  django و Pyramid دو نمونه از این فریم ورک ها هستند. (در لینک آموزش پایتون ببینید.)
  4. برنامه نویسی روبی که به ruby on rails معروف است و همه کد روبی را با rails  می نویسند. جالب است بدانید که rails یک framework بر پایه mvc است. اگر با ruby on rails اشنا نیستید در این مقاله حتما با آن اشنا شوید تا بدانید تویتر و soundcloud و git hob و بسیار از  سایت های خوب و مدرن از ruby on rails  بهره برده اند.  (مقاله: ruby on rails چیست)

در نمودار زیر که به بررسی میزان سرچ عبارت در گوگل از سال ۲۰۰۵ تا به حال می پردازد، می توانید به پر اهمیت شدن mvc پی ببرید و ببیند که چطور asp.net دارد به فراموشی سپرده می شود و جای آن با asp.net mvc پر می کند.

pouriya
pouriya
از موسسین رسانه آموزشی لیموناد و برنامه نویسی سمت سرور آن هستم. عاشق نرم افزار ام. وقتی به تغییراتی که یک سیستم در زندگی انسان ها ایجاد می کند نگاه می کنم لذت می برم و تمام خستگی ساخت در روح و جسمم تبدیل به انرژی برای کار بعدی می شود. زندگی کوتاه تر از آن است که به میدان مسابقه تبدیل شود و باعث شود از مسیر لذت نبریم. شناگرم بودم و حال عاشق شنا کردن با چشمانی بسته ام.
پست های توصیه شده

ارسال نظر

تماس با ما

رسانه آموزشی لیموناد

قابل خواندن نیست ؟ تغییر دهید.. captcha txt
تفاوت 3d max با مایابرنامه نویسی RUBY ON RAILS