Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Falling in ❤️ with JavaScript

Falling in ❤️ with JavaScript

A "backend" developer for the past twenty years is taking his first steps into the new JS eco system and is falling in love with it.

Stephen McCullough

October 24, 2018
Tweet

More Decks by Stephen McCullough

Other Decks in Technology

Transcript

  1. 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
  2. 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’
  3. 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
  4. 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
  5. What I ❤ ES6 - Class & Inheritance Babel -

    means I don’t have to worry Backend - Node.js
  6. 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
  7. 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; });
  8. 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