SlideShare a Scribd company logo
1 of 33
How we at Adobe put our application on
steroids…
 Harshit Jain
◦ Developer at Adobe.
◦ Web developer for 2 years with a passion for good UI/UX.
◦ Likes solving usability and performance issues with his team.
◦ Enjoys music and playing his guitar in his free time.
◦ Loves hacking away on new libraries and frameworks, trying to
figure out if he can use it for his next project.
2
 And these were just the ones that we could measure..
 Shocked?! So were we..
3
Before After
Page load time 3 sec ~ 0.5 sec
Weird unexplained bugs > 15 < 5
Network Time (combined) 40 sec 10 sec
Module UI redesign time 1 week ½ day
Let’s see how we did it…
4
5
 Un-opinionated
 Separates data from your view
 Models
 Collections
 Modular
6
 Model : Handles business logic and data
 Collection : Array of models
 View : User Interface
 Event : Actions on UI elements
 Routing : Navigation to application sub-modules
7
8
But we felt something was
missing…
9
10
Backbone
Handling Zombie Views 
Complex View
Management

Messaging Channels 
That we needed…
11
Backbone Marionette
Handling Zombie Views  
Complex View
Management
 
Messaging Channels  
And thus began our love affair
with Marionette…
12
13
INITIALIZE
RENDER
DESTROY
ATTACH
SHOW
THE VIEWS :
 Item View
 Collection View
 Composite View
 Layout View
14
ITEM VIEW
COLLECTION VIEW
LAYOUT VIEW
COMPOSITE VIEW
THE ITEM VIEW
 View that represents a single item.
15
ITEM VIEW
COLLECTION VIEW
LAYOUT VIEW
COMPOSITE VIEW
THE COLLECTION
VIEW
 Collection of
multiple item views.
16
ITEM VIEW
COLLECTION VIEW
LAYOUT VIEW
COMPOSITE VIEW
THE COMPOSITE VIEW
 Collection View
with a template.
17
ITEM VIEW
COLLECTION VIEW
LAYOUT VIEW
COMPOSITE VIEW
THE LAYOUT VIEW
 Big Daddy of all
views
 Contains multiple
regions
 A region can be
mapped to a view
module
18
ITEM VIEW
COLLECTION VIEW
LAYOUT VIEW
COMPOSITE VIEW
19
And we thought…
Why not…
 Marionette by design treats all views as small,
reusable entities.
 Views consist of
◦ A Model/A Collection
◦ A Template
◦ Accompanying styling
◦ Events
 Marionette conveniently bundles all these together
so that they can be reused as many times as a
developer wants
20
 Method and procedure to achieve reusability
in Marionette:
◦ Attach view to a region
That’s it…Seriously!!
21
22
Taking it to the next level…
 Marionette detaches the code for the View
from the business logic
 Painful UI modifications will now be a thing of
the past
 Just switch the UI template and all the
underlying logic works as before
23
24
So… What’s Next??
 The next Marionette version will come along with a
messaging library: Backbone.Radio
 But the library is available to use with the current
version also
 Requests unlike events generally want something
(data or action to be performed)
25
26
Requester
Responder
Requester
Requester
Request “R1”
Response
27
28
It was fast…
But not fast enough!
 It’s an internal add-on we are creating for
Backbone.Radio
 Why???
◦ Radio request-reply loops usually take some
time
◦ It can be either processing time or network
time
◦ And guess who solves this problem!! The
mighty Cacheable Radio!!
29
 It acts as a wrapper over the regular
Backbone.Radio library
 Saves time by browser-caching radio
requests (avoiding unnecessary server calls)
 It also has an in-built function to invalidate
stored data if a fresh API call is required
30
31
Request
Request
Request
Time
Consuming
Responder
Cacheable
Radio
@harshit040591
33

More Related Content

Similar to JSFoo Backbone Updated

IWMW 1998: Dataweb: Three Worlds Colide
IWMW 1998: Dataweb: Three Worlds ColideIWMW 1998: Dataweb: Three Worlds Colide
IWMW 1998: Dataweb: Three Worlds ColideIWMW
 
Enterprise UI/UX - design as code
Enterprise UI/UX - design as codeEnterprise UI/UX - design as code
Enterprise UI/UX - design as codeWorks Applications
 
Clean Architecture in Android. UPTech TechTalk
Clean Architecture in Android. UPTech TechTalkClean Architecture in Android. UPTech TechTalk
Clean Architecture in Android. UPTech TechTalkHalyna Halkina
 
