Научная статья на тему 'ГЛАВНЫЕ ПРИНЦИПЫ MVC И СМЫСЛ ИСПОЛЬЗОВАНИЯ В РАЗРАБОТКЕ ПРОГРАММНЫХ ПРОДУКТОВ'

ГЛАВНЫЕ ПРИНЦИПЫ MVC И СМЫСЛ ИСПОЛЬЗОВАНИЯ В РАЗРАБОТКЕ ПРОГРАММНЫХ ПРОДУКТОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
132
18
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНФОРМАЦИОННАЯ СИСТЕМА / MVC / МОДЕЛЬ-ВИД-КОНТРОЛЛЕР / INFORMATION SYSTEM / MODEL-VIEW-CONTROLER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бахтин И.В.

В статье рассмотрены основные принципы паттерна MVC, описано предназначение модели, вида и контроллера. Приведены преимущества, которые получает разработчик программного продукта, используя концепция MVC. Объяснено, почему разработчики не всегда следуют данной концепции.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE MAIN PRINCIPLES OF MVC AND THE MEANING OF USE IN SOFTWARE DEVELOPMENT

The article describes the basic principles of the MVC pattern, describes the purpose of the model, view and controller. The advantages that a software developer receives using the MVC concept are presented. Explained why developers do not always follow this concept.

Текст научной работы на тему «ГЛАВНЫЕ ПРИНЦИПЫ MVC И СМЫСЛ ИСПОЛЬЗОВАНИЯ В РАЗРАБОТКЕ ПРОГРАММНЫХ ПРОДУКТОВ»

УДК 004.051

Бахтин И.В. студент

3 курс, 09.03.02 Информационные системы и технологии

САФУ имени М.В. Ломоносова Россия, г. Архангельск

ГЛАВНЫЕ ПРИНЦИПЫ MVC И СМЫСЛ ИСПОЛЬЗОВАНИЯ В РАЗРАБОТКЕ ПРОГРАММНЫХ ПРОДУКТОВ

Аннотация: В статье рассмотрены основные принципы паттерна MVC, описано предназначение модели, вида и контроллера. Приведены преимущества, которые получает разработчик программного продукта, используя концепция MVC. Объяснено, почему разработчики не всегда следуют данной концепции.

Ключевые слова: Информационная система, MVC,Модель-вид-контроллер.

Bakhtin I. V. student

3year, 09.03.02 information systems and technologies NArFUnamed after M. V. Lomonosov Russia, Arkhangelsk

THE MAIN PRINCIPLES OF MVC AND THE MEANING OF USE IN

SOFTWARE DEVELOPMENT

Annotation: The article describes the basic principles of the MVC pattern, describes the purpose of the model, view and controller. The advantages that a software developer receives using the MVC concept are presented. Explained why developers do not always follow this concept.

Key words: information system, MVC, Model- View-Controler.

Концепция MVC (Model-View-Controller) заключается в разделении приложения на три основных компонента, которые связаны между собой, но могут разрабатываться независимо друг от друга. Об MVC официально заявили в 1988 году, однако сама идея и первые ее реализации появились несколькими годами раньше.

Идея и преимущество MVC

Основной смысл концепции в том, что компоненты должны быть максимально независимы, за счет чего уменьшается количество ошибок при разработке, а также снижаются трудозатраты, потому что повторное использование кода значительно упрощается. Главные принципы MVC[1]:

- Модель. Это код, отвечающий за работу с данными. Методы класса модели могут обрабатывать изображения, взаимодействовать с файловой

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

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

- Контроллер. Это связующее звено между моделью и видом. Он принимает решение, в зависимости от действий пользователя, какими методами модели обрабатывать запрос и как отображать ответ, то есть какой вид использовать. В контексте веб-программирования контроллер получает от пользователя переменные GET, POST, COOKIE и др. и выстраивает логику работы приложения.

Такое разделение дает разработчику ряд преимуществ:

- Общую задачу можно легко распределить между несколькими специалистами. Так, разработчик интерфейса не обязан знать, что именно будет делать пользователь, ему достаточно понимать, как (визуально) последний будет работать с готовым приложением.

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

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

Какой смысл в MVC, если теория не соблюдается?

Однако практика использования этих фреймворков, а также сама их реализация иногда идут вразрез с главной идеей MVC.

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

С другой — производители некоторых фреймворков сами создают условия для нарушения правил тем, что не ставят жестких рамок. Они понимают, что такие рамки уменьшают гибкость конечного продукта и могут плохо сказаться на его популярности и развитии. Поэтому базовая идея MVC в некоторой степени приносится в жертву.

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

Да, следование MVC действительно способно прирастить много дополнительного кода. Но разработчик должен решить, что для него главнее,

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

В общем смысле программирование — это преобразование и упорядочивание данных. Систематизация — единственный способ справиться с этой задачей. Чем понятнее структура приложения, тем легче его контролировать. Минимализм — вот к чему нужно стремиться. Для многих задач MVC не подойдет просто потому, что эти задачи слишком просты.

Использованные источники:

1. MVC для веб: проще некуда - habr [Электронный ресурс].- Режим доступа: https://habr.com/ru/post/181772/ (дата обращения: 30.12.2019)

2. Паттерны для новичков: MVC vs MVP vs MVVM - habr [Электронный ресурс].- Режим доступа: https://habr.com/ru/post/215605/ (дата обращения: 30.12.2019)

3. Что такое MVC: рассказываем простыми словами - habr [Электронный ресурс].- Режим доступа: https://ru.hexlet.io/blog/posts/chto -takoe-mvc-rasskazyvaem-prostymi-slovami/ (дата обращения: 30.12.2019)

i Надоели баннеры? Вы всегда можете отключить рекламу.