Рубрики
Без рубрики

Модель-контроллер мертвете на передней части?

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

Автор оригинала: Alex Moldovan.

Все больше и больше интерфейсных разработчиков принимает Неидирекционные архитектуры Отказ Так каково будущее для подхода классического моделей-контроллера (MVC)?

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

За последние четыре года я работал над множеством веб-проектов и провел хорошее количество временных архитектурных передних концов и интеграционные рамки в них.

До 2010 года JavaScript – Этот программирующий язык jquery Был написан в – использовался в основном для добавления манипуляций DOM на традиционные веб-сайты. Разработчики, похоже, не заботились о самой архитектуре. Такие вещи, как Раскрытие модуля шаблон были достаточно хороши, чтобы структурировать наши кодовые базы вокруг.

Наше нынешнее обсуждение входного интерфейса VS Back-End архитектуру пришла только в конце 2010 года. Это когда разработчики начали принимать концепцию Приложение одно страницы шутки в сторону. Это также, когда фреймворки, такие как Позвоночник и Нокаут начал становиться популярными.

Поскольку многие из принципов эти рамки были построены вокруг, были вполне новые в то время, их дизайнеры должны были искать в другом месте вдохновения. Они заимствовали практики, которые уже были хорошо созданы для архитектуры боковой серверов. И в этот момент все популярные серверные боковые рамки включали какую-то реализацию классики MVC Модель (также известна как MV * из-за его вариаций ).

Когда React.js был впервые представлен как рендеринг библиотеки многие разработчики издевался на это Потому что они воспринимали свой способ борьбы с HTML в JavaScript в качестве контр-интуитивных. Но они упускают из виду самый важный вклад, который реагирует на стол – Архитектура на основе компонентов Отказ

Реагистрация не изобретала компоненты, но он сделал эту идею еще один шаг.

Этот крупный прорыв в архитектуре упускался даже на Facebook, когда они рекламируют реагируют как «V в MVC».

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

2015 принес нам главную смену в мышлении – от знакомого узора MVC к Однонаправленные архитектуры и потоки данных Полученный из флюса и функционального реактивного программирования, поддерживается инструментами, такими как Redux или RXJS Отказ

Так куда все это пошло не так для MVC?

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

Проблемы, связанные с тем, что принципы и разделения, которые MVC, введенные на сервере, не такие же, как на клиенте.

Соединение просмотра контроллера

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

Когда вы переходите на MVC на клиенте, есть проблема. Контроллеры напоминают то, что мы называем «кодом». Контроллер сильно зависит от вида. В большинстве структурных реализаций он даже создается по мнению (как в случае, например, NG-контроллер в угловом угловом).

Кроме того, когда вы думаете о Принцип одной ответственности , это явно нарушает правила. Код Client Controller имеет дело с обоими Обработка событий и Бизнес логика на определенном уровне.

Жирные модели

Подумайте о том, какие данные вы храните в модели на стороне клиента.

С одной стороны, у вас есть данные, такие как Пользователи и Продукты который представляет ваш Состояние приложения Отказ С другой стороны, вам нужно хранить UI State – вещи как Showtab или allownepalue. .

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

Так где, где компоненты вписываются в эту модель?

Компоненты: Виды + Мероприятие Обращение + UI State Отказ

Диаграмма ниже показывает, как вы фактически разделите оригинальную модель MVC для получения компонентов. Что осталось выше линии, это именно то, что Flux пытается решить: управление Состояние приложения и Бизнес логика Отказ

С популярностью реагирования и Компонентная архитектура Мы видели рост Неидирекционные архитектуры Для управления состоянием приложения.

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

Но это больше не является реагированной историей. Если вы посмотрите на Угловой 2 , вы увидите, что тот же тип применяется, даже если у вас есть разные варианты управления состоянием приложения, как Ngrx/Store Отказ

На самом деле не было ничего, что MVC может сделать лучше на клиенте. Это было обречено, чтобы потерпеть неудачу с самого начала. Нам просто нужно время, чтобы увидеть это. Благодаря этому пятилетку процессу пренебрегающую архитектуру превратилось в то, что она сегодня. И когда вы думаете об этом, пять лет не так долго для достижения лучших практик.

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

Так что же самое будущее?

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

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

Будет ли эта архитектура быть лучшим решением пять лет с данного? Есть хороший шанс на это происходит, но опять же, ничего не наверняка.

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

Вот об этом! Я надеюсь, что вам понравилось читать это. Я приветствую ваши отзывы ниже.

Если вам понравилась статья, нажмите на зеленое сердце ниже, и я узнаю, что мои усилия не зря.

Оригинал: “https://www.freecodecamp.org/news/is-mvc-dead-for-the-frontend-35b4d1fe39ec/”