Posterous Spaces is built on Backbone.js
technology.posterous.comI'd be glad to feature y'all in the list of example sites on the Backbone homepage:
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:
I 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.
I 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 -- was also built using a few Backbone views for those interested. We love Backbone.
Coming 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.
Yeah, 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.
... 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/p...
To 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.
The 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.
I 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?
Do 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?
Ah 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.