8 ms·
Posterous Spaces is built on Backbone.js
- jashkenas 15y agoI'd be glad to feature y'all in the list of example sites on the Backbone homepage: http://backbonejs.org/#examples http://backbonejs.org/#examples If you're interested, email me a brief paragraph of description, and a 550px-wide screenshot of Posterous Spaces. Edit -- Adam followed up, and I've posted it up here: http://backbonejs.org/#examples-posterous http://backbonejs.org/#examples-posterous
- danso 15y agoI was just going to say, this must be the biggest Backbone.js-in-production project yet. But after re-checking the example page, I'm guessing Pandora and LinkedIn's mobile site are higher notches for Backbone.
- bemaniac 15y agoI guess it just depends on your definition of "big". I'm curious to see how many views they have. We have many, many views. Our new Posterous Bar -- http://blog.posterous.com/introducing-the-new-posterous-bar http://blog.posterous.com/introducing-the-new-posterous-bar -- was also built using a few Backbone views for those interested. We love Backbone.
- eskimoblood 15y agoThe article itself doesn't go very deep in technical details. So I wonder how they manager there views, especially deleting unused events from models and collection, managing livecycle of views etc. Another interesting think to know is, how they handle subviews and the communication between them.
- bemaniac 15y agoI didn't go into much detail because I could have gone on and on forever. We keep our models and collections very bare. They essentially just have methods that communicate with our API and that's it. We handle subviews by appending them in the render method. For instance, in a post list, we append each post list item in the post list's render method. I'm sorry if that doesn't answer your question. I guess the essence of it is we append subviews in the render method. Is there anything specific about this you want to know?
- eskimoblood 15y agoDo you have any mechanism to unbind events on model/collections you've made in views/subviews, or will the bind methodes will live forever. Do you have something like a global eventbus or how your views comunicate with each other?
- bemaniac 15y agoAh I see what you mean. No, we generally don't unbind events on models/collections, but this is mostly because we don't remove views/subviews from a page that often. We try to cache as much stuff as possible so subsequent clicks between tabs are really fast.
- neovive 15y agoComing from server-side MVC dev, the line "Views: The meat of our business logic occurs here." was surprising. I thought the point of MVC was to decouple the logic from the views. PS: I'm about to start reading the new Javascript Web Applications book by Alex MacCaw as I'm very interested in learning more client-side development. This is very new to me.
- bemaniac 15y agoYeah, it seems weird, but that's the way it works in Backbone (at least for us). Views are more similar to iOS' UIViewController than a Rails view. Backbone views handle event binding and rendering, so they're more similar to Rails controllers, if anything.
- jashkenas 15y ago... that's not always the case. I don't know if there's enough out there yet to establish a canon, but we try to keep most reusable business logic in the models, and leave views to UI concerns. If you want to browse around: https://github.com/documentcloud/documentcloud/tree/master/public/javascripts https://github.com/documentcloud/documentcloud/tree/master/p...
- bemaniac 15y agoTo rephrase, we found that most logic in our app was view/event/interaction-related, and we found that keeping that stuff in the views made more sense for us.