SlideShare a Scribd company logo
1 of 35
Download to read offline
The new way to
write a front-end
software.
JavaScript Applications Evolution
JS (alias Vanilla)
jQuery
Umbrella Js
…
AngularJS
Flux (React)
…
AngularJS 2
Redux
…
Js (alias Vanilla)
1995-2006 JS (simple, without libraries, `chior`)
★ No functions
★ Very bad memory management
★ Have alert command (yuhuu!)
★ Have the text blink feature
★ Have the change text color feature
★ Have the change background color feature
JavaScript Applications Evolution
JS (alias Vanilla)
jQuery
Umbrella Js
…
AngularJS
Flux (React)
…
AngularJS 2
Redux
…
Js (alias Vanilla)
2006 - 2981
★ jQuery revolutionising the javascript

programming.
★ Thanks to ECMAScript, jQuery received an

improvement on memory management.
★ Best DOM element selectors.
★ jQuery UI.
★ Hide/Show/Animation.
★ Function and “classes”.
★ Culture of “functional programming”.
★ jQuery remains the most widely 

used JavaScript library on the Web.
★ 1 or more js files.
JavaScript Applications Evolution
JS (alias Vanilla)
jQuery
Umbrella Js
…
AngularJS
Flux (React)
…
AngularJS 2
Redux
…
Js (alias Vanilla)
2010 - 2016
★ MVC Pattern
★ Real single page app
★ Modularization
★ HTML5 + SASS + JS = ♥
★ Grunt / Gulp ♥
★ Thousand of libraries (UI, helpers…)
★ 1 single js file (minified + uglified)
JavaScript Applications Evolution
JS (alias Vanilla)
jQuery
Umbrella Js
…
AngularJS
Flux (React)
…
AngularJS 2
Redux
…
Js (alias Vanilla)
2016 - 201?
★ Component Arhitecture
★ Best modularization
★ TypeScript + ECMAScript 6
★ Webpack
★ Server Side Rendering
★ Reactive Programming
★ Node Package Manager
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
MAIN PROJ
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
MAIN PROJ
if (… $#$^#@
DEV 2
git merge
SHARED MODULE
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
MAIN PROJ
if (… $#$^#@
DEV 2
git merge
SHARED MODULE
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)
MAIN PROJ
SHARED MODULE
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
AFTER 2 WEEKS

0 BUG
MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
AFTER 2 WEEKS

0 BUG
MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
DEPLOY DAY
1 pers
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
AFTER 2 WEEKS

0 BUG
MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
DEPLOY DAY
2 pers
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
AFTER 2 WEEKS

0 BUG
MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
DEPLOY DAY
n pers + (n+1) pers
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
AFTER 2 WEEKS

0 BUG
MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
DEPLOY DAY
n pers + (n+1) pers
A NEW PROJ AFTER 6 MONTHS
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
AFTER 2 WEEKS

0 BUG
MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
DEPLOY DAY
n pers + (n+1) pers
A NEW PROJ AFTER 6 MONTHS
PM
new app

We need an Auth system, also

we want to use the same ui element

like on project 1
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
AFTER 2 WEEKS

0 BUG
MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
DEPLOY DAY
n pers + (n+1) pers
A NEW PROJ AFTER 6 MONTHS
PM
new app

We need an Auth system, also

we want to use the same ui element

like on project 1
PROJect 1?

I am new …

ahh, OK. i see …

copy/paste … copy/paste
DEV 45
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
AFTER 2 WEEKS

0 BUG
MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
DEPLOY DAY
n pers + (n+1) pers
A NEW PROJ AFTER 6 MONTHS
PM
new app

We need an Auth system, also

we want to use the same ui element

like on project 1
PROJect 1?

I am new …

ahh, OK. i see …

copy/paste … copy/paste
DEV 45
AFTER 3 WEEKS
PM
$@#$@##$%!@#
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
AFTER 2 WEEKS

0 BUG
MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
DEPLOY DAY
n pers + (n+1) pers
A NEW PROJ AFTER 6 MONTHS
PM
new app

We need an Auth system, also

we want to use the same ui element

like on project 1
PROJect 1?

I am new …

ahh, OK. i see …

copy/paste … copy/paste
DEV 45
AFTER 3 WEEKS
PM
$@#$@##$%!@#
Yuppyyy

we have a new auth system
DEV 45
An example of an application architecture (2013-2014)
if (… $#$^#@
DEV 1
if (… $#$^#@
DEV 2
git merge
QA 1
WT…?

MAIN PROJ version?

SHARED MODULE version?

buuuug ON SHARED

rollback app(both)

OHHH NO … AUTHHH MODULE? NOW?
if (… $#$^#@
DEV 3
AUTH MODULE
MAIN PROJ
SHARED MODULE
AFTER 2 WEEKS

0 BUG
MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
DEPLOY DAY
n pers + (n+1) pers
A NEW PROJ AFTER 6 MONTHS
PM
new app

We need an Auth system, also

we want to use the same ui element

like on project 1
PROJect 1?

I am new …

ahh, OK. i see …

copy/paste … copy/paste
DEV 45
AFTER 3 WEEKS
PM
$@#$@##$%!@#
Yuppyyy

we have a new auth system
DEV 45
QA 81
hmm new module. ok.

in the next 2 weeks i will test this 

feature
So … times are
changing.
we need a new processes for development
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
MAIN PROJ
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
DEV 2
if (… $#$^#@
Shared module

master
MAIN PROJ
SHARED MODULE
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
DEV 2
if (… $#$^#@
Shared module

master
MAIN PROJ
SHARED MODULE
@bsf/main-proj@1.0.1 @bsf/shared@1.5.2
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
DEV 2
if (… $#$^#@
Shared module

master
AUTH MODULE
MAIN PROJ
SHARED MODULE
DEV 3
if (… $#$^#@
AUTH module

master
@bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
DEV 2
if (… $#$^#@
Shared module

master
AUTH MODULE
MAIN PROJ
SHARED MODULE
DEV 3
if (… $#$^#@
AUTH module

master
@bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
DEV 2
if (… $#$^#@
Shared module

master
AUTH MODULE
MAIN PROJ
SHARED MODULE
DEV 3
if (… $#$^#@
AUTH module

master
@bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2
npm install @bsf/auth@1.2.2
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
DEV 2
if (… $#$^#@
Shared module

master
AUTH MODULE
MAIN PROJ
SHARED MODULE
DEV 3
if (… $#$^#@
AUTH module

master
@bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2
npm install @bsf/auth@1.2.2
QA 1
bug on shared module

rollback to v1.4.0 & DEPLOY
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
DEV 2
if (… $#$^#@
Shared module

master
AUTH MODULE
MAIN PROJ
SHARED MODULE
DEV 3
if (… $#$^#@
AUTH module

master
@bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2
npm install @bsf/auth@1.2.2
QA 1
bug on shared module

rollback to v1.4.0 & DEPLOY
prod server

NPM RUN documentation

1.bundle.js (12kb) 2.bundle.js (22kb) …

nPm RUN deploy prod

NPM RUN dePLOY TEST

NPM TEST
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
DEV 2
if (… $#$^#@
Shared module

master
AUTH MODULE
MAIN PROJ
SHARED MODULE
DEV 3
if (… $#$^#@
AUTH module

master
@bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2
npm install @bsf/auth@1.2.2
QA 1
bug on shared module

rollback to v1.4.0 & DEPLOY
prod server

NPM RUN documentation

1.bundle.js (12kb) 2.bundle.js (22kb) …

nPm RUN deploy prod

NPM RUN dePLOY TEST

NPM TEST
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
DEV 2
if (… $#$^#@
Shared module

master
AUTH MODULE
MAIN PROJ
SHARED MODULE
DEV 3
if (… $#$^#@
AUTH module

master
@bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2
npm install @bsf/auth@1.2.2
QA 1
bug on shared module

rollback to v1.4.0 & DEPLOY
prod server

NPM RUN documentation

1.bundle.js (12kb) 2.bundle.js (22kb) …

nPm RUN deploy prod

NPM RUN dePLOY TEST

NPM TEST
PM
new app

We need an Auth …
An example of an application architecture (2014-201?)
if (… $#$^#@
DEV 1
MAIN PROJ

master
DEV 2
if (… $#$^#@
Shared module

master
AUTH MODULE
MAIN PROJ
SHARED MODULE
DEV 3
if (… $#$^#@
AUTH module

master
@bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2
npm install @bsf/auth@1.2.2
QA 1
bug on shared module

rollback to v1.4.0 & DEPLOY
prod server

NPM RUN documentation

1.bundle.js (12kb) 2.bundle.js (22kb) …

nPm RUN deploy prod

NPM RUN dePLOY TEST

NPM TEST
PM
new app

We need an Auth …
it is very easy to do:

Npm install @bsf/auth
Thanks for
watching!
Ionita Dragos Cristian
Business Software Frontend
https://www.linkedin.com/in/
dragos-ionita-8ab20756

More Related Content

What's hot

Dagger 2. Right way to do Dependency Injection
Dagger 2. Right way to do Dependency InjectionDagger 2. Right way to do Dependency Injection
Dagger 2. Right way to do Dependency InjectionStfalcon Meetups
 
Dagger 2. The Right Way to Dependency Injections
Dagger 2. The Right Way to Dependency InjectionsDagger 2. The Right Way to Dependency Injections
Dagger 2. The Right Way to Dependency InjectionsGlobalLogic Ukraine
 
Angular 2... so can I use it now??
Angular 2... so can I use it now??Angular 2... so can I use it now??
Angular 2... so can I use it now??Laurent Duveau
 
2 years of angular: lessons learned
2 years of angular: lessons learned2 years of angular: lessons learned
2 years of angular: lessons learnedDirk Luijk
 
Architecture for scalable Angular applications
Architecture for scalable Angular applicationsArchitecture for scalable Angular applications
Architecture for scalable Angular applicationsPaweł Żurowski
 
Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2Dhyego Fernando
 

What's hot (7)

Dagger 2. Right way to do Dependency Injection
Dagger 2. Right way to do Dependency InjectionDagger 2. Right way to do Dependency Injection
Dagger 2. Right way to do Dependency Injection
 
Dagger 2. The Right Way to Dependency Injections
Dagger 2. The Right Way to Dependency InjectionsDagger 2. The Right Way to Dependency Injections
Dagger 2. The Right Way to Dependency Injections
 
Angular 2... so can I use it now??
Angular 2... so can I use it now??Angular 2... so can I use it now??
Angular 2... so can I use it now??
 
2 years of angular: lessons learned
2 years of angular: lessons learned2 years of angular: lessons learned
2 years of angular: lessons learned
 
Dagger for dummies
Dagger for dummiesDagger for dummies
Dagger for dummies
 
Architecture for scalable Angular applications
Architecture for scalable Angular applicationsArchitecture for scalable Angular applications
Architecture for scalable Angular applications
 
Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2
 

Viewers also liked

Reactive programming - Observable
Reactive programming - ObservableReactive programming - Observable
Reactive programming - ObservableDragos Ionita
 
Hybrid Mobile Application with Ionic Framework
Hybrid Mobile Application with Ionic FrameworkHybrid Mobile Application with Ionic Framework
Hybrid Mobile Application with Ionic FrameworkDragos Ionita
 
Powerful JavaScript Tips and Best Practices
Powerful JavaScript Tips and Best PracticesPowerful JavaScript Tips and Best Practices
Powerful JavaScript Tips and Best PracticesDragos Ionita
 
Reactive Streams, j.u.concurrent & Beyond!
Reactive Streams, j.u.concurrent & Beyond!Reactive Streams, j.u.concurrent & Beyond!
Reactive Streams, j.u.concurrent & Beyond!Konrad Malawski
 
Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...Steve Pember
 
Google Tag Manager (GTM)
Google Tag Manager (GTM)Google Tag Manager (GTM)
Google Tag Manager (GTM)Dragos Ionita
 

Viewers also liked (6)

Reactive programming - Observable
Reactive programming - ObservableReactive programming - Observable
Reactive programming - Observable
 
Hybrid Mobile Application with Ionic Framework
Hybrid Mobile Application with Ionic FrameworkHybrid Mobile Application with Ionic Framework
Hybrid Mobile Application with Ionic Framework
 
Powerful JavaScript Tips and Best Practices
Powerful JavaScript Tips and Best PracticesPowerful JavaScript Tips and Best Practices
Powerful JavaScript Tips and Best Practices
 
Reactive Streams, j.u.concurrent & Beyond!
Reactive Streams, j.u.concurrent & Beyond!Reactive Streams, j.u.concurrent & Beyond!
Reactive Streams, j.u.concurrent & Beyond!
 
Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...
 
Google Tag Manager (GTM)
Google Tag Manager (GTM)Google Tag Manager (GTM)
Google Tag Manager (GTM)
 

Similar to Evolution of JavaScript Applications

Research @ RELEASeD (presented at SATTOSE2013)
Research @ RELEASeD (presented at SATTOSE2013)Research @ RELEASeD (presented at SATTOSE2013)
Research @ RELEASeD (presented at SATTOSE2013)kim.mens
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSGunnar Hillert
 
Building full-stack Node.js web apps with Visual Studio Code
Building full-stack Node.js web apps with Visual Studio CodeBuilding full-stack Node.js web apps with Visual Studio Code
Building full-stack Node.js web apps with Visual Studio CodeMicrosoft Tech Community
 
Myths of Angular 2: What Angular Really Is
Myths of Angular 2: What Angular Really IsMyths of Angular 2: What Angular Really Is
Myths of Angular 2: What Angular Really IsDevFest DC
 
Modeling Patterns for JavaScript Browser-Based Games
Modeling Patterns for JavaScript Browser-Based GamesModeling Patterns for JavaScript Browser-Based Games
Modeling Patterns for JavaScript Browser-Based GamesRay Toal
 
How to code to code less
How to code to code lessHow to code to code less
How to code to code lessAnton Novikau
 
Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016Steve Hoffman
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진VMware Tanzu Korea
 
Angular1x and Angular 2 for Beginners
Angular1x and Angular 2 for BeginnersAngular1x and Angular 2 for Beginners
Angular1x and Angular 2 for BeginnersOswald Campesato
 
Oracle GoldenGate Studio Intro
Oracle GoldenGate Studio IntroOracle GoldenGate Studio Intro
Oracle GoldenGate Studio IntroBobby Curtis
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekDr. Felix Raab
 
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Christian Catalan
 
Djangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable ApplicationsDjangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable ApplicationsNowell Strite
 
Angular JS 2_0 BCS CTO_in_Res V3
Angular JS 2_0 BCS CTO_in_Res V3Angular JS 2_0 BCS CTO_in_Res V3
Angular JS 2_0 BCS CTO_in_Res V3Bruce Pentreath
 
Refactoring Wunderlist. UA Mobile 2016.
Refactoring Wunderlist. UA Mobile 2016.Refactoring Wunderlist. UA Mobile 2016.
Refactoring Wunderlist. UA Mobile 2016.UA Mobile
 
From Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOSFrom Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOSSusan Potter
 
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...Codemotion
 

Similar to Evolution of JavaScript Applications (20)

Research @ RELEASeD (presented at SATTOSE2013)
Research @ RELEASeD (presented at SATTOSE2013)Research @ RELEASeD (presented at SATTOSE2013)
Research @ RELEASeD (presented at SATTOSE2013)
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJS
 
Building full-stack Node.js web apps with Visual Studio Code
Building full-stack Node.js web apps with Visual Studio CodeBuilding full-stack Node.js web apps with Visual Studio Code
Building full-stack Node.js web apps with Visual Studio Code
 
Myths of Angular 2: What Angular Really Is
Myths of Angular 2: What Angular Really IsMyths of Angular 2: What Angular Really Is
Myths of Angular 2: What Angular Really Is
 
Modularization in java 8
Modularization in java 8Modularization in java 8
Modularization in java 8
 
Modeling Patterns for JavaScript Browser-Based Games
Modeling Patterns for JavaScript Browser-Based GamesModeling Patterns for JavaScript Browser-Based Games
Modeling Patterns for JavaScript Browser-Based Games
 
How to code to code less
How to code to code lessHow to code to code less
How to code to code less
 
Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
 
What's New in Groovy 1.6?
What's New in Groovy 1.6?What's New in Groovy 1.6?
What's New in Groovy 1.6?
 
Angular1x and Angular 2 for Beginners
Angular1x and Angular 2 for BeginnersAngular1x and Angular 2 for Beginners
Angular1x and Angular 2 for Beginners
 
Oracle GoldenGate Studio Intro
Oracle GoldenGate Studio IntroOracle GoldenGate Studio Intro
Oracle GoldenGate Studio Intro
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
 
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
 
Djangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable ApplicationsDjangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable Applications
 
Angular JS 2_0 BCS CTO_in_Res V3
Angular JS 2_0 BCS CTO_in_Res V3Angular JS 2_0 BCS CTO_in_Res V3
Angular JS 2_0 BCS CTO_in_Res V3
 
Refactoring Wunderlist. UA Mobile 2016.
Refactoring Wunderlist. UA Mobile 2016.Refactoring Wunderlist. UA Mobile 2016.
Refactoring Wunderlist. UA Mobile 2016.
 
From Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOSFrom Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOS
 
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...
 
Play framework
Play frameworkPlay framework
Play framework
 

Recently uploaded

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 

Recently uploaded (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

Evolution of JavaScript Applications

  • 1. The new way to write a front-end software.
  • 2. JavaScript Applications Evolution JS (alias Vanilla) jQuery Umbrella Js … AngularJS Flux (React) … AngularJS 2 Redux … Js (alias Vanilla) 1995-2006 JS (simple, without libraries, `chior`) ★ No functions ★ Very bad memory management ★ Have alert command (yuhuu!) ★ Have the text blink feature ★ Have the change text color feature ★ Have the change background color feature
  • 3. JavaScript Applications Evolution JS (alias Vanilla) jQuery Umbrella Js … AngularJS Flux (React) … AngularJS 2 Redux … Js (alias Vanilla) 2006 - 2981 ★ jQuery revolutionising the javascript
 programming. ★ Thanks to ECMAScript, jQuery received an
 improvement on memory management. ★ Best DOM element selectors. ★ jQuery UI. ★ Hide/Show/Animation. ★ Function and “classes”. ★ Culture of “functional programming”. ★ jQuery remains the most widely 
 used JavaScript library on the Web. ★ 1 or more js files.
  • 4. JavaScript Applications Evolution JS (alias Vanilla) jQuery Umbrella Js … AngularJS Flux (React) … AngularJS 2 Redux … Js (alias Vanilla) 2010 - 2016 ★ MVC Pattern ★ Real single page app ★ Modularization ★ HTML5 + SASS + JS = ♥ ★ Grunt / Gulp ♥ ★ Thousand of libraries (UI, helpers…) ★ 1 single js file (minified + uglified)
  • 5. JavaScript Applications Evolution JS (alias Vanilla) jQuery Umbrella Js … AngularJS Flux (React) … AngularJS 2 Redux … Js (alias Vanilla) 2016 - 201? ★ Component Arhitecture ★ Best modularization ★ TypeScript + ECMAScript 6 ★ Webpack ★ Server Side Rendering ★ Reactive Programming ★ Node Package Manager
  • 6. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1
  • 7. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 MAIN PROJ
  • 8. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 MAIN PROJ if (… $#$^#@ DEV 2 git merge SHARED MODULE
  • 9. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 MAIN PROJ if (… $#$^#@ DEV 2 git merge SHARED MODULE QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both)
  • 10. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) MAIN PROJ SHARED MODULE
  • 11. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE
  • 12. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE AFTER 2 WEEKS 0 BUG MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB)
  • 13. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE AFTER 2 WEEKS 0 BUG MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB) DEPLOY DAY 1 pers
  • 14. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE AFTER 2 WEEKS 0 BUG MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB) DEPLOY DAY 2 pers
  • 15. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE AFTER 2 WEEKS 0 BUG MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB) DEPLOY DAY n pers + (n+1) pers
  • 16. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE AFTER 2 WEEKS 0 BUG MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB) DEPLOY DAY n pers + (n+1) pers A NEW PROJ AFTER 6 MONTHS
  • 17. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE AFTER 2 WEEKS 0 BUG MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB) DEPLOY DAY n pers + (n+1) pers A NEW PROJ AFTER 6 MONTHS PM new app
 We need an Auth system, also
 we want to use the same ui element
 like on project 1
  • 18. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE AFTER 2 WEEKS 0 BUG MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB) DEPLOY DAY n pers + (n+1) pers A NEW PROJ AFTER 6 MONTHS PM new app
 We need an Auth system, also
 we want to use the same ui element
 like on project 1 PROJect 1? I am new … ahh, OK. i see … copy/paste … copy/paste DEV 45
  • 19. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE AFTER 2 WEEKS 0 BUG MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB) DEPLOY DAY n pers + (n+1) pers A NEW PROJ AFTER 6 MONTHS PM new app
 We need an Auth system, also
 we want to use the same ui element
 like on project 1 PROJect 1? I am new … ahh, OK. i see … copy/paste … copy/paste DEV 45 AFTER 3 WEEKS PM $@#$@##$%!@#
  • 20. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE AFTER 2 WEEKS 0 BUG MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB) DEPLOY DAY n pers + (n+1) pers A NEW PROJ AFTER 6 MONTHS PM new app
 We need an Auth system, also
 we want to use the same ui element
 like on project 1 PROJect 1? I am new … ahh, OK. i see … copy/paste … copy/paste DEV 45 AFTER 3 WEEKS PM $@#$@##$%!@# Yuppyyy we have a new auth system DEV 45
  • 21. An example of an application architecture (2013-2014) if (… $#$^#@ DEV 1 if (… $#$^#@ DEV 2 git merge QA 1 WT…?
 MAIN PROJ version? SHARED MODULE version? buuuug ON SHARED rollback app(both) OHHH NO … AUTHHH MODULE? NOW? if (… $#$^#@ DEV 3 AUTH MODULE MAIN PROJ SHARED MODULE AFTER 2 WEEKS 0 BUG MIN, UGLY, GIT PULL ORIGIN MASTER => APP.PROD.JS (5844KB) DEPLOY DAY n pers + (n+1) pers A NEW PROJ AFTER 6 MONTHS PM new app
 We need an Auth system, also
 we want to use the same ui element
 like on project 1 PROJect 1? I am new … ahh, OK. i see … copy/paste … copy/paste DEV 45 AFTER 3 WEEKS PM $@#$@##$%!@# Yuppyyy we have a new auth system DEV 45 QA 81 hmm new module. ok. in the next 2 weeks i will test this 
 feature
  • 22. So … times are changing. we need a new processes for development
  • 23. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1
  • 24. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master MAIN PROJ
  • 25. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master DEV 2 if (… $#$^#@ Shared module master MAIN PROJ SHARED MODULE
  • 26. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master DEV 2 if (… $#$^#@ Shared module master MAIN PROJ SHARED MODULE @bsf/main-proj@1.0.1 @bsf/shared@1.5.2
  • 27. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master DEV 2 if (… $#$^#@ Shared module master AUTH MODULE MAIN PROJ SHARED MODULE DEV 3 if (… $#$^#@ AUTH module master @bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2
  • 28. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master DEV 2 if (… $#$^#@ Shared module master AUTH MODULE MAIN PROJ SHARED MODULE DEV 3 if (… $#$^#@ AUTH module master @bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2
  • 29. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master DEV 2 if (… $#$^#@ Shared module master AUTH MODULE MAIN PROJ SHARED MODULE DEV 3 if (… $#$^#@ AUTH module master @bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2 npm install @bsf/auth@1.2.2
  • 30. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master DEV 2 if (… $#$^#@ Shared module master AUTH MODULE MAIN PROJ SHARED MODULE DEV 3 if (… $#$^#@ AUTH module master @bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2 npm install @bsf/auth@1.2.2 QA 1 bug on shared module rollback to v1.4.0 & DEPLOY
  • 31. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master DEV 2 if (… $#$^#@ Shared module master AUTH MODULE MAIN PROJ SHARED MODULE DEV 3 if (… $#$^#@ AUTH module master @bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2 npm install @bsf/auth@1.2.2 QA 1 bug on shared module rollback to v1.4.0 & DEPLOY prod server
 NPM RUN documentation
 1.bundle.js (12kb) 2.bundle.js (22kb) …
 nPm RUN deploy prod
 NPM RUN dePLOY TEST
 NPM TEST
  • 32. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master DEV 2 if (… $#$^#@ Shared module master AUTH MODULE MAIN PROJ SHARED MODULE DEV 3 if (… $#$^#@ AUTH module master @bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2 npm install @bsf/auth@1.2.2 QA 1 bug on shared module rollback to v1.4.0 & DEPLOY prod server
 NPM RUN documentation
 1.bundle.js (12kb) 2.bundle.js (22kb) …
 nPm RUN deploy prod
 NPM RUN dePLOY TEST
 NPM TEST
  • 33. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master DEV 2 if (… $#$^#@ Shared module master AUTH MODULE MAIN PROJ SHARED MODULE DEV 3 if (… $#$^#@ AUTH module master @bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2 npm install @bsf/auth@1.2.2 QA 1 bug on shared module rollback to v1.4.0 & DEPLOY prod server
 NPM RUN documentation
 1.bundle.js (12kb) 2.bundle.js (22kb) …
 nPm RUN deploy prod
 NPM RUN dePLOY TEST
 NPM TEST PM new app
 We need an Auth …
  • 34. An example of an application architecture (2014-201?) if (… $#$^#@ DEV 1 MAIN PROJ master DEV 2 if (… $#$^#@ Shared module master AUTH MODULE MAIN PROJ SHARED MODULE DEV 3 if (… $#$^#@ AUTH module master @bsf/main-proj@1.0.1 @bsf/shared@1.5.2 @bsf/auth@1.2.2 npm install @bsf/auth@1.2.2 QA 1 bug on shared module rollback to v1.4.0 & DEPLOY prod server
 NPM RUN documentation
 1.bundle.js (12kb) 2.bundle.js (22kb) …
 nPm RUN deploy prod
 NPM RUN dePLOY TEST
 NPM TEST PM new app
 We need an Auth … it is very easy to do: Npm install @bsf/auth
  • 35. Thanks for watching! Ionita Dragos Cristian Business Software Frontend https://www.linkedin.com/in/ dragos-ionita-8ab20756