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

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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

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