عطاصمدی
عطاصمدی
خواندن ۲ دقیقه·۳ سال پیش

معماری MVC دقیقا چیه؟

شکل ساذه معماری MVC
شکل ساذه معماری MVC


به عنوان برنامه نویس یا علاقه مند به برنامه نویسی به ویژه برنامه نویسی وب ممکنه این عبارت رو دیده یا شنیده باشین، اول از همه این عبارت مخفف سه کلمه View ,Model وController هستش. این عبارت نوعی معماری ساخت نرم افزار رو نشون میده. یا به صورت ساده تر یک الگو برای ساخت اپلیکیشن به خصوص اپلیکیشن تحت وب (web application) هست.

در این معماری برای راحتی کار ساخت و توسعه اپلیکیشن اون رو به سه قسمت Model یعنی بخشی که به عنوان پردازش گر یا مغز نرم افرار عمل می کنه ،View یعنی قسمتی از نرم افزار که ما اونو می بینیم و با اون تعامل می کنیم یا به بیانی می تونیم بگیم UI و در نهایت Controller که وظیفه اون برقراری ارتباط بین بخش View و Model هست، تقسیم می کنه. در این صورت توسعه دهنده ها می تونن روی هر سه قسمت به صورت مستقل کار کنن که این روش برای توسعه پروژه های مخصوصا بزرگ خیلی موثره.

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

سوالی که پیش میاد اینه که نقش Controller این وسط چی شد ؟ نقش Controller اینه که اطلاعاتی که وارد کردیم و در خواست ورودی رو که با زدن دکمه دادیم رو از UI یا View به سرور یا Model انتقال داده و پاسخ Model رو در قالب ورود به صفحه جدید با پیغام خطا به View که ما اونو می بینیم فرستاده .


این معماری فقط یکی از ده ها روش و معماری توسعه نرم افزار است و لازم نیست در هر پروژه ای بر اساس اون عمل بشه از مزایای این معماری اینه که روند توسعه رو منظم تر و سریع تر می کنه و چون در این روش این سه لایه و بخش به نسبت مستقل از هم ساخته می شن اولا توقف در توسعه یکی از بخش ها باعث توقف کل کار نمی شه و دوما میشه از کدهای این بخش ها در سایر پروژه ها بهره برد.

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




mvcمعماری mvcمعماری نرم افزارمعماری mvc چیست؟
شاید از این پست‌ها خوشتان بیاید