MVC в области сайтостроения

Чтобы иметь возможность безболезненно изменять и поддерживать веб-сайт, у него должна быть хорошо продуманная архитектура.

В начале развития проекта, когда он состоит из нескольких веб-страниц, кажется, что говорить об архитектуре смешно. Но если на раннем этапе этому важному моменту не уделить должного внимания, то в дальнейшем можно потерять над проектом контроль.

Удачная архитектура не позволит вам оказаться в тупике через несколько лет, если вы будете следовать ее концепции. Одной из таких концепций является MVC.

Что такое MVC?

Идея MVC (Model-View-Controller) состоит в разделении всего приложения на три независимые друг от друга составляющие: Модель, Вид и Контроллер. Это дает возможность разрабатывать одни узлы программы, не затрагивая другие. Согласно концепции, каждый компонент выполняет определенные задачи.

Модель

Отвечает за обработку данных. Модель взаимодействует с базой данных и файлами, занимается преобразованием одних файлов в другие, ответственна за почтовые рассылки и пр. По сути, здесь реализуется основная логика программы.

Модель — это программный класс. В методах этого класса вызываются методы других классов, в которых реализованы алгоритмы обработки данных. Эти алгоритмы также могут быть описаны и в методах самой модели.

Как бы там ни было, главная задача модели — получить набор данных и вернуть ответ (массив, объект и др.). На действия пользователя модель никак не реагирует.

Контроллер

Выполняет распределительную функцию. Именно здесь и обрабатывается поведение пользователя. В контроллере описываются условия, при которых должны инициализироваться классы тех или иных моделей, вызываться методы моделей и т.п. На логику работы контроллера влияют все пользовательские запросы (GET, POST и др.).

Модель ничего не знает о пользователе и его действиях, она лишь работает с данными, которые ей передает контроллер. Контроллер должен получить ответ от модели и как-то его отобразить. Другая главная задача контроллера — указать, в каком виде будут отображаться данные.

Вид

Технически вид представляет собой файл, содержащий HTML-разметку, который загружается контроллером. Главная задача вида — получить от контроллера набор данных и отобразить их.

Виды не содержат сложных языковых конструкций, здесь лишь переменные встраиваются в HTML-код, так что разработку вида можно доверить верстальщику или дизайнеру.

Виды являются независимыми элементами архитектуры, их можно создавать отдельно, не имея общего представления о работе всего приложения. Например, при наличии HTML-шаблона, можно уже начинать подготавливать виды.

Практическое применение

Механизм MVC можно построить самостоятельно, однако существуют готовые архитектурные каркасы (фреймворки), созданные в парадигме MVC. Самые популярные из них используют стиль ООП, но саму идею MVC можно выразить и в стиле процедурного программирования.

Итак, что же нам дает MVC? Представьте, что вы создаете проект, а решение о его интерфейсе еще не принято (например, не нашли дизайнера). Но уже точно известно, что в рамках проекта будет работать online-магазин.

В этом случае вы можете приступить к разработке модели, и для этого вам следует знать: какие данные будут участвовать в обработке (наименование товара, артикул и пр.) и где они будут храниться, какие данные поступят в модель и какие данные она вернет.

Вам могут понадобиться дополнительные классы (валидация, обработка изображений и др.), которые вы будете инициализировать в своих моделях. Например, метод валидации адреса электронной почты лучше поместить в отдельный класс, не являющийся моделью, ведь данный метод может использоваться в разных моделях, а модели, как вы знаете, должны быть независимы, и не только от видов и контроллеров, но и друг от друга.

Еще пример. У вас есть сайт, но шаблон сайта морально устарел. Вы легко его поменяете, если вся работа сведется к подстановке нового вида. Остальной код останется нетронутым.

Такая ситуация. Вы решили создать свой второй проект, но взаимодействовать с пользователями он должен будет немного иначе, чем первый. Тогда вы можете скопировать модели из первого проекта, после чего останется лишь разработать контроллеры и виды.

Вообще, разбиение программы на независимые составляющие — то, к чему и должны были прийти программисты. MVC не удивила мир, но благодаря ей основополагающие элементы обрели свои имена (Модель, Вид, Контроллер).

Комментарии
RSS
Ваш комментарий
Загрузка...
Вам может быть интересно
Современные сайты интерактивные и динамичные — они реагируют на действия пользователя, обрабатывают его запросы и выдают результат. Так работают многие онлайн-сервисы, например, интернет-банкинг...
В Последние годы Web-приложения постепенно вытесняют настольные решения и станов...
По результатам ежегодного отчёта State of the Octo...
Java virtual machine (JVM) — это программа, ...
Неопытные разработчики вряд ли поймут, что изображ...
Эта статья — о мертвых или почти мертвых язы...
Чем отличаются веб-приложения MPA, SPA и PWA, для ...
Сегодня мы поговорим о том, что такое SPA и какой ...
Зачем изучать PHP: рейтинг, перспективы, сферы при...
Python входит в число самых популярных языков прог...

Новые комментарии

Спасибо ребятам разработчикам за русскую соц.сеть да еще и к празднику 9 мая!
Спасибо разработчикам DST за то что вовремя сделали такой важный проект как Русский Твиттер! Как нельзя кстати. Мы уже сделали канал на РутВите
Если вы хотите, чтобы получилось что-то путное, нужно переходить на УТ11, продлевать лицензию, обновляться, добиться увольнения 1С-ника, раз он не пон...
Если вы хотите, чтобы получилось что-то путное, нужно переходить на УТ11, продлевать лицензию, обновляться, добиться увольнения 1С-ника, раз он не пон...

Заявка на услуги DST

Наш специалист свяжется с Вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.

Россия, Москва

Комсомольский пр-т, д.28

8 800 5508827
Заказать звонок

Режим работы: Пн-Пт 10:00-19:00

info@dstglobal.ru

Задать вопрос по почте

Укажите ваше имя
Укажите ваше email
Укажите ваше телефон