Chapter 3. Backbone.js

Backbone.js is a Model-View-Controller (MVC) framework for
client-facing JavaScript. Anyone who has spent time working with JavaScript
projects larger than trivial in size has seen how quickly the language
spirals into a web of callbacks and pyramid code. When writing code for the
web browser, it is almost inevitable to find display-specific code leaking
its way into your application logic. Over time, the code mix becomes heavier
and harder to maintain. Changes to the domain logic affect the view and vice
versa.

Backbone aims to solve the code coupling problem by providing a
model-view framework with templates that separate programming concerns in a
way that should feel familiar to developers coming from either a desktop
application or server side programming background.

It isn’t possible to talk about Backbone without also discussing
Underscore.js, Backbone’s prerequisite helper library. Underscore provides
functional programming support in the form of utility functions like
map/reduce, array iteration and filtering, and advanced object binding and
chaining. jQuery or Zepto, although not strictly required, are supported by
Backbone. jQuery in particular will play a role in the application developed
over the course of this book.

Model

Models form the nucleus of your Backbone application. Although
models may be transient app-only creations, in most cases the model will
represent an object stored in a database.

Backbone’s philosophy has models responsible for storing, ...

The best content for your career. Discover unlimited learning
on demand for around $1/day.