مقدمهای بر معماری سه لایه نرم افزاری
Model-View-Controller که به اختصار MVC خوانده میشود به عنوان یکی از محبوبترین الگوهای کدنویسی وب اپلیکیشن ها در سالهای اخیر مبدل شده است که به همین خاطر، توصیه میکنیم افراد تازه کار یک آشنایی نسبی با این الگو داشته باشند خواه تمایل به برنامه نویسی وب داشته باشند خواه علاقمند به کدنویسی در سایر حوزه ها باشند.
پیش از هر چیز، نیاز به رفع ابهام در رابطه با یکسری باورهای نادرست در رابطه با الگوی برنامه نویسی سه لایه یا MVC داریم. خیلیها بر این باورند که ام وی سی یک دیزاین پترن است که این کاملاً اشتباه است! در واقع، ام وی سی یک الگوی معماری طراحی اپلیکیشن است که با دنبال کردن این الگو، به سادگی میتوان ساختار یک اپلیکیشن، وظایف تک تک بخشها و نحوه ی تعامل بخشهای مختلف اپلیکیشن را مشخص نمود.
این الگو ابتدا در سال 1979 معرفی شد اما در آن سالها ام وی سی با آنچه امروزه میبینیم کاملاً متفاوت بود و مفهوم امروزی ام وی سی اقتباسی است از آنچه در دهه ی هشتاد میلادی وجود داشت. شاید یکی از دلایل محبوبیت این الگوی معماری طراحی سایت را بتوان به دو فریم ورک Struts و Ruby on Rails نسبت داد. این دو فریم ورک بر پایه ی ام وی سی طراحی شده و راه را برای بسیاری از دیگر فریم ورک های زبانهای برنامه نویسی مختلف باز کردند.
ایده ی پشت الگوی معماری ام وی سی بسیار ساده بوده و میتوان آن را در قالب موارد زیر بیان نمود:
Model: مدل مسئول مدیریت Business Logic اپلیکیشن است. به طور کلی، منظور از Business Logic کاری است که اپلیکیشن مد نظر ما به آن خاطر طراحی شده است که به نوعی مهمترین بخش از نرمافزار است.
View: ویو یا «نمای» اپلیکیشن جایی است که دیتای مختلف در معرض دید کاربران اپلیکیشن قرار می گیرد. به طور مثال، این صفحه از سکان آکادمی که شما ملاحظه می نمایید، بخشی از ویوی وب اپلیکیشن سکان آکادمی است.
Controller: کنترلر همانطور که از نامش پیدا است، مسئول کنترل است. به عبارت دیگر، کنترلر درخواست های کاربران را گرفته و بررسی میکند ببیند که مسئول پاسخگویی به این درخواست ها کدام بخش از اپلیکیشن است سپس وظیفه ی هر بخش را به آن تفویض میکند که یکی از این بخش ها، همواره مدل ها هستند. به طور مثال، مدل هم به بررسی درخواست پرداخته و در صورتی که درخواست درست بود و جوابی داشت، آن جواب را تحویل کنترلر داده و کنترلر هم پاسخ را در اختیار ویو می گذارد.
امروزه اکثر وب اپلیکیشن هایی که با فریم ورک های استاندارد طراحی میشوند از این سه لایه برخوردارند لذا آشنایی مفصل با ساختار هر کدام از این لایه ها نیاز به آموزشهای جداگانه ای دارد که در ادامه ی این فصل، به هر کدام از لایههای MVC یک آموزش جداگانه اختصاص خواهیم داد.