{
    "href": "/post/2017/08/18/why-mvc-doesnt-fit-the-web/",
    "relId": "2017/08/18/why-mvc-doesnt-fit-the-web",
    "title": "Why MVC doesn't fit the web",
    "author": "pmjones",
    "markup": "html",
    "tags": [
        {
            "href": "/tag/adr/",
            "relId": "adr",
            "title": "Action Domain Responder",
            "author": null,
            "created": "2020-08-17 21:07:42 UTC",
            "updated": [
                "2020-08-17 21:07:42 UTC",
                "2020-09-22 15:41:16 UTC",
                "2020-10-14 18:20:29 UTC",
                "2020-10-14 18:36:31 UTC",
                "2020-10-14 18:36:53 UTC",
                "2020-10-14 18:37:08 UTC",
                "2020-10-14 18:37:48 UTC",
                "2020-10-14 18:39:26 UTC",
                "2020-10-14 19:03:17 UTC",
                "2020-10-14 19:03:35 UTC",
                "2020-10-26 18:12:53 UTC"
            ],
            "markup": "markdown"
        },
        {
            "href": "/tag/php/",
            "relId": "php",
            "title": "PHP",
            "author": null,
            "created": null,
            "updated": [],
            "markup": "markdown"
        },
        {
            "href": "/tag/programming/",
            "relId": "programming",
            "title": "Programming",
            "author": null,
            "created": null,
            "updated": [],
            "markup": "markdown"
        }
    ],
    "created": "2017-08-18 14:49:07 UTC",
    "updated": [
        "2017-08-18 14:49:07 UTC"
    ],
    "html": "<blockquote>\n<p>[MVC is] a particular way to break up the responsibilities of parts of a graphical user interface application. One of the prototypical examples is a CAD application: models are the objects being drawn, in the abstract: models of mechanical parts, architectural elevations, whatever the subject of the particular application and use is. The \u00e2\u0080\u009cViews\u00e2\u0080\u009d are windows, rendering a particular view of that object. There might be several views of a three-dimensional part from different angles while the user is working. What\u00e2\u0080\u0099s left is the controller, which is a central place to collect actions the user is performing: key input, the mouse clicks, commands entered.</p>\n<p>The responsibility goes something like \u00e2\u0080\u009ccontroller updates model, model signals that it\u00e2\u0080\u0099s been updated, view re-renders\u00e2\u0080\u009d.</p>\n<p>This leaves the model relatively unencumbered by the design of whatever system it\u00e2\u0080\u0099s being displayed on, and lets the part of the software revolving around the concepts the model involves stay relatively pure in that domain. Measurements of parts in millimeters, not pixels; cylinders and cogs, rather than lines and z-buffers for display.</p>\n<p>The View stays unidirectional: it gets the signal to update, it reads the state from the model and displays the updated view.</p>\n<p>The controller even is pretty disciplined and takes input and makes it into definite commands and updates to the models.</p>\n<p>Now if you\u00e2\u0080\u0099re wondering how this fits into a web server, you\u00e2\u0080\u0099re probably wondering the same thing I wondered for a long time. The pattern doesn\u00e2\u0080\u0099t fit.</p>\n</blockquote>\n<p>Read the rest at <em><a href=\"https://web.archive.org/web/20160324211929/http://aredridel.dinhe.net/2015/01/30/why-mvc-does-not-fit-the-web/\">Why MVC doesn't fit the web</a></em>.</p>\n<p class=\"reddit-links\">Read the Reddit discussions about this post <a href=\"https://www.reddit.com/r/webdev/comments/6uiam7/why_mvc_doesnt_fit_the_web/\">here</a> and <a href=\"https://www.reddit.com/r/PHP/comments/6uiaik/why_mvc_doesnt_fit_the_web/\">here</a>.</p>\n"
}
