Développez dans le futur, dès maintenant !

105
DEvelopper dans le futur Dès maintenant…

Transcript of Développez dans le futur, dès maintenant !

Page 1: Développez dans le futur, dès maintenant !

DEvelopper dans le futur

Dès maintenant…

Page 2: Développez dans le futur, dès maintenant !

Mathieu PARISOTDéveloppeur Web et Java - Formateur

http://matparisot.fr

@matparisot

https://www.google.com/+ParisotMathieu

http://humantalks.com http://brownbaglunch.fr

Page 3: Développez dans le futur, dès maintenant !
Page 4: Développez dans le futur, dès maintenant !
Page 5: Développez dans le futur, dès maintenant !
Page 6: Développez dans le futur, dès maintenant !
Page 7: Développez dans le futur, dès maintenant !
Page 8: Développez dans le futur, dès maintenant !

FlexboxGrid Layout

Service workers

GamePad API

Shadow DOM

CSS variables

Fetch API

Canvas

Media Queries lvl4

HTML imports

IndexDb

Page 9: Développez dans le futur, dès maintenant !

FlexboxGrid Layout

Service workers

GamePad API

Shadow DOM

CSS variables

Fetch API

Canvas

Media Queries lvl4

HTML imports

IndexDb

WebSQL

Calendar API

Page 10: Développez dans le futur, dès maintenant !

ClassesModules

Fat arrow functions

Iterators

GeneratorsString templates

Spreading

Destructuring

Rest operator

Default parameters

Page 11: Développez dans le futur, dès maintenant !
Page 12: Développez dans le futur, dès maintenant !

Mise à jour du slide en coursMerci de patienter

Page 13: Développez dans le futur, dès maintenant !

Evergreen Browsers

Page 14: Développez dans le futur, dès maintenant !
Page 15: Développez dans le futur, dès maintenant !
Page 16: Développez dans le futur, dès maintenant !
Page 17: Développez dans le futur, dès maintenant !
Page 18: Développez dans le futur, dès maintenant !
Page 19: Développez dans le futur, dès maintenant !

https://github.com/edankwan/Jesus.js

Page 20: Développez dans le futur, dès maintenant !

IStandards

Page 21: Développez dans le futur, dès maintenant !
Page 22: Développez dans le futur, dès maintenant !
Page 23: Développez dans le futur, dès maintenant !
Page 24: Développez dans le futur, dès maintenant !

http://caniuse.com

Page 25: Développez dans le futur, dès maintenant !
Page 26: Développez dans le futur, dès maintenant !
Page 27: Développez dans le futur, dès maintenant !

http://kangax.github.io/compat-table/es6/

Page 28: Développez dans le futur, dès maintenant !
Page 29: Développez dans le futur, dès maintenant !

71%

79%

85%

56%

54% (0.12 : 17%)

Page 30: Développez dans le futur, dès maintenant !

Parlons du temps…

Page 31: Développez dans le futur, dès maintenant !

Les conférences / blogs

Page 32: Développez dans le futur, dès maintenant !

Les conférences / blogs Le monde réel

Page 33: Développez dans le futur, dès maintenant !

Les conférences / blogs

Passé : Toutes les normes dont on ne parle plus car majoritairement implémentée

Page 34: Développez dans le futur, dès maintenant !

Les conférences / blogs

Passé : Toutes les normes dont on ne parle plus car majoritairement implémentée

Présent : Toutes les normes en cours d’implémentation

Page 35: Développez dans le futur, dès maintenant !

Les conférences / blogs

Passé : Toutes les normes dont on ne parle plus car majoritairement implémentée

Présent : Toutes les normes en cours d’implémentation

Futur : Toutes les normes expérimentales encore en cours de discussions

Page 36: Développez dans le futur, dès maintenant !

Le monde réel

Maintenant : Les navigateurs que vos utilisateurs possèdent

Page 37: Développez dans le futur, dès maintenant !

