Програма Model-View-Controller MVC - що це, особливості і опис

18 0 Новини високих технологій

Програма Model-View-Controller (MVC) дозволяє розробляти, реалізовувати і тестувати кожну частину програми незалежно від будь-якої іншої, зберігаючи код організованим. Збереження організованого коду означає можливість швидко знайти те, що необхідно, щоб перевірити, швидко виправити, змінити і додати нові функції. Це також означає більш ефективний код і кращий спосіб повторного використання його для більш швидких додатків. Без вагомих підстав використовувати нову структуру, технологію або тренд багатьом розробникам важко, і насамперед тому, що вони не можуть знайти мотивацію для вивчення нової теми. Але тільки не у відношенні MVC, архітектура якої дуже важлива, а застосовувати методи MVC для веб необхідно.


Основні типи функціональності архітектури

Ймовірно, одним з найбільших переваг є те, що багато розробники розуміють і використовують структуру MVC для створення веб-додатків. З-за цієї узгодженості управління проектом між кількома розробниками стає простіше. В основному веб-додаток або частина програмного забезпечення слідують за структурою MVC. Якщо структура представлена трьома основними типами функціональності, тоді зрозуміло, що це - MVC:
  • Код моделі зазвичай відображає реальні речі. Цей код може містити необроблені дані або визначати основні компоненти програми. Наприклад, якщо користувач створював додаток Todo, код моделі визначав би, що таке «завдання» і що таке «список», оскільки це основні компоненти даного додатка.
  • Вид, або подання - перегляд коду складається з усіх функцій, які безпосередньо взаємодіють з користувачем. Це код, який робить додаток красивим і в іншому випадку визначає, як користувач бачить і взаємодіє з ним.
  • Контролер діє як зв'язок між моделлю та поданням, приймаючи користувальницький введення і вирішуючи, що з ним робити. Це мозок програми і зв'язує модель і подання. Контролер вважають середнім рівнем». Він взаємодіє з користувачем, збираючи дані, контактує з моделлю, отримуючи необхідні дані, а потім з поданням, щоб відповісти користувачеві.
  • Коли користувач виконує яку-небудь дію, він спочатку переходить до контролера. Він буде приймати будь-які дані, наприклад, $_GET, $_POST змінні в PHP, і визначати, що робити з цими даними. Коротше кажучи, моделі відносяться до обробки даних і розширеної функціональності. Тому завдання контролера в цій точці полягає в тому, щоб визначити, яку модель слід викликати, а потім відкрити відповідну функцію всередині цієї моделі. Після виклику функції він буде знаходити результат, зазвичай у змінному середовищі.


    Модель – це просте уявлення про те, що користувач виконує в додатку. Модель MVC - це що повинні представити в коді, наприклад книги користувача, його банківського рахунку або чогось ще. Модель відповідає за зберігання функцій і змінних, які пов'язані з тим, що вона представляє. Можна думати про логікою моделі як базової концепції об'єктно-орієнтованого програмування. Тут моделі - це просто «класи». Не варто плутати з класами в контролерах, які технічно теж структуровані як класи. Нарешті, після того як контролер запитує інформацію з моделі, вона відправляє її подання. Вид схожий на систему шаблонів програми і може існувати для певного типу макета сторінки, мобільного виду або для певної теми. У виставі будуть відображатися всі розмітки і CSS, які традиційно використовуються під час створення статичної веб-сторінки.
    MVC - це те, що бачить користувач, коли контролер звертається до нього. Контролер просто перенаправляє користувача на правильний вигляд, після того як вони отримали дані з моделі і перенаправили цю інформацію до подання. Потім подання відображає інформацію, надану їм, в тому форматі, в якому вона структурована.

    Структура організації коду

    Велика ідея MVC полягає в тому, що кожна частина коду має свою мету, і ці цілі різні. Деякі з кодів містять дані програми, деякі роблять додаток приємним, а деякі з них контролюють функціональність. Вважається, що це MVC, програма, яка здатна організувати основні функції коду в свої, акуратно організовані ящики. Структура файлу для використання MVC стандартним чином досить проста - є просто папки для уявлень, моделей і контролерів, і всі вони пов'язані один з одним через один каталог. Звичайно, з будь-яким веб-додатком у користувача також будуть інші папки та файли, такі як індексний файл і каталог для зображень.
    Нижче представлена проста структура каталогів MVC з деякими прикладами файлів. Кожен розробник може мати свої власні назви, тут важливо приймати розумне стандартна угода про них. Тому файли у наведеній нижче структурі є просто прикладами.
    Програма Model-View-Controller MVC - що це, особливості і опис
    Структура ASP.NET Core MVC - це легка середовище подання. Відрізняється відкритим вихідним кодом. Вона високо перевіряється, оптимізована для використання з Asp Net Core MVC.
    Програма Model-View-Controller MVC - що це, особливості і опис

    Архітектура MVC

    Модельний розділ визначає, які дані повинна містити додаток. Якщо стан цих даних змінюється, тоді модель зазвичай повідомляє подання, а іноді і контролер, якщо для контролю оновленого подання потрібна інша логіка. Наприклад, для програми списку покупок модель вкаже, які дані повинні містити елементи списку - елемент, ціна та інші, і які елементи списку вже присутні. Подання визначає, як повинні відображатися дані програми. В додатку списку покупок подання буде визначати як список, представлений користувачеві, і отримає дані для відображення з моделі. Контролер містить логіку, яка оновлює модель у відповідь на вхід користувачів додатку. Так, наприклад, список покупок може містити форми введення і кнопки, які дозволяють додавати або видаляти елементи. Ці дії вимагають оновлення моделі, тому вхід відправляється на контролер, який потім відповідним чином керує моделлю, відправляє оновлені дані подання. Однак також можна просто оновити подання, щоб відобразити дані в іншому форматі, наприклад, змінити порядок предметів в алфавітному порядку або з найнижчої до найвищої ціни. У цьому випадку контролер може впоратися з цим безпосередньо, не оновлюючи модель.

    Аналогія моделі в сучасному світі

    MVC - це спосіб розібратися, як працює веб, дуже корисний при плануванні, оскільки він дає користувачу загальне розуміння про те, як його ідеї повинні бути організовані фактичний код. Наприклад, додаток справ. Це додаток дозволить користувачам створювати завдання і організовувати їх у списки. Модель в додатку ToDo може визначити що «завдання» є і що «список» являє собою набір завдань. Код View визначить, як виглядають ToDo і списки візуально. Завдання можуть мати великий шрифт або бути певного кольору. Нарешті, контролер може визначити, як користувач додає завдання або відзначає, коли воно завершено. Контролер з'єднує кнопку «Додати» в «Модель» тому, коли користувач натискає «Додати завдання», модель додає нову задачу.

    Просто про шаблон проектування

    Програма Model-View-Controller MVC - що це, особливості і опис
    Можливості MVC програми можна показати в двох словах, на прикладі адресної книги. Модель являє собою список Person об'єктів. Подання являє собою вікно графічного інтерфейсу користувача, яке відображає список людей. А контролер обробляє такі дії, як «Видалити адресу людини», «Додати адресу людини», «Електронна пошта людини».
    У наведеному вище прикладі Person клас нічого не знає про поданні. Вікно перегляду повідомляє контролеру про дії користувача. Непотрібна складність притаманна цим принципом розробки програмного забезпечення. Складність призводить до того, що є дорогим в обслуговуванні. Найпростіший спосіб зробити код простим - видалення непотрібних залежностей. Тоді код стає менш марним і більш легким в обслуговуванні, тому він може повторно використовуватися без змін.

    Основні залежності елементів

    Призначення контролера - видалити залежність від виду моделі. Наприклад, менеджер проекту вимагає від розробника створити не тільки вікно контактів, але ще одне, яке відображає всі контакти тільки за їхніми фотографіями. Фотографії повинні бути в макеті столу, по п'ять штук у рядку. Для MVC ця задача досить проста. В даний час існує три класи:
  • Person.
  • PersonListController.
  • PersonListView.
  • Необхідно створити два класу: PersonPhotoGridView і PersonPhotoGridController. Person клас залишається тим же самим і легко вставляється в дві різні точки зору. Розробник повинен модифікувати Person клас для розміщення нового PersonPhotoGridView і в кінцевому підсумку ускладнює модель (приклад 3).
    Програма Model-View-Controller MVC - що це, особливості і опис
    З MVC Person клас може відображатися різними інструментами GUI без яких-небудь змін. Просто створюють контролер та уявлення за допомогою нового інструментарію, як і зі старим набором інструментальних засобів. Код може виглядати наступним чином.
    Програма Model-View-Controller MVC - що це, особливості і опис
    У setPicture цей момент методу є в основному кодом спагетті. Шаблон проектування MVC вставляє клас контролера між уявленням і моделлю, щоб видалити залежності моделі. При видаленні залежностей модель і, можливо, вигляд можуть бути зроблені повторно використовуваними без змін. Це робить впровадження нових функцій і технічне обслуговування легкими. Користувачі швидко отримують стабільне програмне забезпечення, компанія економить гроші, а розробники працюють в нормальних умовах.

    Принцип роботи

    Програма Model-View-Controller MVC - що це, особливості і опис
    Принцип MVC полягає в тому, щоб розділити додаток на 3 основні частини, відомі як Модель, Вид (перегляд) і Контролер. Видимими на діаграмі є прямі асоціації (червоні стрілки) і виведені асоціації (сині стрілки). Виведені асоціації - це ті, які можуть здатися очевидними з точки зору користувача, а не виходячи з фактичного дизайну програмного забезпечення. Простий спосіб виконання умови:
  • Користувач взаємодіє з поданням - натисканням на посилання або відправкою форми.
  • Контролер обробляє введення користувача і передає інформацію в модель.
  • Модель отримує інформацію і оновлює її стан, додає дані в базу даних, наприклад, обчислює сьогоднішню дату.
  • Перегляд перевіряє стан Моделі і відповідає відповідно, перерахувавши нещодавно введені дані.
  • Вид очікує наступного взаємодії користувача.
  • Це проста концепція - Business Logic - обчислення логічних процесів додатки. Наприклад, бізнес-логіка простого календаря повинна була б розрахувати, яка дата, який день тижня і будь-який день місяця, якщо потрібно представити всі дні цього місяця. Або здійснювати обслуговування веб-контенту за допомогою Spring MVC, яка дає можливість будувати додаток зі статичною домашньою сторінкою, приймає запити HTTP GET.

    Дотримання принципу DRY

    Багато фреймворки MVC використовують систему шаблонів для забезпечення дотримання принципу DRY, що робить його дуже зручним для повторного використання коду без необхідності переписування. Існують рамки MVC, які працюють на Smarty або використовують власні механізми шаблонів. Простим попередженням є те, що деякі пакети шаблонів мають досить складний синтаксис – програмісту потрібно перевірити їх, перш ніж починати розробку. Вважається, що MVC – це ще одна дуже хороша реалізація філософії DRY (Do not Repeat Yourself). По суті, DRY використовується Ruby on Rails і декількома іншими реалізаціями, а ідея полягає в тому, що програміст пише щось один раз і один раз використовує код. Принцип DRY визначається як «кожна частина повинна мати єдине, однозначне, авторитетне подання усередині системи». Правильна реалізація DRY означає, що зміна одного елемента системи не змінює непов'язані елементи, що досить логічно.

    Конвенція по конфігурації

    Це парадигма дизайну, яка, по суті, намагається видалити кількість рішень, які розробник повинен зробити. Це досягається шляхом створення структури з угодами, які зазвичай вимагають всі елементи. Розробнику потрібно тільки змінити те, що дійсно необхідно. Це досить просто. Наприклад, для форми, яка містить елементи, які завжди потрібні і мають однакові значення. Форма має тег, який визначає дію, метод, ім'я, id enctype. Наприклад, якщо не потрібно щось змінювати, досить легко отримати ім'я форми, ідентифікатор і дія з URL-адреси. Також можна встановити всі методи форми POST, якщо не зазначено інше. Застосування цієї ідеї до всіх елементів робить створення такого типу програми дуже швидким, простим і зрозумілим. MVC - це дійсно хороший спосіб почати виробництво чистого, масштабованого, потужного і швидкого код за менший час з мінімальними витратами зусиль. Деякі структури MVC не містять всіх цих функцій, більшість з них містять лише один або два.

    Переваги і недоліки методу

    MVC шаблон проектування використовується в розробці програмного забезпечення, основний принцип якого базується на ідеї про те, що логіка програми повинна бути відокремлена від його подання. Простіше кажучи, це просто кращий спосіб відокремити логіку програми від дисплея. Як і всякий метод програмування, він має свої переваги та недоліки. Переваги MVC:
  • Швидкий процес розробки, підтримує швидке й паралельний розвиток.
  • З MVC один програміст може працювати над виставою, а інший може працювати над контролером для створення бізнес-логіки.
  • Додаток, розроблене з його застосуванням, в три рази швидше, ніж додаток, розроблене з іншими шаблонами розробки.
  • Можливість надання декількох видів.
  • У MVC можна створювати кілька вистав.
  • Копіювання дублікатів дуже обмежено, оскільки воно відокремлює дані і логіку від дисплея.
  • Підтримка асинхронної технології, яка допомагає розробникам швидко розробляти завантажуване додаток.
  • Модифікація не впливає на всю модель, тому що частина моделі не залежить від частини переглядів. Тому будь-які зміни в Моделі не будуть впливати на всю архітектуру.
  • Шаблон NET MVC повертає дані без застосування будь-якого форматування, тому одні й ті ж компоненти можуть використовуватися і викликатися для використання з будь-яким інтерфейсом.
  • За допомогою цієї платформи дуже легко розробляти URL-адреси, оптимізовані для SEO, для отримання більшої кількості відвідувань з певної програми.
  • Недоліки MVC:
  • Підвищена складність.
  • Неефективність доступу до даних.
  • Складність використання MVC з сучасним інтерфейсом користувача.
  • Потрібно кілька програмістів.
  • Вимагається знання декількох технологій. Розробник знає код клієнтської сторони і html-код.
  • Створення першого додатку

    Програма Model-View-Controller MVC - що це, особливості і опис
    Можна розробити приклади ASP.NET MVC з відповідною версією середовища Visual Studio і .NET, використовуючи MVC v522017 Community і платформу .NET 4.6. Порядок виконання:
  • Відкрити програму Visual Studio 2017 і далі: Файл -> Створити > Проект.
  • Розгортають вузол Visual C # і Web в лівій частині і далі вибирають asp net MVC в середній частині.
  • Вводять назву свого проекту MyMVCApplication, можна вказати будь-яке підходяще ім'я для свого додатка.
  • Встановлюють місце розташування проекту, натиснувши кнопку «Огляд» і далі «ОК».
  • У вікні «Новий веб-застосунок» знаходять asp MVC core.
  • Змінюють аутентифікацію, натиснувши відповідну кнопку.
  • Натисніть «ОК», щоб MVC створив проект з використанням шаблону.
  • Перше додаток готове.
  • Запускають проект в режимі налагодження F5 або Ctrl + F5 без налагодження. Проект MVC framework містить javascript і файли CSS bootstrap 3.0 за замовчуванням.
    Програма Model-View-Controller MVC - що це, особливості і опис
    Таким чином можна створювати чуйні веб-сторінки. Цей чуйний інтерфейс змінить його зовнішній вигляд на основі розміру екрана різних пристроїв. Наприклад, верхній рядок меню буде змінена на мобільних пристроях. Таким чином, легко створити свій перший додаток core MVC з допомогою Visual Studio 2013. MVC - це основа для програмування та організації файлів програми. Щоб позначити ідею про те, як код повинен бути організований для своєї функції, розробники будуть створювати папки для кожної частини, що дає вихідне місце для перекладу ідей в код, а також полегшує повернення до коду. Роздум про те, як код взаємодіє з іншим кодом, є важливою частиною програмування, а навчання співпраці з іншими розробниками - це важливий навик. Витративши час на розуміння того, як додаток вписується в структуру MVC php, програміст підвищує свої навички розробника.