Top Banner
Lorenzo Sicilia - @aboutlo javascript workflow evolution
45
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Javascript Worflow Evolution

Lorenzo Sicilia - @aboutlo

javascript workflow

evolution

Page 2: Javascript Worflow Evolution

Hi, I’m Lorenzo SiciliaCurrently …

Page 3: Javascript Worflow Evolution

as co-founder

Page 4: Javascript Worflow Evolution

the graphic recording marketplace - explainer videos, e-learning pills, micro-contents, presentations & more -

Page 5: Javascript Worflow Evolution

as dev

Page 6: Javascript Worflow Evolution

London

Milan

Page 7: Javascript Worflow Evolution
Page 8: Javascript Worflow Evolution
Page 9: Javascript Worflow Evolution
Page 10: Javascript Worflow Evolution
Page 11: Javascript Worflow Evolution

PREVIOUSLY ( < 2009 )

Page 12: Javascript Worflow Evolution

12

TOOLS

Page 13: Javascript Worflow Evolution

13

Mainly JS as Enhancement

Page 14: Javascript Worflow Evolution

14

Then

JSConf on November 8, 2009 by Ryan Dahl

In 2011, a JS package manager

Page 15: Javascript Worflow Evolution

15

EVOLUTION of the web

Page 16: Javascript Worflow Evolution
Page 17: Javascript Worflow Evolution

17

package Managers

BowerNPM jspm

Page 18: Javascript Worflow Evolution

18

Modules / bundler- commonjs, amd, es6 modules-

SystemJS

Page 19: Javascript Worflow Evolution

19

PIPELINE - manage complexity-

Gulp BroccoliGrunt NPM

Page 20: Javascript Worflow Evolution

20

Scaffolding - easy bootstrap-

Yeoman / Grunt Slush / Gulp

Page 21: Javascript Worflow Evolution

21

TRANSPILERS

ES5

ES7

TODAY

NEXT

Page 22: Javascript Worflow Evolution

22

SYNTAX Checkers

New

Old

Page 23: Javascript Worflow Evolution

23

Pre-processor (css)

postcss

Page 24: Javascript Worflow Evolution

24

TEsting

Services

Tools

Karma Selenium

Rainforest

jest

frameworks

jasmine

Page 25: Javascript Worflow Evolution

25

DEPLOY • source mapping (css, js) • local testing

DEVelopmeNt

Testing

STAGING / PRODUCTION

• source mapping (css, js) • CI testing

• gzip • uglify • css minifier • image compression • asset revisioning

Page 26: Javascript Worflow Evolution

a js dirty secret

Page 27: Javascript Worflow Evolution

27

SINGLE PAGE APP - as first citizen in JS Community -

Page 28: Javascript Worflow Evolution

28

SPA - FACTS checking-

CONS

PROS

• More complexity (ie. memory leak, ) • Javascript MUST be enabled • Linking becomes an issue • Analytics aren't trivial • SEO implications

• Once loaded faster • Better UX • Strict separation of concerns (API)

Page 29: Javascript Worflow Evolution

29

MULTIMPLE PAGE APP - as so boring citizen in JS community-

Page 30: Javascript Worflow Evolution

30

CONS

PROS

• two languages ( client / server ) • two business logic

• Content is the king • Simpler • SEO friendly • URL friendly

MPA - FACTS checking-

Page 31: Javascript Worflow Evolution

The NEW KID on THE BLOCK

Page 32: Javascript Worflow Evolution

Isomorphic APPJavascript code that run on both client and server

Page 33: Javascript Worflow Evolution
Page 34: Javascript Worflow Evolution

34

Isomorphic APP

CONS

PROS• Performance (initial page-load speed) • Maintainability (promote sharing code client / server ) • Progressive enhancements easier (JS not mandatory ) • SEO friendly

• Complex :) • A lot of moving parts

Page 35: Javascript Worflow Evolution

35

Isomorphic ARCHITECTURE

Page 36: Javascript Worflow Evolution

36

A JS BUILD should Handles:• runtime dependencies • build dependencies • bundle JS (uglify) • bundle CSS (minification) • modules loading • testing • multi env client deploy • multi env server deploy ( isomorphic only ) • env settings • image optimization • prepare fonts / icons

Page 37: Javascript Worflow Evolution

SHOW ME THE CODE !!!

Page 38: Javascript Worflow Evolution

SPA ( voicemap player ) - grunt -

aka configuration

Page 39: Javascript Worflow Evolution

https://github.com/aboutlo/gulp-starter-kit

SPA - GULP -

aka programmable pipeline / stream

Page 40: Javascript Worflow Evolution

https://github.com/aboutlo/reactic-hoover

SPA EXPERIMENT - webpack + react + flux -

Page 41: Javascript Worflow Evolution

https://github.com/gpbl/isomorphic500

ISOMORPHIC APP - webpack + react + flux -

Page 42: Javascript Worflow Evolution

TAKE AWAyWHAT I’m using

+

autoprefixer

Page 43: Javascript Worflow Evolution

TAKE AWAyWHAT I’m STUDING

+

postcss

Page 44: Javascript Worflow Evolution

TAKE AWAyARCHITECTURE

• Node as presentation server • Invest on the build system • Isomorphic via React.renderToString

Page 45: Javascript Worflow Evolution

Lorenzo Sicilia - @aboutlo

javascript workflow

evolution