Give Your JavaScript Apps Some Spine

Lachlan Hardy
Lachlan HardyDesign Engineer at Atlassian
Imagine a web
      where we can build
 useful, beautiful, responsive
     sites and applications
that are semantic, correct, and
        accessible to all.
@lachlanhardy
What is Backbone?
What is Backbone?

“Backbone supplies structure to JavaScript-
heavy applications by providing models with
key-value binding and custom events,
collections with a rich API of enumerable
functions, views with declarative event
handling, and connects it all to your existing
application over a RESTful JSON interface. ”
I’m no computer scientist.
What is Backbone?

“Backbone supplies structure to JavaScript-
heavy applications by providing models with
key-value binding and custom events,
collections with a rich API of enumerable
functions, views with declarative event
handling, and connects it all to your existing
application over a RESTful JSON interface. ”
WTF?
What is Backbone?

“Backbone supplies structure to JavaScript-
heavy applications by providing models with
key-value binding and custom events,
collections with a rich API of enumerable
functions, views with declarative event
handling, and connects it all to your existing
application over a RESTful JSON interface. ”
What is Backbone?

“Backbone supplies structure to JavaScript-
heavy applications by providing models with
key-value binding and custom events,
collections with a rich API of enumerable
functions, views with declarative event
handling, and connects it all to your existing
application over a RESTful JSON interface. ”
What is Backbone?

“Backbone supplies structure to JavaScript-
heavy applications by providing models with
key-value binding and custom events,
collections with a rich API of enumerable
functions, views with declarative event
handling, and connects it all to your existing
application over a RESTful JSON interface. ”
What is Backbone?




It’s a JavaScript library.
What is Backbone?




It’s a JavaScript library for
writing applications.
What is Backbone?




It’s a JavaScript library for
writing applications like...
Library size




- 41.0Kb uncompressed
- 4.6Kb Packed and Gzipped
Library dependencies




-   Underscore.js
Underscore.js




- Functional programming library
- 60-odd functions such as map, select,
invoke
Library dependencies




-   Underscore.js
Library dependencies




-   Underscore.js
    - JSON2.js
JSON2.js




- Provides JSON support if it doesn’t exist
natively
- Does nothing in modern browsers
Library dependencies




-   Underscore.js
    - JSON2.js
    - jQuery or Zepto.js
Zepto.js




“Zepto.js is a minimalist JavaScript framework
for mobile WebKit browsers, with a jQuery-
compatible syntax.”
What is Backbone?

“Backbone supplies structure to JavaScript-
heavy applications by providing models with
key-value binding and custom events,
collections with a rich API of enumerable
functions, views with declarative event
handling, and connects it all to your existing
application over a RESTful JSON interface. ”
Backbone.Model




- Models contain the data
Backbone.Model




- Models contain the data
- Validations, properties and permissions
Backbone.Model




- Models contain the data
- Validations, properties and permissions
- Manage changes to the above
What is Backbone?

“Backbone supplies structure to JavaScript-
heavy applications by providing models with
key-value binding and custom events,
collections with a rich API of enumerable
functions, views with declarative event
handling, and connects it all to your existing
application over a RESTful JSON interface. ”
Backbone.Collection




- Collections are ordered sets of models
Backbone.Collection




- Collections are ordered sets of models
- Act on events within models
Backbone.Collection




- Collections are ordered sets of models
- Act on events within models
- Add, Remove, Fetch, Reset, Create, Sort
What is Backbone?

“Backbone supplies structure to JavaScript-
heavy applications by providing models with
key-value binding and custom events,
collections with a rich API of enumerable
functions, views with declarative event
handling, and connects it all to your existing
application over a RESTful JSON interface. ”
Backbone.View




- A logical UI component, not just the
template
Backbone.View




- A logical UI component, not just the
template
- Bind render function to model change event
Backbone.View




- A logical UI component, not just the
template
- Bind render function to model change event
What is Backbone?



-   Backbone.Events
-   Backbone.Router
-   Backbone.History
-   Backbone.Sync
Find out more




http://documentcloud.github.com/
backbone/
Questions?
1 of 36

Recommended

Give Your JavaScript Apps A Spine by
Give Your JavaScript Apps A SpineGive Your JavaScript Apps A Spine
Give Your JavaScript Apps A SpineLachlan Hardy
896 views35 slides
Mindtalk Tech - Behind the scenes by
Mindtalk Tech - Behind the scenesMindtalk Tech - Behind the scenes
Mindtalk Tech - Behind the scenesrobin_sy
2.3K views22 slides
Azure Functions & Serverless Computing by
Azure Functions & Serverless ComputingAzure Functions & Serverless Computing
Azure Functions & Serverless ComputingAbhimanyu Singhal
196 views19 slides
A Modular Open Source Platform for IoT by
A Modular Open Source Platform for IoTA Modular Open Source Platform for IoT
A Modular Open Source Platform for IoTMichael Koster
1.9K views12 slides
Resumen Backbone.js en Ingles by
Resumen Backbone.js en InglesResumen Backbone.js en Ingles
Resumen Backbone.js en InglesFrancisco Quintero
471 views5 slides
Working with LoopBack Models by
Working with LoopBack ModelsWorking with LoopBack Models
Working with LoopBack ModelsRaymond Feng
19.4K views31 slides

