MVC چیست؟ (به زبان ساده)

اگر شما یک برنامه نویس هستید، حتما تا به حال نام MVC را زیاد شنیده‌اید. اگر برنامه نویس حرفه‌ای هستید، حتما میدانید MVC چیست و حتما با آن یا نمونه های مشابه آن کار می‌کنید.

در این پست من قصد دارم که MVC را به زبان ساده توضیح دهم. چون اگر تازه وارد دنیای برنامه نویسی شده‌اید، مطمئنا خیلی زود به آن نیاز خواهید داشت.


MVC چیست؟

‏MVC مخفف کلمات Model ‌View Controller هست و یک الگوی طراحی معماری نرم افزار می‌باشد.

الگوهای طراحی (Design Patterns) زیادی برای ساخت و توسعه نرم افزار ها وجود دارند اما MVC قطعا محبوب ترین و پر استفاده ترین آنهاست.

هدف اصلی استفاده از الگوهای طراحی مثل MVC این است که عملکرد، منطق، رابط و کلا همه‌ی اجزای یک برنامه را طبق استاندارد های از پیش تعریف شده از هم جدا کنیم، تا چند نفر بتوانند همزمان روی یک پروژه بدون تداخل و سردرگمی کار بکنند. همچنین استفاده از الگوهای طراحی کمک می‌کند تا برنامه ما خیلی راحت تر خطایابی (Debug) شده و خیلی راحت تر بشود آن را توسعه داد. مزیت دیگر آن این است که کد ما بسیار خواناتر شده، و همچنین به راحتی می‌توان از آن یا بخشی از آن در جاهای دیگر استفاده کرد.

تمام فریمورک‌ها و کتابخانه های تحت وب از MVC یا بخش‌هایی از آن استفاده می‌کنند.

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


در ادامه من به سراغ سه جزء اصلی MVC یعنی Model View Controller خواهم رفت و هر یک را جداگانه توضیح خواهم داد.


‏Model (پیکر):

‏Model مسئول گرفتن و دستکاری کردن داده ها هست. به این صورت که با یک پایگاه داده و یا بانک اطلاعاتی تعامل می‌کند.

در واقع Model مغز برنامه ماست.

پرس و جو های پایگاه داده مانند SELECT و UPDATE درون Model انجام می‌شوند.

در واقع معمولا اینطور است که Controller داده های مورد نیازش را از طریق Model از بانک اطلاعاتی درخواست کرده و دریافت می‌کند.

‏Model می‌تواند مستقیما View را به روزرسانی کند اما معمولا اینطور نیست.


‏View (نما):

رابط کاربری و نمای ظاهری برنامه ماست. چیزی است که کاربر در هنگام تعامل با برنامه ما مشاهده می‌کند.

‏View در واقع معمولا از طریق Controller به روز رسانی می‌شود اما گاهی اوقات مشاهده می‌کنیم که Model مستقیما این کار را می‌کند.

در برنامه نویسی وب، View ما در واقع همان کد های HTML و CSS هستند که با کمک موتور قالب (Template Engine) امکان استفاده از مقادیر و متغیر های پویایی که از Controller و یا Model دریافت شده‌اند را فراهم میکنند.


‏Controller (کنترل کننده)

وظیفه آن به زبان ساده گرفتن ورودی های کاربر، فرستادن درخواست به Model و دریافت داده ها از Model و به روز رسانی View است.

ورودی های کاربر می‌توانند هرچیزی باشند. مثلا وقتی کاربر روی یک لینک کلیک میکند، یک ورودی به Controller میفرستد. یا وقتی که کاربر یک فرم را ثبت یا Submit می‌کند، مقادیر داخل آن فرم را با درخواست POST به عنوان ورودی به Controller میفرستد.

در واقع Controller ورودی های کاربر را گرفته، با توجه به درخواست وارده (مثلا POST، GET، PUT، UPDATE) درخواست مورد نظر را به Model میفرستد، داده ها را از Model دریافت می‌کند و در نهایت داده ها را به View می‌فرستد که در نتیجه View به روز رسانی می‌شود.


روش پیاده سازی MVC معمولا به این گونه است که پوشه هایی به نام های models views controllers درون ساختار پوشه‌ای برنامه مان ساخته می‌شود و هر کدام از اجزای مرتبط با آن‌ها درون این پوشه ها قرار می‌گیرند.

در ادامه توجه شما را به یک ویدئو آموزشی برای تکمیل اطلاعات شما در زمینه MVC به همراه یک مثال عملی جلب میکنم.

https://www.aparat.com/v/x6Lgn


یhttps://www.aparat.com/v/x6Lgn


لینک آپارات ویدئو: https://www.aparat.com/v/x6Lgn