چطور می تونم کمکتون کنم؟

معماری نرم افزار mvc

مقدمه:

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

دراینجا نمونه ای از معماری را مورد بررسی قرار می دهیم.

معماریMVCیاModel-View-Control 

MvC مخفف سه کلمه Model View Controller هست . در واقع MVC بر روی معماری های چند لایه ای جهت جداسازی قسمت های مختلف برنامه و جدا کردن بخش های منطقی برنامه اعم از دیتا ، permission ها ، چک کردن صحت داده ها و .... از لایه Presentation layer یا در واقع همان لایه ای که مستقیما با کاربر نهایی (End user) در ارتباط است ،قرار می گیرد. مدل- مشخصات- کنترل  یا MVC یک الگوی طراحی نرم افزار برای توسعه برنامه های کاربردی وب است.در توسعه برنامه نویسی شی گرا، مدل-مشخصات-کنترل (MVC) نام یک روش یا الگوی طراحی برای موفقیت و کارآمد مربوط رابط کاربر به مدل داده های اساسی است. الگوی MVC به طور گسترده ای در توسعه برنامه با زبان های برنامه نویسی مانند جاوا، اسمالتاک، C، و C ++ استفاده می شود. الگوی MVC توسط بسیاری از توسعه دهندگان به عنوان یک الگوی مفید برای استفاده مجدد از کد شیء و یک الگوی است که زمان قابل توجهی که طول می کشد برنامه های کاربردی بارابط کاربر توسعه یابد را کاهش می دهد، اعلام شده است. در واقع MVC بر روی معماری های چند لایه ای جهت جداسازی قسمت های مختلف برنامه و به طور دقیق تر جدا کردن بخش ها منطقی برنامه اعم از دیتا ، permission ها ، چک کردن صحت داده ها و .... از لایه Presentation layer یا در واقع همان لایه ای که مستقیما با کاربر نهایی (End user) در ارتباط است ،قرار می گیرد. در واقع MVC باعث جدایی نگرانی از کدها می شود. این الگو از سه بخش زیر ساخته شده است:

مدل Model)) : پایین ترین سطح ازالگوست که مسئول حفظ داده هاست .

مشخصات (View) : مسئول نمایش تمام یا بخشی از داده ها به کاربر است.

کنترل (Control) : کد نرم افزارست که کنترل عملیات بین مدل و مشخصات.

به طور صریح تر مدل داده است،view پنجره بر روی صفحه نمایش است، و کنترل چسب بین این دو است .

 انتزاع گرافیکیMVC را می توان به شرح زیر نشان داد:

معماری نرم افزار

مدل،در واقع بار اصلی معماری MVC بر عهده این بخش است . مسئول مدیریت داده ها است. الزاماً منظور از داده حتما ارتباط با پایگاه های داده همچون MSSQL و Access و ... نیست ، حتی منبع داده ها در بخش Model می تواند یک آرایه از اعداد و یا هر چیز دیگری باشد . همچنین Model وظیفه چک کردن داده ها جهت درستی داده ها را هم بر عهده داردودرخواست از view  به کنترلر فرستاده می شود. مدل نشان دهنده اساسی، ساختار منطقی داده ها در نرم افزار کاربردی و کلاس سطح بالا مرتبط با آن است. این مدل هیچ اطلاعاتی در مورد رابط کاربر ندارد. وظیفه کار با پایگاه داده رابرعهده دارد.وظیفه بر قراری ارتباط با کاربر نهایی و گرفتن داده از کاربر و نمایش داده های اماده با کاربراز طریق برقراری ارتباط با دو بخش دیگر یعنی Model و controller است .

مشخصات، وظیفه ارتباط با کاربر نهایی را بر عهده دارد. مجموعه ای از کلاس های نمایندگی از عناصر در رابط کاربر است (تمام اتفاقات و پاسخ هایی که کاربرمی تواند برروی صفحه نمایش ببینید مانند دکمه ها، جعبه های صفحه نمایش، و غیره)
 نکته مهمی که در بخش View باید به آن توجه کرد این است که این لایه مسئول کنترل صحت داده های وارد شده از طریق کاربر و همچنین مسئول صحت داده های نشان داده شده به کاربر نیست،در واقع این بخش با داده های خام کار می کند . یک مثال ساده خیلی از برنامه نویسان هنگامی که در فرم Login برنامه ،کاربر کلمه عبور خود را وارد می کند ، در همان فرم Login اقدام به چک کردن پسورد مبنی بر صحت آن و ... می کنند . که این عمل در معماری MVC قابل قبول نیست . در واقع برای حل این مسئله در معماری MVC در فرم Login هنگامی که کاربر کلمه عبور را وارد کرد و دکمه Login یا ورود را زد ، کلمه عبور داده شده بدون هیچ گونه اعمالی اعم از Encrypt کردن و ... به بخش های دیگر فرستاده می شود و فقط یک نتیجه ساده مبنی بر این که کاربر اجازه ورود دارد یا خیر را از بخش های دیگر دریافت می کند که بر اساس آن اجازه ورود کاربر به برنامه داده می شود .

کنترل، نشان دهنده طبقات اتصال و کنترل بین مدل و مشخصات است، و برای برقراری ارتباط بین کلاس ها در مدل و مشخصات مورد استفاده قرار می گیرد. کنترل مسئول در پاسخ به ورودی کاربر و انجام فعل و انفعالات بر روی اشیاء مدل داده است.در اینجا کنترل همه درخواست برنامه را دریافت می کند و پس از آن همراه مدل برای نمایش آماده سازی هر گونه اطلاعات مورد نیاز کار می کنند.مشخصات سپس با استفاده از داده های تهیه شده توسط کنترل برای تولید یک پاسخ نهایی عمل می کند. این بخش همانطور که از نام آن مشخص است یک بخش کنترل کننده می باشد ، و در واقع واسطی بین دو بخش Model و View می باشد. در معماری MVC روند کلی برنامه به این شکل است که کاربر تقاضای خود را از طریق واسط های برنامه نویسی (نظیر Form ها و User Control ها و .. )از برنامه (از بخش مشخصات ) درخواست می کند . بخش View در خواست ها را به بخش Controller فرستاده و این بخش با برقراری ارتباط با بخش Model در خواست های کاربر را پردازش کرده و پس از پایان پردازش زمانی که خروجی درخواست داده شده آماده گردید بخش Controller بخش View را آگاه می سازد تا خود را بر اسا س تغییرات جدید که اصطلاحاً در معماری MVC به آن حال Model می گویند ، به روز سازد . در واقع چیزی که باعث می شود تا بخش Controller به بخش View اطلاع دهد که باید حالت جدید model را دریافت کند و خود را Update کند این است که بخش View باید قبلا خودش را در بخش Model اصطلاحا Register کرده باشد که البته عمل Register کردن توسط بخش Controller انجام می گیرد . نحوه register کردن بخش View به معماری آن محیط و همچنین زبانی که توسط آن برنامه را گسترش می دهید و همچنین قابلیت های آن زبان بستگی دارد

معماری نرم افزار

مزایای MVC به دسته های متعدد قرار می گیرند:

• جدایی از نگرانی در کدها

• تخصص توسعه و تمرکز

• توسعه موازی توسط تیم جداگانه

وبرند,وب رند,webrend,طراحی سایت,softwar ,software architecture mvc,model,view,control,mvc,معماری نرم افزارmvc,مدل,مشخصات,کنترل,داده,ریجستر,کد