More Related Content

What's hot

Visualizing Big Data Insights with Amazon QuickSight by
Visualizing Big Data Insights with Amazon QuickSightVisualizing Big Data Insights with Amazon QuickSight
Visualizing Big Data Insights with Amazon QuickSightAmazon Web Services
606 views22 slides
20160317 lagom sf scala by
20160317 lagom sf scala20160317 lagom sf scala
20160317 lagom sf scalashinolajla
1.7K views21 slides
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip) by
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)Shift Conference
90 views12 slides
Getting Started with the Node.js LoopBack APi Framework by
Getting Started with the Node.js LoopBack APi FrameworkGetting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkJimmy Guerrero
3.5K views16 slides
IndexedDB - An Efficient Way to Manage Data by
IndexedDB - An Efficient Way to Manage DataIndexedDB - An Efficient Way to Manage Data
IndexedDB - An Efficient Way to Manage Datasara stanford
321 views8 slides
Building Read Models using event streams by
Building Read Models using event streamsBuilding Read Models using event streams
Building Read Models using event streamsDenis Ivanov
346 views63 slides

What's hot(9)

Visualizing Big Data Insights with Amazon QuickSight by Amazon Web Services
Visualizing Big Data Insights with Amazon QuickSightVisualizing Big Data Insights with Amazon QuickSight
Visualizing Big Data Insights with Amazon QuickSight
20160317 lagom sf scala by shinolajla
20160317 lagom sf scala20160317 lagom sf scala
20160317 lagom sf scala
shinolajla1.7K views
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip) by Shift Conference
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)
Shift Conference90 views
Getting Started with the Node.js LoopBack APi Framework by Jimmy Guerrero
Getting Started with the Node.js LoopBack APi FrameworkGetting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi Framework
Jimmy Guerrero3.5K views
IndexedDB - An Efficient Way to Manage Data by sara stanford
IndexedDB - An Efficient Way to Manage DataIndexedDB - An Efficient Way to Manage Data
IndexedDB - An Efficient Way to Manage Data
sara stanford321 views
Building Read Models using event streams by Denis Ivanov
Building Read Models using event streamsBuilding Read Models using event streams
Building Read Models using event streams
Denis Ivanov346 views
Power BI For SharePointAdminsSLC by Steve Pucelik
Power BI For SharePointAdminsSLCPower BI For SharePointAdminsSLC
Power BI For SharePointAdminsSLC
Steve Pucelik116 views
Intro to Node.js (German) by Daniel Khan
Intro to Node.js (German)Intro to Node.js (German)
Intro to Node.js (German)
Daniel Khan156 views

Similar to Give Your JavaScript Apps Some Spine

Rich UIs with BackboneJs by
Rich UIs with BackboneJsRich UIs with BackboneJs
Rich UIs with BackboneJsJake Trent
742 views25 slides
From Backbone to Ember and Back(bone) Again by
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Againjonknapp
746 views55 slides
Introduction to backbone_js by
Introduction to backbone_jsIntroduction to backbone_js
Introduction to backbone_jsMohammed Saqib
870 views24 slides
You got your browser in my virtual machine by
You got your browser in my virtual machineYou got your browser in my virtual machine
You got your browser in my virtual machineEan Schuessler
102 views21 slides
Backbone introdunction by
Backbone introdunctionBackbone introdunction
Backbone introdunctionmzxbupt
669 views25 slides
Spark Summit San Francisco 2016 - Matei Zaharia Keynote: Apache Spark 2.0 by
Spark Summit San Francisco 2016 - Matei Zaharia Keynote: Apache Spark 2.0Spark Summit San Francisco 2016 - Matei Zaharia Keynote: Apache Spark 2.0
Spark Summit San Francisco 2016 - Matei Zaharia Keynote: Apache Spark 2.0Databricks
6.6K views16 slides

Similar to Give Your JavaScript Apps Some Spine(20)