Frontend Development Bootcamp - React [Online & Offline] In Bangla
Frontend Development Bootcamp - React [Online & Offline] In BanglaFrontend Development Bootcamp - React [Online & Offline] In Bangla
Frontend Development Bootcamp - React [Online & Offline] In BanglaStack Learner
 
Professional web development with libraries
Professional web development with librariesProfessional web development with libraries
Professional web development with librariesChristian Heilmann
 
Webinar: Design Patterns : Tailor-made solutions for Software Development
Webinar: Design Patterns : Tailor-made solutions for Software DevelopmentWebinar: Design Patterns : Tailor-made solutions for Software Development
Webinar: Design Patterns : Tailor-made solutions for Software DevelopmentEdureka!
 
There's Apps for that
There's Apps for thatThere's Apps for that
There's Apps for thatAndreas Weder
 
React.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UIReact.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UIMarcin Grzywaczewski
 
Js foo - Sept 8 upload
Js foo - Sept 8 uploadJs foo - Sept 8 upload
Js foo - Sept 8 uploadDebnath Sinha
 
Design Patterns - The Ultimate Blueprint for Software
Design Patterns - The Ultimate Blueprint for SoftwareDesign Patterns - The Ultimate Blueprint for Software
Design Patterns - The Ultimate Blueprint for SoftwareEdureka!
 
Android architecture and Additional Components
Android architecture and Additional ComponentsAndroid architecture and Additional Components
Android architecture and Additional ComponentsSoftNutx
 
Taming Complexity: Drupal 8 UX
Taming Complexity: Drupal 8 UXTaming Complexity: Drupal 8 UX
Taming Complexity: Drupal 8 UXWunderkraut
 
Building innovation community sites in sharepoint 2013
Building innovation community sites in sharepoint 2013Building innovation community sites in sharepoint 2013
Building innovation community sites in sharepoint 2013Frank Hatzack
 
Companion App Design with Qt
Companion App Design with QtCompanion App Design with Qt
Companion App Design with QtQt
 
Design System & Atomic Design
Design System & Atomic DesignDesign System & Atomic Design
Design System & Atomic Designeggcellent
 
Microsoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight ExperiencesMicrosoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight ExperiencesNicklas Andersson
 

Similar to JSFoo Backbone Updated (20)

React for non techies
React for non techiesReact for non techies
React for non techies
 
IWMW 1998: Dataweb: Three Worlds Colide
IWMW 1998: Dataweb: Three Worlds ColideIWMW 1998: Dataweb: Three Worlds Colide
IWMW 1998: Dataweb: Three Worlds Colide
 
Enterprise UI/UX - design as code
Enterprise UI/UX - design as codeEnterprise UI/UX - design as code
Enterprise UI/UX - design as code
 
Clean Architecture in Android. UPTech TechTalk
Clean Architecture in Android. UPTech TechTalkClean Architecture in Android. UPTech TechTalk
Clean Architecture in Android. UPTech TechTalk
 
Frontend Development Bootcamp - React [Online & Offline] In Bangla
Frontend Development Bootcamp - React [Online & Offline] In BanglaFrontend Development Bootcamp - React [Online & Offline] In Bangla
Frontend Development Bootcamp - React [Online & Offline] In Bangla
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 
Professional web development with libraries
Professional web development with librariesProfessional web development with libraries
Professional web development with libraries
 
Webinar: Design Patterns : Tailor-made solutions for Software Development
Webinar: Design Patterns : Tailor-made solutions for Software DevelopmentWebinar: Design Patterns : Tailor-made solutions for Software Development
Webinar: Design Patterns : Tailor-made solutions for Software Development
 
There's Apps for that
There's Apps for thatThere's Apps for that
There's Apps for that
 
React.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UIReact.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UI
 
Js foo - Sept 8 upload
Js foo - Sept 8 uploadJs foo - Sept 8 upload
Js foo - Sept 8 upload
 
Design Patterns - The Ultimate Blueprint for Software
Design Patterns - The Ultimate Blueprint for SoftwareDesign Patterns - The Ultimate Blueprint for Software
Design Patterns - The Ultimate Blueprint for Software
 
Android architecture and Additional Components
Android architecture and Additional ComponentsAndroid architecture and Additional Components
Android architecture and Additional Components
 
