SlideShare a Scribd company logo
Learn how to architect,
not just framework
Javascript framework overview
Why jQuery is not enough
Let’s assume that we need remote registration form. Pretty simple one..
$(‘#register.btn’).click(function(e) {
e.preventDefault();
var data = {username: $(‘#username’).val(), fullname: $(‘#fullname’).val};
$.ajax({
type: “post”,
url: “/register”,
data: data
})
})
It doesn’t look difficult...
However today is not a year 2000..
That’s why our form should be able to:
1. Check username availability while user types it
2. Show message that username is unavailable
3. Show the indicator when checking is in progress
4. Block registration button until all required fields are filled
5. Block registration button until username is unavailable
6. Block registration button until checking is not performed
7. Prevent double submit
8. Show indicator while registration is performing
9. Show feedback
In general it is something like that:
Existent JS framework solutions
1. MVC - Ember, Angular, Backbone...
2. Flux - Flux, ReFlux, Marty, Delorean, McFly, …
3. Reactive(do not mix up with react.js) - Rx, Bacon, Kefir
4. Reactive + Flux, Reactive + MVC - rx-flux, react-flux, thundercats,
RxEmber
It is obviously that we
need architecture
1. Define application status by url
2. Save data and interact with server
3. Keep application up-to-date - when data is changed it should be
displayed and vice versa, when user does something data should be
changed accordingly
4. Application architecture should be accurate - all elements in proper
place
5. Suggest solutions for basic features
Which problems should framework solve
MVC using Ember.js as a example - status change
1. URL is changed
2. Router chooses condition
3. Model is linked to
controller
4. HTML elements are
linked to controller
States
Controllers Models
Views HTML
MVC using Ember.js as an example - events peocessing
1. User generates an
event
2. Appropriate engine is
searched in current
context (it can be in
View or Controller or
Route)
3. Event changes model
4. Model is aware about
all linked data and
changes them as well
5. Changes render HTML
States
Controllers Models
Views/Components HTML
Связь идет через методы
Flux architecture
1. User generates Event
2. View is subscribed to Store
changes
3. View gets Event and creates
Action.
4. Dispatcher gets Action,
determines what should be done.
5. Dispatcher requests required
Store methods
6. Store changes saved data
7. Store reports that data is updated
8. Subscribed Views get new data
from Store and show new
interface.
HTML
View
ActionCreator
Dispatcher
Store 1
Store 2
Data
Observers
Javascript event(onClick)
Action: addItem
Observers
Reactive architecture HTML
View
Dispatcher
Storage
HTML
View
HTML
View
Stream
1. View generates Actions
which fall into Stream
2. Stream falls into
Dispatcher
3. Being filtered and
intersected streams
generate conditions
system
4. Observers are
subscribed to Conditions
5. After Condition is being
performed Observer
changes database
6. And changes View.
7. View renders HTML
Code examples
1. http://todomvc.com/examples/emberjs/
2. https://github.com/facebook/flux/tree/master/examples/flux-todomvc
3. https://github.com/AlexMost/RxReact/tree/master/hello_world/hello_world
4. https://github.
com/AlexMost/RxReact/tree/master/hello_world2/hello_world2

More Related Content

What's hot (19)

PDF
Ember.js for Big Profit
CodeCore
 
PDF
Introduction to Angularjs : kishan kumar
Appfinz Technologies
 
PPTX
Part 26 login type2 using binding source count
Girija Muscut
 
PPTX
Introduction to react js
Aeshan Wijetunge
 
PPTX
Jsp session 3
Anuj Singh Rajput
 
PPTX
Adventures in Facebook®: Lessons Learned from a Landmark webOS App
Kevin Decker
 
PPT
Ajax Highlights
Sharvan Kumar
 
PDF
ajax_pdf
tutorialsruby
 
PPTX
Starting with angular js
jagriti srivastava
 
PPTX
Part23 parameter query using multiple record vb.net
Girija Muscut
 
PPTX
Introduction to AngularJS
David Parsons
 
PPTX
Part24 filter using string or char search in vb.net
Girija Muscut
 
PDF
AngularJS: Overview & Key Features
Mohamad Al Asmar
 
PPTX
Html web workers
AbhishekMondal42
 
PDF
"Ruby meets Event Sourcing" by Anton Paisov
Pivorak MeetUp
 
PDF
Trailblazer Introduction by Nick Sutterer
Pivorak MeetUp
 
PPT
Jsp intro
husnara mohammad
 
ODP
Wellrailed - Be9's Acl9
breccan
 
PPT
ASP.net MVC CodeCamp Presentation
buildmaster
 
Ember.js for Big Profit
CodeCore
 
Introduction to Angularjs : kishan kumar
Appfinz Technologies
 
Part 26 login type2 using binding source count
Girija Muscut
 
Introduction to react js
Aeshan Wijetunge
 
Jsp session 3
Anuj Singh Rajput
 
Adventures in Facebook®: Lessons Learned from a Landmark webOS App
Kevin Decker
 
Ajax Highlights
Sharvan Kumar
 
ajax_pdf
tutorialsruby
 
Starting with angular js
jagriti srivastava
 
Part23 parameter query using multiple record vb.net
Girija Muscut
 
Introduction to AngularJS
David Parsons
 
Part24 filter using string or char search in vb.net
Girija Muscut
 
AngularJS: Overview & Key Features
Mohamad Al Asmar
 
Html web workers
AbhishekMondal42
 
"Ruby meets Event Sourcing" by Anton Paisov
Pivorak MeetUp
 
Trailblazer Introduction by Nick Sutterer
Pivorak MeetUp
 
Jsp intro
husnara mohammad
 
Wellrailed - Be9's Acl9
breccan
 
ASP.net MVC CodeCamp Presentation
buildmaster
 

Viewers also liked (12)

PDF
Kubernetes - training micro-dragons without getting burnt
Amir Moghimi
 
PDF
Scaling docker with kubernetes
Liran Cohen
 
PDF
Demystifying kubernetes
Works Applications
 
PDF
Kubernetes in 20 minutes - HDE Monthly Technical Session 24
lestrrat
 
PPTX
Kubernetes CI/CD with Helm
Adnan Abdulhussein
 
PDF
Container Orchestration Wars
Karl Isenberg
 
PDF
Endocode Kubernetes Meetup: Architecture Patterns for Microservices in Kubern...
Thomas Fricke
 
PDF
Idea to Production - with Gitlab and Kubernetes
Simon Dittlmann
 
PDF
How to Monitor Microservices
Sysdig
 
PPTX
Stateful set in kubernetes implementation & usecases
Krishna-Kumar
 
PDF
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
Arjen Wassink
 
PPTX
K8S in prod
Mageshwaran Rajendran
 
Kubernetes - training micro-dragons without getting burnt
Amir Moghimi
 
Scaling docker with kubernetes
Liran Cohen
 
Demystifying kubernetes
Works Applications
 
Kubernetes in 20 minutes - HDE Monthly Technical Session 24
lestrrat
 
Kubernetes CI/CD with Helm
Adnan Abdulhussein
 
Container Orchestration Wars
Karl Isenberg
 
Endocode Kubernetes Meetup: Architecture Patterns for Microservices in Kubern...
Thomas Fricke
 
Idea to Production - with Gitlab and Kubernetes
Simon Dittlmann
 
How to Monitor Microservices
Sysdig
 
Stateful set in kubernetes implementation & usecases
Krishna-Kumar
 
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
Arjen Wassink
 
Ad

Similar to JavaScript framework overview (20)

PPTX
Flux memo
Nakaya Makoto
 
PDF
TPSE Thailand 2015 - Rethinking Web with React and Flux
Jirat Kijlerdpornpailoj
 
PDF
Flux Architecture 1 edition Edition Boduch
hainaneleyev
 
PDF
Flux architecture and Redux - theory, context and practice
Jakub Kocikowski
 
PPTX
React.js at Cortex
Geoff Harcourt
 
PDF
Flux Architecture 1 edition Edition Boduch
wiehnmoisaqv
 
PDF
Daniel Steigerwald - Este.js - konec velkého Schizma
Develcz
 
PPTX
Flux and React.js
sara stanford
 
PPT
Intro to SPA using JavaScript & ASP.NET
Alan Hecht
 
PDF
Ember,js: Hipster Hamster Framework
Billy Shih
 
PDF
From Back to Front: Rails To React Family
Khor SoonHin
 
PDF
Viktor Turskyi "Effective NodeJS Application Development"
Fwdays
 
PDF
"The working architecture of NodeJs applications" Viktor Turskyi
Julia Cherniak
 
PDF
Instant download Flux Architecture 1 edition Edition Boduch pdf all chapter
shpresshyon
 
PPTX
Single Page Application JS Framework Round up
Frank Duan
 
PDF
MVC architecture
Emily Bauman
 
PDF
The working architecture of NodeJS applications, Виктор Турский
Sigma Software
 
PDF
The working architecture of node js applications open tech week javascript ...
Viktor Turskyi
 
PDF
Front end architecture patterns
Oleksandr Tryshchenko
 
Flux memo
Nakaya Makoto
 
TPSE Thailand 2015 - Rethinking Web with React and Flux
Jirat Kijlerdpornpailoj
 
Flux Architecture 1 edition Edition Boduch
hainaneleyev
 
Flux architecture and Redux - theory, context and practice
Jakub Kocikowski
 
React.js at Cortex
Geoff Harcourt
 
Flux Architecture 1 edition Edition Boduch
wiehnmoisaqv
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Develcz
 
Flux and React.js
sara stanford
 
Intro to SPA using JavaScript & ASP.NET
Alan Hecht
 
Ember,js: Hipster Hamster Framework
Billy Shih
 
From Back to Front: Rails To React Family
Khor SoonHin
 
Viktor Turskyi "Effective NodeJS Application Development"
Fwdays
 
"The working architecture of NodeJs applications" Viktor Turskyi
Julia Cherniak
 
Instant download Flux Architecture 1 edition Edition Boduch pdf all chapter
shpresshyon
 
Single Page Application JS Framework Round up
Frank Duan
 
MVC architecture
Emily Bauman
 
The working architecture of NodeJS applications, Виктор Турский
Sigma Software
 
The working architecture of node js applications open tech week javascript ...
Viktor Turskyi
 
Front end architecture patterns
Oleksandr Tryshchenko
 
Ad

Recently uploaded (20)

PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 

JavaScript framework overview

  • 1. Learn how to architect, not just framework Javascript framework overview
  • 2. Why jQuery is not enough Let’s assume that we need remote registration form. Pretty simple one.. $(‘#register.btn’).click(function(e) { e.preventDefault(); var data = {username: $(‘#username’).val(), fullname: $(‘#fullname’).val}; $.ajax({ type: “post”, url: “/register”, data: data }) }) It doesn’t look difficult...
  • 3. However today is not a year 2000.. That’s why our form should be able to: 1. Check username availability while user types it 2. Show message that username is unavailable 3. Show the indicator when checking is in progress 4. Block registration button until all required fields are filled 5. Block registration button until username is unavailable 6. Block registration button until checking is not performed 7. Prevent double submit 8. Show indicator while registration is performing 9. Show feedback
  • 4. In general it is something like that:
  • 5. Existent JS framework solutions 1. MVC - Ember, Angular, Backbone... 2. Flux - Flux, ReFlux, Marty, Delorean, McFly, … 3. Reactive(do not mix up with react.js) - Rx, Bacon, Kefir 4. Reactive + Flux, Reactive + MVC - rx-flux, react-flux, thundercats, RxEmber It is obviously that we need architecture
  • 6. 1. Define application status by url 2. Save data and interact with server 3. Keep application up-to-date - when data is changed it should be displayed and vice versa, when user does something data should be changed accordingly 4. Application architecture should be accurate - all elements in proper place 5. Suggest solutions for basic features Which problems should framework solve
  • 7. MVC using Ember.js as a example - status change 1. URL is changed 2. Router chooses condition 3. Model is linked to controller 4. HTML elements are linked to controller States Controllers Models Views HTML
  • 8. MVC using Ember.js as an example - events peocessing 1. User generates an event 2. Appropriate engine is searched in current context (it can be in View or Controller or Route) 3. Event changes model 4. Model is aware about all linked data and changes them as well 5. Changes render HTML States Controllers Models Views/Components HTML Связь идет через методы
  • 9. Flux architecture 1. User generates Event 2. View is subscribed to Store changes 3. View gets Event and creates Action. 4. Dispatcher gets Action, determines what should be done. 5. Dispatcher requests required Store methods 6. Store changes saved data 7. Store reports that data is updated 8. Subscribed Views get new data from Store and show new interface. HTML View ActionCreator Dispatcher Store 1 Store 2 Data Observers Javascript event(onClick) Action: addItem
  • 10. Observers Reactive architecture HTML View Dispatcher Storage HTML View HTML View Stream 1. View generates Actions which fall into Stream 2. Stream falls into Dispatcher 3. Being filtered and intersected streams generate conditions system 4. Observers are subscribed to Conditions 5. After Condition is being performed Observer changes database 6. And changes View. 7. View renders HTML
  • 11. Code examples 1. http://todomvc.com/examples/emberjs/ 2. https://github.com/facebook/flux/tree/master/examples/flux-todomvc 3. https://github.com/AlexMost/RxReact/tree/master/hello_world/hello_world 4. https://github. com/AlexMost/RxReact/tree/master/hello_world2/hello_world2