Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Просто надо повысить процент упоминаний того что MVC это не то о чём кричат на каждом углу.
И да, популярная на данный момент архитектура серверных приложений вполне может быть результатом эволюции архитектуры настольных приложений.
Но я говорю о том что новому веянию моды нужно новое название
изучив сначала серверное MVC можно продолжить применять этот же вариант архитектуры в настольных приложениях думая, что всё правильно.
Новому? Вы серьезно?
MVC эволюционировало, став тем, что под этим понимают сейчас
А вот нет. Она является результатом самостоятельной эволюции
Просто надо думать
MVC там как термин практически не употребляется
Ну относительно появления настольного MVC, серверное новее.
Так имеет ли серверное MVC к настольному како-либо отношение или нет?
Надо не давать повода так думать.
Чтобы понять MVVM и MVP надо сначала понять MVC, потому что везде при объяснении производных архитектур сначала рассказывают как работает базовая, и потом выделяют отличия.
Как ни странно, две независимых цепочки эволюции могут привести к одинаковому результату.
Вы не можете запретить людям думать.
семейство MV*-архитектур, ключевым признаком которых является разделение модели и представления
Тот факт, что MV* нацелен на то чтобы обновлять представления после их создания
MV* архитектура решает проблему сильной связности модели и представления при распространения событий изменения модели.
В stateless этой проблемы нет,
MV* решает проблему спагетти бизнеса и представления.
Есть в полный рост
Спасибо что перевели мои же слова на IT жаргон.
Проблема изменения загруженных страниц при изменении данных в БД решается другим путём.
foreach(var row in db.GetProducts())
{
if (user.IsAdmin || user.IsSupport || user.HasPermission(Permissions.View, row.Id))
OutputProduct(row.Id, row.Name)
}
в чём тут проблема
как она связана с изменением уже отрисованного представления при изменении модели?
Модель и представление не связаны по управлению, значит разделить их можно просто помня, что они должны быть отделены.
Вы сами же пришли к тому, что stateless не требуют решения проблемы в виде MV* архитектуры, потому что проблемы нет.
Протокол HTTP обязывает нас убивать приложение после ответа на запрос, или делать вид что мы его убили. Так что единственным событием веб приложения является его запуск с некоторым набором параметров.
В веб приложениях вообще нет событий.Ох уж эти веб приложения: нет ни ajax, ни sse, ни даже addEventListener :(
Вот кстати чем на самом деле являются «MVC» фреймворки: github.com/pmjones/adr/blob/master/README.md
В веб приложениях вообще нет событий. Протокол HTTP обязывает нас убивать приложение после ответа на запрос, или делать вид что мы его убили. Так что единственным событием веб приложения является его запуск с некоторым набором параметров.
2) Long-Polling, HTTP 2.0, WS не являются основой того что называется PHP MVC Framework. Упор там делается на построение Action-Domain-Responder архитекутуры, а живое общение с сервером бывает приплетается для большей динамики.
Я же говорю о том, что архитектура применяемая на серверной стороне и горда именуемая MVC на самом деле таковой не является и называться должна иначе, т.к. решает другую проблему.
Грамотное применение ООП в любом случае нам даст систему, разделённую на слабо связанные части.
MVC на сервере не бывает