Learning Backbone.js

For the past five weeks I have been poring over Backbone.js tutorials. After building Notestream, it became apparent why using a clientside framework is necessary. By the time I had to present my thesis, I was in nested-callback hell. The code was becoming difficult to manage, and I could see how cumbersome a project can become without a framework to organize it.

So I picked up a couple resources to learn how to implement Backbone, and I am in the process of refactoring my thesis project now. I can’t see myself building a webapp without a framework again!

Here are the resources I found most useful:

Connected to the Backbone by Jeffrey Way

Jeffrey Way’s Connected to the Backbone does an excellent job walking the viewer step by step through the Backbone concepts using a tasks example and contact manager example. The lessons also focus on proper namespacing in Backbone, which has been helpful as well.

My suggestion is learn the code by heart, even if you’re not unsure about what all the parts are doing yet. You’ll see the patterns Backbone implements, and learn accordingly.

With that said, there are a few hang-ups with this tutorial.

First, there are a lot of example files missing from the project source. Most of the time I had to copy from the video instead of reviewing from a text file. More importantly, Jeffrey uses Laravel as his backend. These files were not included, and they were only quickly reviewed in the videos. Because of this, I ended up taking a break from the lessons. More on that later.

Secondly, coverage of routes was lacking. Particularly event handling for routes. Ultimately a lot of Googling, and searching Stackoverflow and Github got me what I needed. Still, this concept is pretty integral to Backbone, and would have been helpful to see it tied in with the examples used.

Lastly, a minor point: the tutorial is relatively dated. It was recorded in August of 2012, before Backbone 1.0 was released. While the changes are minor, coming into the framework complete new, I wasn’t sure when I was hitting an error due to my code, or a method that was deprecated from an older version. My suggestion: pay close attention to the viewer comments that go along with the videos.

Developing Backbone.js Applications by Addy Osmani

I can’t speak for the entirety of Developing Backbone.js Applications, but it gave me a thorough understanding on how to integrate nodeJS and MongoDB with Backbone. As explained, I took a breather from Connected to the Backbone in order to implement a nodeJS server with a proper RESTful API.

The book is still being updated, and you can download the latest version at the Github repo.