Заявка на услуги DST
Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.
Чтобы иметь возможность безболезненно изменять и поддерживать веб-сайт, у него должна быть хорошо продуманная архитектура.
В начале развития проекта, когда он состоит из нескольких веб-страниц, кажется, что говорить об архитектуре смешно. Но если на раннем этапе этому важному моменту не уделить должного внимания, то в дальнейшем можно потерять над проектом контроль.
Удачная архитектура не позволит вам оказаться в тупике через несколько лет, если вы будете следовать ее концепции. Одной из таких концепций является MVC.
Идея MVC (Model-View-Controller) состоит в разделении всего приложения на три независимые друг от друга составляющие: Модель, Вид и Контроллер. Это дает возможность разрабатывать одни узлы программы, не затрагивая другие. Согласно концепции, каждый компонент выполняет определенные задачи.
Отвечает за обработку данных. Модель взаимодействует с базой данных и файлами, занимается преобразованием одних файлов в другие, ответственна за почтовые рассылки и пр. По сути, здесь реализуется основная логика программы.
Модель — это программный класс. В методах этого класса вызываются методы других классов, в которых реализованы алгоритмы обработки данных. Эти алгоритмы также могут быть описаны и в методах самой модели.
Как бы там ни было, главная задача модели — получить набор данных и вернуть ответ (массив, объект и др.). На действия пользователя модель никак не реагирует.
Выполняет распределительную функцию. Именно здесь и обрабатывается поведение пользователя. В контроллере описываются условия, при которых должны инициализироваться классы тех или иных моделей, вызываться методы моделей и т.п. На логику работы контроллера влияют все пользовательские запросы (GET, POST и др.).
Модель ничего не знает о пользователе и его действиях, она лишь работает с данными, которые ей передает контроллер. Контроллер должен получить ответ от модели и как-то его отобразить. Другая главная задача контроллера — указать, в каком виде будут отображаться данные.
Технически вид представляет собой файл, содержащий HTML-разметку, который загружается контроллером. Главная задача вида — получить от контроллера набор данных и отобразить их.
Виды не содержат сложных языковых конструкций, здесь лишь переменные встраиваются в HTML-код, так что разработку вида можно доверить верстальщику или дизайнеру.
Виды являются независимыми элементами архитектуры, их можно создавать отдельно, не имея общего представления о работе всего приложения. Например, при наличии HTML-шаблона, можно уже начинать подготавливать виды.
Механизм MVC можно построить самостоятельно, однако существуют готовые архитектурные каркасы (фреймворки), созданные в парадигме MVC. Самые популярные из них используют стиль ООП, но саму идею MVC можно выразить и в стиле процедурного программирования.
Итак, что же нам дает MVC? Представьте, что вы создаете проект, а решение о его интерфейсе еще не принято (например, не нашли дизайнера). Но уже точно известно, что в рамках проекта будет работать online-магазин.
В этом случае вы можете приступить к разработке модели, и для этого вам следует знать: какие данные будут участвовать в обработке (наименование товара, артикул и пр.) и где они будут храниться, какие данные поступят в модель и какие данные она вернет.
Вам могут понадобиться дополнительные классы (валидация, обработка изображений и др.), которые вы будете инициализировать в своих моделях. Например, метод валидации адреса электронной почты лучше поместить в отдельный класс, не являющийся моделью, ведь данный метод может использоваться в разных моделях, а модели, как вы знаете, должны быть независимы, и не только от видов и контроллеров, но и друг от друга.
Еще пример. У вас есть сайт, но шаблон сайта морально устарел. Вы легко его поменяете, если вся работа сведется к подстановке нового вида. Остальной код останется нетронутым.
Такая ситуация. Вы решили создать свой второй проект, но взаимодействовать с пользователями он должен будет немного иначе, чем первый. Тогда вы можете скопировать модели из первого проекта, после чего останется лишь разработать контроллеры и виды.
Вообще, разбиение программы на независимые составляющие — то, к чему и должны были прийти программисты. MVC не удивила мир, но благодаря ей основополагающие элементы обрели свои имена (Модель, Вид, Контроллер).
Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.
Ижевск, ул. Воткинское шоссе, д. 170 Е, Технопарк Нобель, офис 1117
Задать вопрос по почте