Веб-фреймворк Lift следует тому, что его создатели называют View First .
Отличие от MVC заключается в том, что управление сначала обрабатывается представлением, а не контроллером. Представление может вызывать логику в нескольких фрагментах (ближайших к аналогу контроллеров).
Я рассматриваю это как инверсию дизайна RESTful, где URL-адреса сопоставляются с ресурсами, а представления являются способом отображения этих ресурсов. В View First URL-адреса отображаются на представления, которые могут извлекать и отображать любую произвольную коллекцию ресурсов.
Причина этого заключается в том, что часто страница на веб-сайте или в приложении должна отображать гораздо больше, чем просто запрашиваемый ресурс: она может содержать список недавних комментариев в блоге, «окно для сообщений» и т. Д. , Другие платформы обрабатывают это, имея вторичные механизмы для отображения контента и обработки ввода (такие как теги включения шаблонов Django и промежуточное программное обеспечение), и оставляя контроллер * для обработки основного ресурса, который отображает страница.
(* Сложно вовлекать Django в подобные дискуссии, потому что по сути это MVC, хотя по незаметным причинам его создатели используют термины Model-View-Template. Здесь я, однако, назову view Django контроллер .)