“Official W3C policy states that you shouldn’t really use experimental properties in production code, but people do, as they want to make sites look cool and keep on the cutting edge.” – W3C page on optimizing content for different browsers

Page 38: Développez dans le futur, dès maintenant !

Développer dans le passé Dès maintenant…

Page 39: Développez dans le futur, dès maintenant !
Page 40: Développez dans le futur, dès maintenant !

if (Modernizr.webgl){ loadAllWebGLScripts();} else { alert('WebGL not supported');}

Page 41: Développez dans le futur, dès maintenant !

if (Modernizr.webgl){ loadAllWebGLScripts();} else { alert('WebGL not supported');}

Modernizr.load({ test: Modernizr.geolocation, yep : 'myJs.js', nope: 'html5-polyfill.js'});

Page 42: Développez dans le futur, dès maintenant !
Page 43: Développez dans le futur, dès maintenant !
Page 44: Développez dans le futur, dès maintenant !

Ca ne marche pas pour tout

Page 45: Développez dans le futur, dès maintenant !

Développer dans le présent Dès maintenant…

Page 46: Développez dans le futur, dès maintenant !

Et si on touche à la syntaxe ?

Page 47: Développez dans le futur, dès maintenant !

function buildUrl({protocol = 'http://', domain, port = 80}) { return `${protocol}${domain}:${port}`;}

Page 48: Développez dans le futur, dès maintenant !

function* integerGenerator() { let curInt = 0; while(true) { curInt++; yield curInt; }}

Page 49: Développez dans le futur, dès maintenant !
Page 50: Développez dans le futur, dès maintenant !

Télécharge le fichier

Page 51: Développez dans le futur, dès maintenant !

Télécharge le fichier

Le parse

Page 52: Développez dans le futur, dès maintenant !

Télécharge le fichier

Le parse

Transforme le résultat

Page 53: Développez dans le futur, dès maintenant !

Télécharge le fichier

Le parse

Transforme le résultat

Injecte le résultat

Page 54: Développez dans le futur, dès maintenant !
Page 55: Développez dans le futur, dès maintenant !

Et si on ne le faisait qu’une fois ?

Page 56: Développez dans le futur, dès maintenant !

(faisons un aparté)

Page 57: Développez dans le futur, dès maintenant !

Un transpiler transforme un langage informatique

en un autre de haut niveau

Page 58: Développez dans le futur, dès maintenant !

Un transpiler transforme un langage informatique

en un autre de haut niveau

Java CJava JavaScriptCoffreescript JavaScriptTypeScript JavaScriptJavaScript JavaScriptEtc.

Page 59: Développez dans le futur, dès maintenant !

Un transpiler est un compilateur un peu spécial…

Page 60: Développez dans le futur, dès maintenant !

ES2015 ES5

Page 61: Développez dans le futur, dès maintenant !
Page 62: Développez dans le futur, dès maintenant !

-webkit-border-radius: 10px;-moz-border-radius: 10px;-ms-border-radius: 10px;-o-border-radius: 10px;border-radius: 10px;

Page 63: Développez dans le futur, dès maintenant !
Page 64: Développez dans le futur, dès maintenant !

(faisons un autre aparté)

Page 65: Développez dans le futur, dès maintenant !

Un préprocessor étend un langage informatique

avec de nouvelles features

Sass CSSLess CSSStylus CSSEtc.

Page 66: Développez dans le futur, dès maintenant !

Un postprocessor transforme du CSS

en CSS

Page 67: Développez dans le futur, dès maintenant !

Visiblement ça marche aussi avec les développeurs…

Page 68: Développez dans le futur, dès maintenant !

CSS3 standard CSS3 compatible

Page 69: Développez dans le futur, dès maintenant !

https://babeljs.io/ https://github.com/postcss/postcss

Page 70: Développez dans le futur, dès maintenant !

$ npm install babel postcss

