Tikal's Backbone_js introduction workshop

26
Backbone.js Introduction / Oren Farhi

description

With “Introduction to Backbone.js” workshop by Tikal’s Oren Farhi, attendees will learn to develop web application using Backbone.js framework. In addition to the basics of Backbone.js, attendees will get familiar with Twitter’s Bootstrap and will finally, connect to a live feed and develop a full working backbone.js application.

Transcript of Tikal's Backbone_js introduction workshop

Page 1: Tikal's Backbone_js introduction workshop

Backbone.jsIntroduction / Oren Farhi

Page 2: Tikal's Backbone_js introduction workshop

Oren Farhi

Front End Architect, JS Engineer @Tikal

JS Group Leader - Meet, Share, Contribute & Coding

Speaker (Israel & World Wide)

Developing with:

Pure Javascript, Backbone.js, Underscore.js, jQuery,

Common Sense, CSS3

github.com/tikalk

@tikalk

Page 3: Tikal's Backbone_js introduction workshop

We help companies build, deliver, deploy, manage and optimize their products.

JAVA JS RoR.NET ALM

“Today we are SURE that we made the right decision, choosing Tikal”

Guy Ben-Porat - Development Manager “ExLibris”

Page 4: Tikal's Backbone_js introduction workshop

Tikal by Numbers

“Actions speak louder than words”Tikal's motto

1600+ Community

Members

150+Blog Posts Last Year

460+Meetup

Members

100+Projects

Last Year

90+Tikal’s

Experts Team

12+ Years old

Page 5: Tikal's Backbone_js introduction workshop

The Past:

JS is the wild westNo code conventionsjQuery bloated codeData & DOM mixedjQuery ajax & callbacks are a bit messyNo Reuse

Most End Result:words and sentences with long selectors and "hanged" functions everywhere

Page 6: Tikal's Backbone_js introduction workshop

The Present: All we have is now

JS is the wild westNo code conventionsjQuery bloated codeData & DOM mixedjQuery ajax & callbacks are a bit messyNo Reuse

Most End Result:words and sentences with long selectors and "hanged" functions everywhere

SimplicityOrganization

Focus

Page 7: Tikal's Backbone_js introduction workshop

Backbone Background

Jeremy Ashkenas - Underscore, CoffeescriptDocumentCloud

Dependencies:jquery / zeptounderscore.jsjson2.js ( IE, other without JSON )

Page 8: Tikal's Backbone_js introduction workshop

Backbone is:

MVC library (MIT)Project "DocumentCloud"StructureRESTful JSON connectorHash Routing EngineEvent DrivenExtended

ModelEventsViewCollectionRouterUtilities - based underscore.jsTemplating Engine - based underscore.js

Page 9: Tikal's Backbone_js introduction workshop

What is it good for?

Web ApplicationsStructure for CodeDivide & ConquerOne Responsibility Concept

Modular, Extensible

Reusable Modules

Loose Coupling

Model Driven

Unit Test Ready

M - Backbone.Model

V - _.template

C - Backbone.View / Router

Page 10: Tikal's Backbone_js introduction workshop

This is a backbone.

When used properlyIt keeps one's headOut of one's buttRand Macivor

Page 11: Tikal's Backbone_js introduction workshop

What we're going to do today:

https://github.com/tikalk/backbone-workshop/downloads

Page 12: Tikal's Backbone_js introduction workshop

Backbone.Model

Where JSON data is storedREST, Constructor, ManuallyData Change EventsWorks With: Collection, View

Methods:set - validategetescapeclearfetchsave (REST) - parsedestroy (REST)

Page 13: Tikal's Backbone_js introduction workshop

Backbone.Model

Page 14: Tikal's Backbone_js introduction workshop

Backbone.Model - PRACTICE

Page 15: Tikal's Backbone_js introduction workshop

Backbone.View

A Controller for a DOM Element (wrapper)Renders Model/Collection to DOM (html)Delegates DOM EventsWorks With: Model, CollectionCan use Any template engine to render html

Methods:render (return this)makeremoveun/delegateEvents

Properties:$ = $el.findel$eloptionsevents

Page 16: Tikal's Backbone_js introduction workshop

Backbone.View

Page 17: Tikal's Backbone_js introduction workshop

Backbone.View - PRACTICE

Page 18: Tikal's Backbone_js introduction workshop

_.Underscore.js

Utilities for Javascript (60)Collections, Arrays, Functions, Objects,Uses Browsers Implementation if possibleHigh ExpressivenessWorks With: Backbone, Standalone

Methods:

Collections - each, map, filter, pluck, groupBy

Arrays - without, uniq

Functions - bind, debounce,

Object - keys, values, is-* (Empty, Date, String, Function etc..), has

Utility - template, escape, mixin

Chaining - chain, value

Page 19: Tikal's Backbone_js introduction workshop

_.Underscore.js

Page 20: Tikal's Backbone_js introduction workshop

Backbone.Collection

Collection of ModelsREST, Constructor, ManuallyInherits Change Events from ModelsWorks With: Model, ViewMany utilities methods from underscore.js

Methods:addremovelengthfetchsave (REST) - parsedestroy (REST)+ 28 Underscore methods:map, find, filter, sortBy, groupBy, pluck, invoke ...

Properties:options

Page 21: Tikal's Backbone_js introduction workshop

Backbone.Collection

Page 22: Tikal's Backbone_js introduction workshop

Backbone.Collection - PRACTICE

Page 23: Tikal's Backbone_js introduction workshop

Backbone.Router

Navigation Handling (bookmarks)Listens to url change eventsNatively integrated to Back/ForwardEasy routing handlingWorks With: Backbone.History

Methods:customnavigateroute (create)

Properties:routes (key - value) - (route - handler)

Page 24: Tikal's Backbone_js introduction workshop

Backbone.Router

Page 25: Tikal's Backbone_js introduction workshop

Backbone.Router - PRACTICE