این مطالب بخشی از مجموعه "مقدمه ای بر توسعه سازمانی" است. مقالات قبلی:
- در مورد شبکه ؛
- در مورد معماری نرم افزار ;
- در مورد پروتکل های HTTP/HTTPS ؛
- در مورد اصول اولیه Maven ;
- در مورد servlets (ما در حال نوشتن یک برنامه وب ساده هستیم) ;
- در مورد ظروف سرولت
تاریخچه MVC
ایده های MVC توسط Trygve Reenskaug هنگام کار در Xerox PARC در اواخر دهه 70 تدوین شد. در آن روزها، کار با کامپیوتر بدون مدرک دانشگاهی و مطالعه مداوم اسناد حجیم غیرممکن بود. مشکلی که Reenskaug به همراه گروهی از توسعه دهندگان بسیار قوی حل کرد، ساده کردن تعامل کاربر معمولی با یک کامپیوتر بود. لازم بود ابزارهایی ایجاد شود که از یک سو بسیار ساده و قابل درک باشد و از سوی دیگر امکان مدیریت کامپیوتر و برنامه های پیچیده را فراهم کند. Reenskaug روی تیمی کار کرد که کامپیوتر قابل حمل "برای کودکان در تمام سنین" - Dynabook و همچنین زبان SmallTalk را تحت رهبری آلن کی توسعه داد. در آن زمان و آنجا بود که مفاهیم یک رابط دوستانه مطرح شد. کار رینسکاگ با تیمش تأثیر زیادی بر توسعه حوزه فناوری اطلاعات داشت. اجازه دهید یک واقعیت جالب را ارائه کنیم که مستقیماً به MVC مربوط نمی شود، اما اهمیت آن پیشرفت ها را نشان می دهد. در سال 2007، پس از معرفی آیفون اپل، آلن کی گفت: «وقتی مکینتاش عرضه شد، نیوزویک پرسید که نظر من در مورد آن چیست. گفتم: این اولین کامپیوتر شخصی است که قابل نقد است. پس از ارائه، استیو جابز آمد و پرسید: آیا آیفون ارزش انتقاد دارد؟ و من گفتم، آن را پنج در هشت اینچ بساز تا دنیا را فتح کنی.» سه سال بعد، در 27 ژانویه 2010، اپل آی پد 9.7 اینچی را معرفی کرد. یعنی استیو جابز تقریباً به معنای واقعی کلمه از توصیه آلن کی پیروی کرد. پروژه ای که رنسکاگ روی آن کار کرد 10 سال به طول انجامید. و اولین انتشار در مورد MVC از سازندگان آن 10 سال بعد منتشر شد. مارتین فاولر، نویسنده تعدادی کتاب و مقاله در زمینه معماری نرم افزار، اشاره می کند که MVC را از نسخه کاری SmallTalk آموخته است. از آنجایی که برای مدت طولانی هیچ اطلاعاتی در مورد MVC از منبع اصلی وجود نداشت، و همچنین به دلایل دیگر، تعداد زیادی تفاسیر مختلف از این مفهوم ظاهر شده است. در نتیجه، بسیاری از مردم MVC را یک طرح یا الگوی طراحی می دانند. کمتر متداول است، MVC یک الگوی ترکیبی یا ترکیبی از چندین الگو نامیده می شود که با هم کار می کنند تا برنامه های پیچیده را پیاده سازی کنند. اما در واقع همانطور که قبلا گفته شد، MVC در درجه اول مجموعه ای از ایده ها/اصول/رویکردهای معماری است که با استفاده از الگوهای مختلف می توان آن ها را به روش های مختلف پیاده سازی کرد... در ادامه سعی خواهیم کرد ایده های اصلی تعبیه شده در مفهوم MVC را بررسی کنیم.MVC چیست: ایده ها و اصول اولیه
- VC مجموعه ای از ایده ها و اصول معماری برای ساخت سیستم های اطلاعاتی پیچیده با رابط کاربری است.
- MVC مخفف مدل-View-Controller است.
مرحله 1: منطق تجاری برنامه را از رابط کاربری جدا کنید
ایده کلیدی MVC این است که هر برنامه کاربردی با یک رابط کاربری را می توان در اولین تقریب به 2 ماژول تقسیم کرد: یک ماژول که مسئول پیاده سازی منطق تجاری برنامه است و یک رابط کاربری. ماژول اول عملکرد اصلی برنامه را اجرا می کند. این ماژول هسته سیستم خواهد بود که مدل دامنه برنامه در آن پیاده سازی می شود. در مفهوم MVC، این ماژول حرف M ما خواهد بود، یعنی. مدل. ماژول دوم کل رابط کاربری را پیاده سازی می کند، از جمله نمایش داده ها به کاربر و منطق تعامل کاربر با برنامه. هدف اصلی این جداسازی این است که اطمینان حاصل شود که هسته سیستم (مدل در اصطلاحات MVC) می تواند به طور مستقل توسعه و آزمایش شود. معماری برنامه پس از چنین تقسیم بندی به صورت زیر خواهد بود:مرحله 2. با استفاده از الگوی Observer، به استقلال بیشتر مدل و همچنین همگام سازی رابط های کاربری دست یابید.
در اینجا ما 2 هدف را دنبال می کنیم:- دستیابی به استقلال حتی بیشتر از مدل.
- همگام سازی رابط های کاربری
مرحله 3. تقسیم رابط به View و Controller
ما همچنان برنامه را به ماژول ها تقسیم می کنیم، اما در سطح پایین تر از سلسله مراتب. در این مرحله رابط کاربری (که در مرحله 1 به یک ماژول جداگانه جدا شد) به یک view و یک کنترلر تقسیم می شود. ترسیم یک مرز دقیق بین نما و کنترلر دشوار است. اگر بگوییم نما همان چیزی است که کاربر می بیند و کنترلر مکانیزمی است که کاربر می تواند از طریق آن با سیستم تعامل داشته باشد، تناقض وجود دارد. کنترلها، مانند دکمههای صفحه وب یا صفحهکلید مجازی روی صفحهنمایش تلفن، اساساً بخشی از کنترلر هستند. اما آنها به اندازه هر قسمتی از نما برای کاربر قابل مشاهده هستند. در اینجا بیشتر در مورد تقسیم عملکردی صحبت می کنیم. وظیفه اصلی رابط کاربری اطمینان از تعامل کاربر با سیستم است. این بدان معنی است که رابط فقط 2 عملکرد دارد:- نمایش و نمایش راحت اطلاعات مربوط به سیستم به کاربر؛
- داده ها و دستورات کاربر را در سیستم وارد کنید (آنها را به سیستم منتقل کنید).
- با پیروی از اصول MVC، سیستم باید به ماژول ها تقسیم شود.
- مهمترین و مستقل ترین ماژول باید مدل باشد.
- مدل هسته اصلی سیستم است. شما به توانایی توسعه و آزمایش آن مستقل از رابط نیاز دارید.
- برای انجام این کار، در اولین مرحله از تفکیک سیستم، باید آن را به یک مدل و یک رابط تقسیم کنید.
- در مرحله بعد، با استفاده از الگوی Observer، مدل را در استقلال آن تقویت می کنیم و همگام سازی رابط های کاربری را به دست می آوریم.
- مرحله سوم این است که رابط را به یک کنترلر و یک view تقسیم کنید.
- تمام آنچه برای وارد کردن اطلاعات از کاربر به سیستم مورد نیاز است در کنترلر است.
- تمام اطلاعات خروجی از سیستم به کاربر در معرض دید است.
GO TO FULL VERSION