Page 71: Développez dans le futur, dès maintenant !

$ babel script.js --out-file script-compiled.js$ postcss style.css –o compatible-style.css

$ npm install babel postcss

Page 72: Développez dans le futur, dès maintenant !
Page 73: Développez dans le futur, dès maintenant !

Plugins

Page 74: Développez dans le futur, dès maintenant !

Et des presetsOu despacks

Page 75: Développez dans le futur, dès maintenant !

Développer dans le futur Dès maintenant…

Page 76: Développez dans le futur, dès maintenant !
Page 77: Développez dans le futur, dès maintenant !
Page 78: Développez dans le futur, dès maintenant !

:root { --mainColor: red;}

a { color: var(--mainColor);}

Page 79: Développez dans le futur, dès maintenant !

@media screen and (width >= 500px) and (width <= 1200px) { .bar { display: block; }}

Page 80: Développez dans le futur, dès maintenant !

@supports (display: flex) { }

Page 81: Développez dans le futur, dès maintenant !

async function loadDataAsync() { try { let data = await getJSON('data.json'); addHtml(data); } catch (err) { addError("Oups: " + err.message); }}

Page 82: Développez dans le futur, dès maintenant !

// A simple decorator@annotationclass MyClass { }

function annotation(target) { // Add a property on target target.annotated = true;}

Page 83: Développez dans le futur, dès maintenant !

On recap !

Page 84: Développez dans le futur, dès maintenant !

On recap !

Build

Page 85: Développez dans le futur, dès maintenant !

On recap !Javascript standard Javascript compatible

Build

Page 86: Développez dans le futur, dès maintenant !

On recap !Javascript standard Javascript compatible

CSS standard CSS compatible

Build

Page 87: Développez dans le futur, dès maintenant !

On recap !Javascript standard Javascript compatible

CSS standard CSS compatible

Build

Page 88: Développez dans le futur, dès maintenant !

Sauf qu’il nous manque un truc…

Page 89: Développez dans le futur, dès maintenant !

export function myFunction()import {myFunction} from 'module'

Page 90: Développez dans le futur, dès maintenant !

AMD CommonJs

Page 91: Développez dans le futur, dès maintenant !

Modules + packaging

Page 92: Développez dans le futur, dès maintenant !

Modules + packaging+ un serveur avec live reload…

Page 93: Développez dans le futur, dès maintenant !

Plugins & loaders

Page 94: Développez dans le futur, dès maintenant !

On veut voir du code !Du code

Sinon rien !

Page 95: Développez dans le futur, dès maintenant !

La conclusion

Page 96: Développez dans le futur, dès maintenant !
Page 97: Développez dans le futur, dès maintenant !

Plugins ! Plugins everywhere !!!

Page 98: Développez dans le futur, dès maintenant !
Page 99: Développez dans le futur, dès maintenant !

Keep it Simple !

Page 100: Développez dans le futur, dès maintenant !
Page 101: Développez dans le futur, dès maintenant !
Page 102: Développez dans le futur, dès maintenant !

Standards Frameworksou

Page 103: Développez dans le futur, dès maintenant !

Standards Frameworkset

Page 104: Développez dans le futur, dès maintenant !

http://matparisot.fr/3-nouveautes-majeurs-decmascript-2015-que-vous-allez-adorer/

http://matparisot.fr/7-nouveautes-qui-vont-vous-simplifier-la-vie-en-es-2015/

https://github.com/mparisot/conf_dev_futur

Page 105: Développez dans le futur, dès maintenant !

Merci !@matparisot - http://matparisot.fr

http://humantalks.com http://brownbaglunch.fr

http://matparisot.fr/3-nouveautes-majeurs-decmascript-2015-que-vous-allez-adorer/

http://matparisot.fr/7-nouveautes-qui-vont-vous-simplifier-la-vie-en-es-2015/

https://github.com/mparisot/conf_dev_futur