57

Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

Embed Size (px)

Citation preview

Page 1: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 2: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

http://www.ecma-international.org/ecma-262/6.0/

Page 3: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

ECMAScript 6forreal

Page 4: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 5: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

const keyword, block scope

destructuring, array

arrow functions

destructuring, object

Page 6: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 7: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

template strings

default value

Page 8: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 9: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 10: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

{ what: „ready to use TDD env“,

why: „practice, practice, practice“,

url: „http://TDDbin.com“, twitter: „@tddbin“ }

Page 11: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 12: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

{ what: „ES6 learning by doing“,

when: „new kata every day“,

url: „http://ES6katas.org“, twitter: „@es6katas“ }

Page 13: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

{ what: „TDD, pairing, clean code“,

when: „every 3 months“, next: „5th December 2015“,

url: „http://jsCodeRetreat.com“, twitter: „@jsCodeRetreat“ }

Page 14: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

ECMAScript 6

Page 15: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

Photo by tranchis - Creative Commons Attribution-NonCommercial-ShareAlike License https://www.flickr.com/photos/25813335@N00 Created with Haiku Deck

Page 16: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

Photo by bogdog Dan - Creative Commons Attribution-NonCommercial License https://www.flickr.com/photos/25689440@N06 Created with Haiku Deck

Page 17: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

Photo by aquababe - Creative Commons Attribution-NonCommercial License https://www.flickr.com/photos/25138992@N00 Created with Haiku Deck

Page 18: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

Traceur

Page 19: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

Photo by Luz Adriana Villa A. - Creative Commons Attribution License https://www.flickr.com/photos/11599314@N00 Created with Haiku Deck

Page 20: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 21: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

Photo by Hindrik S - Creative Commons Attribution-NonCommercial-ShareAlike License https://www.flickr.com/photos/63991153@N00 Created with Haiku Deck

Page 22: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

Photo by droetker0912 - Creative Commons Attribution-NonCommercial-ShareAlike License https://www.flickr.com/photos/58020577@N06 Created with Haiku Deck

Page 23: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

Sep 2014

long time ago, in tech

Page 24: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 25: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

http://www.uxebu.com/blog/2014/11/es6-tdd-work-traceur-mocha-sinon/

Page 26: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

https://github.com/uxebu/mocha-sinon-traceur-example

Page 27: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

expect().toBe()

expect().toHaveXyz()

expect().toEqualSomethingICanDefine()

Page 28: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

WHY ES6 at all?

Page 29: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

https://gist.github.com/wolframkriesing/ab6d82024aec7068382a

Page 30: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 31: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

ES6 import is static! yeah!

'import' and 'export' may only appear at the top level

Page 32: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 33: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 34: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

ENOUGHreason

but there is looooooots more

Page 35: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 36: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

> traceur --script import.js --out out.js/playground/import.js:1:1: Unexpected token import/playground/import.js:1:8: Semi-colon expected/playground/import.js:1:16: Semi-colon expected/playground/import.js:1:19: Semi-colon expected/playground/import.js:1:27: Semi-colon expected

> babel import.js 'use strict';var _assert = require('assert');

> cat import.js import {assert as a} from 'assert';

Page 37: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 38: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

LET’S CODE

kata group’s link

kata group’s name

Page 39: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

N O W

LET’S CODE

Page 40: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

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

Page 41: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

Did you notice?

• Tests run on node.js

• No browser involved

• Decouple from the evil DOM

• react.js-think helps :)

Page 42: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

let’s BUILD

not now :)

Page 43: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

webpack

Page 44: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

https://gist.github.com/substack/68f8d502be42d5cd4942

Page 45: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

webpack

browserify

Page 46: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 47: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

N O W

LET’S BUILD

Page 48: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

noticed that it linted react-syntax, JSX?

Page 49: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

seeing is

believing

Page 50: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 51: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 52: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 53: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

CD

Page 54: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 55: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 56: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Page 57: Wolfram Kriesing - EcmaScript6 for real - code.talks 2015

🙋

@WolframKriesingjob status:

👍