Hacker News new | past | comments | ask | show | jobs | submit login
The end of MVC. Seems to be banished (apidesign.org)
5 points by CrystalBlood on Nov 29, 2009 | hide | past | favorite | 6 comments



There's no need to sensationalize this. It's not the end of MVC and I'm not sure what's "banished" here. This sort of headline is a depressing trend.

But it is an interesting pattern for software architecture/engineering, and I'm glad to learn about it. I'll admit that after reading this summary I'm not entirely clear on how this marks any sort of revolutionary change in program design. Instead, it strikes me as a mental shift enabled by a few years' reflection on what MVC aspires to be. Indeed, the author says as much: "This may not seem like a really big change and indeed, technically, it is not. However the mental shift is huge!"

I'm not a Java developer, but in Ruby this sounds something like implementing a significant amount of program logic in modules rather than directly in a Merb/Rails/Datamapper/what-have-you model in order to achieve a looser coupling of the data/business logic layer.

So, I dunno. It's a really cool idea, and welcome to HN...but please change the headline to something less sensational/linkbait and more informative like - "Data/Context/Interaction - Thinking Beyond MVC Structure."


Update - here's a much better article than the one linked, written by DCI's creator (who also helped popularize MVC): http://www.artima.com/articles/dci_vision.html


Whoa, 8000 words. Anything more concise?


From my reading, DCI doesn't supplant MVC, but is an architecture for organizing code. Object behaviors are mixed in (via mixins, traits, or templates) according to roles (the common examples are ATM withdrawal and deposit) which are implemented separately.

There would be a couple of benefits of this aside from the advertised ones: Automated tests are associated with the role bahaviors. Instead of testing all of the possible behaviors of an object, tests are targeted at the individual traits. Also, by separating the roles from the data it's easier to mock the data layer.

When code needs to be removed or refactored, it is easy to find the code (and tests!) involved. Adding features becomes less of a refactor, and more just adding traits.


I thought MVP already supplanted MVC. I haven't wrapped my head around DCI yet, but my first question is whether this resembles MVP in any way.


Claims to be the new modernized version of MVC, is it really promising?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: