Slide 1

Slide 1 text

Falling in ❤ with JavaScript Stephen McCullough / / BelfastJS / / Oct 2018

Slide 2

Slide 2 text

WTF are you??? Stephen McCullough Head tea boy @ Kanisi @swmcc - most places @theonlyswmcc - twitter Co-organiser of: pybelfast Belfast Elixir Belfast Ruby (announcement) I will *try* and behave

Slide 3

Slide 3 text

Falling in ❤ with JavaScript

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

SWM’s Career - Part 1 10th January 2000 - blackstar.co.uk Websites/apps were built using CGI Javascript was a 2nd class citizen php, perl, asp, cold fusion and JS enhanced remember DHTML?? ;) 17th September 2007 - various places Surviving the great recession Using PHP :( :( :( :( :( 19th September 2012 - RepKnight/Mission IQ/ShopKeep Using ‘modern’ practises/frameworks/methodologies/technology Still siloed as a ‘backend engineer’ - *NEVER* dealt with the ‘front end’

Slide 6

Slide 6 text

ShopKeep - JavaScript WHA???? JS frontend (react) was baked into the monolith First time ever I had to deal with NPM First year or so I just deferred to a JS Engineer Slowly started getting used to the eco system.. slowly Started to be able to peer review simple bits of JS code BUT… Still very much in a silo

Slide 7

Slide 7 text

SWM’s Career - Part 2 1st October 2018 - Kanisi Ltd - Rotor Videos Proper ‘startup’ with a limited runway Initially four peeps, with one more coming at the end of this month No silos due to time constraints Just get shit done

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

What I ❤ ES6 - Class & Inheritance Babel - means I don’t have to worry Backend - Node.js

Slide 11

Slide 11 text

ES6 - Class & Inheritance class Polygon { constructor(height, width) { //class constructor this.name = 'Polygon'; this.height = height; this.width = width; } sayName() { //class method console.log('Hi, I am a', this.name + '.'); } } class Square extends Polygon { constructor(length=10) { // ES6 features Default Parameters super(length, length); //call the parent method with super this.name = 'Square'; } get area() { //calculated attribute getter return this.height * this.width; } } let s = new Square(5); s.sayName(); // => Hi, I am a Square. console.log(s.area); // => 25 console.log(new Square().area); // => 100

Slide 12

Slide 12 text

Babel sample.js var odds = evens.map(v => v + 1); var nums = evens.map((v, i) => v + i); swm@Stephens-MacBook-Pro ~/Documents/talks/bf-js/oct18: babel sample.js "use strict"; var odds = evens.map(function (v) { return v + 1; }); var nums = evens.map(function (v, i) { return v + i; });

Slide 13

Slide 13 text

Almost finished…. I’m only starting out I’d like to come back in several months Tell you what I’ve learned and what I think It wont be all good I’m in the honeymoon period at the mo

Slide 14

Slide 14 text

Fin @theonlyswmcc