Как стать автором
Обновить

Паттерн MVC: из 1970-х в 2009 год

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров8.8K
В современной разработке последних лет набирает большую популярность шаблон проектирования MVC (Model-View-Controller). В наши дни, в 2009 году, это уже стандарт, который, думаю сохранится надолго.

Предлагаю исследовать, что вкладывали в этот подход его разработчики в далеких 70-80-х годах и как он применяется сейчас.

Итак, MVC (Model-View-Controller) — это архитектурный шаблон проектирования, который был разработан в 1970-х годах в Xerox PARC для создания пользовательских интерфейсов на основе Smalltalk. В дальнейшем этот шаблон был адаптирован и применен в различных областях, включая веб-разработку.

Шаблон Model-View-Controller был описан в статье «Smalltalk-80: The Language and its Implementation» авторов Алана Кея Тейлора (Alan Kay Taylor) и Дэниела Гееворта Триггерса (Daniel Henry Holmes Ingalls, Jr.). Эта работа была опубликована в 1981 году в журнале «Byte Magazine». В статье авторы описывают архитектурный шаблон MVC, который они использовали при разработке системы программирования на языке Smalltalk-80.

В статье «Smalltalk-80: The Language and its Implementation» авторы описывают язык программирования Smalltalk-80 и его реализацию. Они рассматривают принципы объектно-ориентированного программирования, на которых основан язык, и представляют шаблон проектирования Model-View-Controller (MVC) для создания пользовательских интерфейсов.

Основные идеи, которые привносит эта работа:

  1. Использование объектов как основных элементов языка и программирования.
  2. Использование MVC для создания пользовательских интерфейсов, который разделяет данные, представление и управление.
  3. Принцип «Everything is an object» — все элементы в языке Smalltalk-80 являются объектами.
  4. Поддержка множественного наследования и динамической типизации.
  5. Использование исключений в обработке ошибок.
  6. Поддержка сборки мусора для управления памятью.


Они объясняют, что MVC была разработана для решения проблемы управления пользовательским интерфейсом в Smalltalk-80. Разработчики столкнулись с проблемой, что при изменении данных в приложении необходимо было также изменять и пользовательский интерфейс, что было довольно сложно и многословно.

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

Авторы статьи объясняют, что MVC позволяет разработчикам отделить логику приложения от пользовательского интерфейса, что делает код более чистым и модульным. Они также описывают, как в Smalltalk-80 реализована архитектура MVC с помощью классов и объектов.

В настоящее время MVC использовалась в различных технологиях и фреймворках для создания веб-приложений, например, в ASP.NET MVC, Ruby on Rails, Django и других. Именно эта технология позволяет отделить логику приложения от пользовательского интерфейса и упрощает разработку масштабируемых и поддерживаемых приложений.

ASP.NET MVC была выпущена в 2009 году и уже стала одним из наиболее популярных фреймворков для создания веб-приложений на языке C#. Этот фреймворк использовал архитектуру MVC для разделения приложения на три компонента, что упрощало разработку приложений и повышало их поддерживаемость.

Не менее популярным стал этот шаблон и в мире PHP. Так, востребованный фреймворк CodeIgniter предоставлял поддержку архитектуры MVC. CodeIgniter позволял разработчикам создавать приложения, разделяя их на три компонента: модель, представление и контроллер. Не отстает от него и фреймворк Zend Framework 1, который также поддерживал архитектуру MVC. Кого не перечисли — CakePHP, Symfony и Yii — везде MVC…

Продолжение следует...
Теги:
Хабы:
Всего голосов 31: ↑30 и ↓1+29
Комментарии39

Публикации

Истории

Работа

PHP программист
71 вакансия

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
22 апреля
VK Видео Meetup 2025
МоскваОнлайн
23 апреля
Meetup DevOps 43Tech
Санкт-ПетербургОнлайн
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область