3. is
• Model/View/Controller • Structure provider
Javascript Framework
• RESTful JSON Connector
• Released 13th Oct 2010
• Hash-Routing Engine
• @DocumentCloud
project • Event-driven
• MIT licensed and on GitHub • Lightweight (6.9kb)
Freitag, 11. März 2011
4. is not
• DOM Accessor
• Animation toolkit
• Control suite
• All in wonder package
Freitag, 11. März 2011
5. WHAT IS IT FOR?
All Client-Side
Rendered Applications
Freitag, 11. März 2011
6. AHA, HOW IS THAT?
• If you do a lot of
JavaScript, things tend to Model Controller
get messy!
• Backbone provides a way
to organize your code, by View
using the MVC pattern
• Only the View accesses
the DOM (e.g. with DOM
jQuery, Zepto, ...)
Freitag, 11. März 2011
7. ALTHOUGH...
outi neng-
R Controller
ngi
Model
• ... it’s a bit wrongly labeled
+ Collection
E
•I call it a “dirty” MVC ConViewoller
tr
iew
VDOM
Freitag, 11. März 2011
13. THE VIEWe cont
or th
roller
• Changes the DOM Functions/Params
•
• Delegates DOM events
– extend
• – constructor / initialize
• – el
• – $ (jQuery or Zepto)
• – render
• Subscribes Model/Collection • – remove
• – make
• – delegateEvents
change events
Freitag, 11. März 2011
14. THE CONTROLLER ngine
e rou t i n g- e
or t h
var Workspace = Backbone.Controller.extend({
! routes: {
! ! "help":! ! ! ! ! "help",! ! // #help
! ! "search/:name":! ! ! "search",!
! // #search/serrynaimo
! "search/:name/t:tweet":! "search"!! // #search/serrynaimo/t36732
! },
!
! help: function() {
! ! ...
! },
! search: function(name, tweet) {
! ! ...
! }
});
new Workspace();
Backbone.history.start(); ! ! ! ! ! ! // Start url-change listener
Freitag, 11. März 2011
15. THE CONTROLLER ngine
e rou t i n g- e
or t h
• Useful to initiate application
states like
window.location.hash = "help"; Functions/Params
• - extend
•
• Enables go back/forward
– routes
• – constructor / initialize
• – route
browser functionality • – saveLocation
• Makes application states
bookmarkable
Freitag, 11. März 2011
16. DEMO
Download files here
Freitag, 11. März 2011
17. WHAT ELSE?
• Make many small JavaScript files for big dev teams
• Comment your code (e.g. yDoc compatible)
• Works absolutely great with html5boilerplate.com
Freitag, 11. März 2011
18. WE’RE HIRING!
Mail me: thomas@adzcentral.com
@SERRYNAIMO
for JavaScript related fuzziness
Freitag, 11. März 2011