{"id":4268,"date":"2012-07-03T07:34:52","date_gmt":"2012-07-02T22:34:52","guid":{"rendered":"http:\/\/arison.jp\/blog\/2012\/07\/03\/mvc%e3%81%af%e7%b5%82%e3%82%8f%e3%81%a3%e3%81%a6%e3%81%84%e3%82%8b%e3%80%82%e6%ac%a1\/"},"modified":"2018-02-24T02:33:35","modified_gmt":"2018-02-23T17:33:35","slug":"mvc-is-dead-its-time-to-move-on","status":"publish","type":"post","link":"https:\/\/arison.jp\/blog\/2012\/07\/03\/mvc-is-dead-its-time-to-move-on\/","title":{"rendered":"MVC\u304b\u3089MOVE\u306e\u6642\u4ee3\u3078"},"content":{"rendered":"<p>MVC\u306f\u7d42\u308f\u3063\u3066\u3044\u308b\u3002<br \/>\n\u6b21\u306e\u6642\u4ee3\u306fMOVE\u3002<\/p>\n<p> Models,<br \/>\n Operations,<br \/>\n Views,<br \/>\n \u305d\u3057\u3066 Events.<\/p>\n<blockquote><p>\nMVC is a phenomenal idea. You have models, which are nice self-contained bits of state, views which are nice self-contained bits of UI, and controllers which are nice self-contained bits of \u2026<br \/>\nWhat?<br \/>\nI&#8217;m certainly not the first person to notice this, but the problem with MVC as given is that you end up stuffing too much code into your controllers, because you don&#8217;t know where else to put it.<br \/>\nTo fix this I&#8217;ve been using a new pattern: MOVE. Models, Operations, Views, and Events.\n<\/p><\/blockquote>\n<p>MVC is dead, it&#8217;s time to MOVE on.<br \/>\n<a href=\"http:\/\/cirw.in\/blog\/time-to-move-on\" rel=\"nofollow\">http:\/\/cirw.in\/blog\/time-to-move-on<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>MVC\u306f\u7d42\u308f\u3063\u3066\u3044\u308b\u3002 \u6b21\u306e\u6642\u4ee3\u306fMOVE\u3002 Models, Operations, Views, \u305d\u3057\u3066 Events. MVC is a phenomenal idea. You have models, which [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":7027,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,4],"tags":[703],"class_list":["post-4268","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","category-diary","tag-java"],"_links":{"self":[{"href":"https:\/\/arison.jp\/blog\/wp-json\/wp\/v2\/posts\/4268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arison.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arison.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arison.jp\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/arison.jp\/blog\/wp-json\/wp\/v2\/comments?post=4268"}],"version-history":[{"count":0,"href":"https:\/\/arison.jp\/blog\/wp-json\/wp\/v2\/posts\/4268\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/arison.jp\/blog\/wp-json\/wp\/v2\/media\/7027"}],"wp:attachment":[{"href":"https:\/\/arison.jp\/blog\/wp-json\/wp\/v2\/media?parent=4268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arison.jp\/blog\/wp-json\/wp\/v2\/categories?post=4268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arison.jp\/blog\/wp-json\/wp\/v2\/tags?post=4268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}