

Posterous Spaces is built on Backbone.js - a4agarwal
http://technology.posterous.com/posterous-spaces-is-built-on-backbonejs

======
jashkenas
I'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:

<http://backbonejs.org/#examples-posterous>

~~~
danso
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.

~~~
bemaniac
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.

------
neovive
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.

~~~
bemaniac
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.

~~~
jashkenas
... 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...](https://github.com/documentcloud/documentcloud/tree/master/public/javascripts)

~~~
bemaniac
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.

------
eskimoblood
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.

~~~
bemaniac
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?

~~~
eskimoblood
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?

~~~
bemaniac
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.