Rich UIs with BackboneJs by Jake Trent
Rich UIs with BackboneJsRich UIs with BackboneJs
Rich UIs with BackboneJs
Jake Trent742 views
From Backbone to Ember and Back(bone) Again by jonknapp
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Again
jonknapp746 views
You got your browser in my virtual machine by Ean Schuessler
You got your browser in my virtual machineYou got your browser in my virtual machine
You got your browser in my virtual machine
Ean Schuessler102 views
Backbone introdunction by mzxbupt
Backbone introdunctionBackbone introdunction
Backbone introdunction
mzxbupt669 views
Spark Summit San Francisco 2016 - Matei Zaharia Keynote: Apache Spark 2.0 by Databricks
Spark Summit San Francisco 2016 - Matei Zaharia Keynote: Apache Spark 2.0Spark Summit San Francisco 2016 - Matei Zaharia Keynote: Apache Spark 2.0
Spark Summit San Francisco 2016 - Matei Zaharia Keynote: Apache Spark 2.0
Databricks6.6K views
Javascript Frameworks for Well Architected, Immersive Web Apps by dnelson-cs
Javascript Frameworks for Well Architected, Immersive Web AppsJavascript Frameworks for Well Architected, Immersive Web Apps
Javascript Frameworks for Well Architected, Immersive Web Apps
dnelson-cs739 views
React + Flux = Joy by John Need
React + Flux = JoyReact + Flux = Joy
React + Flux = Joy
John Need1.3K views
Backgrid - A Backbone Plugin by Neerav Mittal
Backgrid - A Backbone PluginBackgrid - A Backbone Plugin
Backgrid - A Backbone Plugin
Neerav Mittal663 views
Composing JSON-based Web APIs by Javier Canovas
Composing JSON-based Web APIsComposing JSON-based Web APIs
Composing JSON-based Web APIs
Javier Canovas1.5K views
Introducing Kafka's Streams API by confluent
Introducing Kafka's Streams APIIntroducing Kafka's Streams API
Introducing Kafka's Streams API
confluent4.9K views
MongoDB Evenings DC: Get MEAN and Lean with Docker and Kubernetes by MongoDB
MongoDB Evenings DC: Get MEAN and Lean with Docker and KubernetesMongoDB Evenings DC: Get MEAN and Lean with Docker and Kubernetes
MongoDB Evenings DC: Get MEAN and Lean with Docker and Kubernetes
MongoDB816 views
Assist software awesome scala by AssistSoftware
Assist software   awesome scalaAssist software   awesome scala
Assist software awesome scala
AssistSoftware472 views
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ... by MskDotNet Community
Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...

More from Lachlan Hardy

SydJS.com by
SydJS.comSydJS.com
SydJS.comLachlan Hardy
786 views51 slides
Yql && Raphaël by
Yql && RaphaëlYql && Raphaël
Yql && RaphaëlLachlan Hardy
901 views45 slides
GitHub for JavaScripters by
GitHub for JavaScriptersGitHub for JavaScripters
GitHub for JavaScriptersLachlan Hardy
938 views32 slides
The Open Web by
The Open WebThe Open Web
The Open WebLachlan Hardy
4.2K views148 slides
Serving Code Samples by
Serving Code SamplesServing Code Samples
Serving Code SamplesLachlan Hardy
639 views22 slides
The Open Web by
The Open WebThe Open Web
The Open WebLachlan Hardy
886 views178 slides

More from Lachlan Hardy(10)

GitHub for JavaScripters by Lachlan Hardy
GitHub for JavaScriptersGitHub for JavaScripters
GitHub for JavaScripters
Lachlan Hardy938 views
Improving Dashboards with open content sharing by Lachlan Hardy
Improving Dashboards with open content sharingImproving Dashboards with open content sharing
Improving Dashboards with open content sharing
Lachlan Hardy2K views
Local Government on the Open Web by Lachlan Hardy
Local Government on the Open WebLocal Government on the Open Web
Local Government on the Open Web
Lachlan Hardy2.1K views
Welcome to IE8 - Integrating Your Site With Internet Explorer 8 by Lachlan Hardy
Welcome to IE8 - Integrating Your Site With Internet Explorer 8Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Lachlan Hardy2.8K views

Recently uploaded

Piloting & Scaling Successfully With Microsoft Viva by
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft VivaRichard Harbridge
13 views160 slides
Democratising digital commerce in India-Report by
Democratising digital commerce in India-ReportDemocratising digital commerce in India-Report
Democratising digital commerce in India-ReportKapil Khandelwal (KK)
20 views161 slides
Scaling Knowledge Graph Architectures with AI by
Scaling Knowledge Graph Architectures with AIScaling Knowledge Graph Architectures with AI
Scaling Knowledge Graph Architectures with AIEnterprise Knowledge
50 views15 slides
Uni Systems for Power Platform.pptx by
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems S.M.S.A.
58 views21 slides
HTTP headers that make your website go faster - devs.gent November 2023 by
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023Thijs Feryn
26 views151 slides
Design Driven Network Assurance by
Design Driven Network AssuranceDesign Driven Network Assurance
Design Driven Network AssuranceNetwork Automation Forum
19 views42 slides

Recently uploaded(20)

Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
HTTP headers that make your website go faster - devs.gent November 2023 by Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn26 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10345 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays33 views
Future of AR - Facebook Presentation by ssuserb54b561
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
ssuserb54b56122 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays24 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson126 views
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab23 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software317 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院

Give Your JavaScript Apps Some Spine

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n