Samuel Clay, the creator of the NewsBlur open-source, Web-based RSS newsreader, goes into useful detail on its "Backboneification": how he wrestled NewsBlur's initial implementation, 8,500 lines of "DOM spaghetti," into an MV* organization and tamed it using the Backbone framework. Clay presents this refactoring in detail in both slideware and narrative form. The code now consists of "8 models, 12 views, 3 routers, [and] 3 collections." (Routers are the Backbone objects that were initially called controllers.)
NewsBlur provides a perfect example of the kind of (common) problem that the MV* pattern fits like a glove. But not every problem is a nail best dealt with by using an MV* hammer. When refactoring an existing codebase, it is essential to understand its basic architecture in order to select the pattern that most closely aligns with the problem being solved. It's a whole lot easier to gain this deep understanding about existing code than it is to figure it out about a greenfield application; but the exercise is well worthwhile for both.
A wider view
Stepping back still further
The aforementioned father of MVC, Trygve Reenskaug, gave a talk in Norway recently in which he proposed to fix the problems of object-oriented programming (which we have discussed) at a more basic level. Reenskaug, now over 80 years old, wrote his first program in 1957. He motivates his new Data-Context-Interaction (DCI) pattern with this sobering reminder, from the Gang of Four's Patterns book, that the behavior of an OO system can't necessarily be understood from its code:
An object-oriented program's run-time structure often bears little resemblance to its code structure. The code structure is frozen at compile-time; it consists of classes in fixed inheritance relationships. A program's run-time structure consists of rapidly changing networks of communicating objects. In fact, the two structures are largely independent. Trying to understand one from the other is like trying to understand the dynamism of living ecosystems from the static taxonomy of plants and animals, and vice versa.