Single Page Application Client Architecture with JavaScript and Backbone.js


Experience with MV* frameworks like Backbone.js is a highly sought skill in today’s job market. This one-day intermediate/advanced workshop introduces the Backbone.js framework and best practices.

This workshop begins with Object-Oriented JavaScript and ends with Architectural Design Patterns, giving students a subsantial overview of an effective MV* client-side tech stack.
This hands-on course will be taught using Jasmine unit testing. Students will complete exercises to pass Jasmine tests and solidify their understanding of Backbone concepts.



The workshop is full-day (8 hours) from 9:00 to 18:00, with one hour lunch break


Via Capitan Bavastro 116 , Roma

CHECK IN: 8:30 – 9:00


Early Bird: € 95 by Wednesday, 2 April 23:30 CET

Regular ticket: € 135

Brenda Jin

Brenda Jin is a developer specializing in Tablet Prototyping at She is the lead technologist on a pilot agile team whose goal is to discover best practices and ecommerce opportunities on Tablets. Brenda gives talk on human-computer interaction and modern web technologies in San Francisco and abroad. Her projects range from Internet of Things to native mobile applications.

Follow Brenda on Twitter @cyberneticlove or on Github @brendajin.

- What does MV* mean?
- Why Backbone.js?
- Use Cases and Advantages
- Review of Object Oriented JavaScript

Object literals
- Functions are Objects
- Scope and “this”
- Prototypal Inheritance
- Backbone.js Dependencies

- Underscore
- Models

What is a Model?
- Extending the Backbone Model
- Setting defaults
- Initialization
- Custom methods
- Insantiating new Models
- Collections

What is a Collection?
- Extending the Backbone Collection
- Instantiating new Collections with Models
- Sorting with comparator
- Events
- Views

What is a View?
- Extending the Backbone View
- Identifyng or creating a DOM element for the View
- Event binding and callbacks
- Custom methods
- Templating

What is a Template?
- Handlebars syntax overview
- Handlebars pre-compilation with Grunt
- Using JSON to render a template
- Advanced Templating

- Custom Block Helpers
- Communicating with the Server

Architectural Best Practices

Pub/Sub Design Patterns
Modules, Façade, Mediator Pattern
How to instantiate
Preventing memory leaks
Require.js (AMD)
Before the Class

Make sure you have the required installations
Brush up on the Prerequisites if necessary
Set up a Github account

Educational Objectives:
Students will leave with the foundational skills to build rich interactive web applications using Backbone.js, as well as a small but expandable web application incorporating these techniques.

About Backbone.js:
Backbone.js is a flexible MV* Model View [Controller] framework that encourages re-usable JavaScript while enabling the separation of data (models) from presentation (views). Furthermore, a framekwork like Backbone.js helps developers organize their code better, making it more readable and maintanable in the future.

Experience with Object Oriented JS or having completed Codeacademy’s JavaScript lessons Objects I and Objects II
Experience passing Objects to functions as arguments for an API, library, or framework Experience with DOM traversal and manipulation with jQuery AJAX or client-side API experience
Basic debugging with JavaScript console
Command line: cd mkdir touch and basic git commands like clone

Required Software:

Grunt CLI
Python 2.7+
Google Chrome, Safari, or Firefox browser

Required Hardware:
Your own computer


A 40% discount of regular tickets price is offered to students. For any information please contact us at attaching document that certifies your student status.

The workshop will be held only if the minimun number of attendees is reached

For further information about this workshop email us at

Back to workshops list

Main Sponsor