Taming Complexity: Drupal 8 UX
Taming Complexity: Drupal 8 UXTaming Complexity: Drupal 8 UX
Taming Complexity: Drupal 8 UX
 
Building innovation community sites in sharepoint 2013
Building innovation community sites in sharepoint 2013Building innovation community sites in sharepoint 2013
Building innovation community sites in sharepoint 2013
 
Companion App Design with Qt
Companion App Design with QtCompanion App Design with Qt
Companion App Design with Qt
 
Design System & Atomic Design
Design System & Atomic DesignDesign System & Atomic Design
Design System & Atomic Design
 
Design Based Dev
Design Based DevDesign Based Dev
Design Based Dev
 
Microsoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight ExperiencesMicrosoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight Experiences
 
Design usability together
Design usability togetherDesign usability together
Design usability together
 

Recently uploaded

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

JSFoo Backbone Updated

  • 1. How we at Adobe put our application on steroids…
  • 2.  Harshit Jain ◦ Developer at Adobe. ◦ Web developer for 2 years with a passion for good UI/UX. ◦ Likes solving usability and performance issues with his team. ◦ Enjoys music and playing his guitar in his free time. ◦ Loves hacking away on new libraries and frameworks, trying to figure out if he can use it for his next project. 2
  • 3.  And these were just the ones that we could measure..  Shocked?! So were we.. 3 Before After Page load time 3 sec ~ 0.5 sec Weird unexplained bugs > 15 < 5 Network Time (combined) 40 sec 10 sec Module UI redesign time 1 week ½ day
  • 4. Let’s see how we did it… 4
  • 5. 5
  • 6.  Un-opinionated  Separates data from your view  Models  Collections  Modular 6
  • 7.  Model : Handles business logic and data  Collection : Array of models  View : User Interface  Event : Actions on UI elements  Routing : Navigation to application sub-modules 7
  • 8. 8
  • 9. But we felt something was missing… 9
  • 10. 10 Backbone Handling Zombie Views  Complex View Management  Messaging Channels  That we needed…
  • 11. 11 Backbone Marionette Handling Zombie Views   Complex View Management   Messaging Channels  
  • 12. And thus began our love affair with Marionette… 12
  • 14. THE VIEWS :  Item View  Collection View  Composite View  Layout View 14 ITEM VIEW COLLECTION VIEW LAYOUT VIEW COMPOSITE VIEW
  • 15. THE ITEM VIEW  View that represents a single item. 15 ITEM VIEW COLLECTION VIEW LAYOUT VIEW COMPOSITE VIEW
  • 16. THE COLLECTION VIEW  Collection of multiple item views. 16 ITEM VIEW COLLECTION VIEW LAYOUT VIEW COMPOSITE VIEW
  • 17. THE COMPOSITE VIEW  Collection View with a template. 17 ITEM VIEW COLLECTION VIEW LAYOUT VIEW COMPOSITE VIEW
  • 18. THE LAYOUT VIEW  Big Daddy of all views  Contains multiple regions  A region can be mapped to a view module 18 ITEM VIEW COLLECTION VIEW LAYOUT VIEW COMPOSITE VIEW
  • 20.  Marionette by design treats all views as small, reusable entities.  Views consist of ◦ A Model/A Collection ◦ A Template ◦ Accompanying styling ◦ Events  Marionette conveniently bundles all these together so that they can be reused as many times as a developer wants 20
  • 21.  Method and procedure to achieve reusability in Marionette: ◦ Attach view to a region That’s it…Seriously!! 21
  • 22. 22 Taking it to the next level…
  • 23.  Marionette detaches the code for the View from the business logic  Painful UI modifications will now be a thing of the past  Just switch the UI template and all the underlying logic works as before 23
  • 25.  The next Marionette version will come along with a messaging library: Backbone.Radio  But the library is available to use with the current version also  Requests unlike events generally want something (data or action to be performed) 25
  • 27. 27
  • 28. 28 It was fast… But not fast enough!
  • 29.  It’s an internal add-on we are creating for Backbone.Radio  Why??? ◦ Radio request-reply loops usually take some time ◦ It can be either processing time or network time ◦ And guess who solves this problem!! The mighty Cacheable Radio!! 29
  • 30.  It acts as a wrapper over the regular Backbone.Radio library  Saves time by browser-caching radio requests (avoiding unnecessary server calls)  It also has an in-built function to invalidate stored data if a fresh API call is required 30
  • 33. 33