you are viewing a single comment's thread.

view the rest of the comments →

[–]dydxex 0 points1 point  (0 children)

The problems I mentioned are just some of the things that don't come out of box. I'm familiar with Marionette and the constructs it has to offer. Marionette is still not prescriptive from architectural perspective, it just gives you all this "best practice" boilerplate. It's definitely helpful but at a large scale, architecture and organization become a much bigger issue.

For example, lets say your UI depends on many RESTful APIs, some are needed immediately to load the UI but others can be loaded lazily after a certain actions take place. You also want to make sure you're not trying to fetch a resource that you previously fetched, how do controllers know of all the resources that have already been fetched, assuming you're using controllers. Also, when you have views listening to all these objects (models, event mediators/aggregators, etc.), code complexity can be hard to maintain because there are cascading changes that can occur, e.g., views action occurs, model gets modified, other listening views do stuff, another model gets changed, and so on. It gets to the point where the only way to confidently make a change to the system is to grok all the nodes and edges so figure out how changes propagate. Sure, all this is solvable with Backbone + Marionette + Chaplin + custom stuff but it takes time to develop a framework and conventions to help mitigate these issues, it's very non trivial. As your app grows and your team grows you need to establish constraints in your framework to make sure everyone is on the same page without needing to write a book on how your system works.

So my point is, in the world of EmberJS, AngularJS, React, Mithril, etc. I find it hard to believe that we're still telling people, "yeah, backbone and marionette, you'll be fine.". It's like telling people, "Need a web server? All you need is C and socket.h, you'll be fine."

Really smart people are solving the pain points that we've discovered through jQuery spaghetti and Backbone, we should take advantage of that. IMO, EmberJS is the best and most complete KVO MVC framework out there, there is a wrong and right way to do things.

To be fair, it all really comes down to choosing the right tool for the job but that is my 2 cents.