103
Tooling for the productive front- end developer Maurice de Beijer @mauricedb

Tooling for the productive front-end developer

Embed Size (px)

Citation preview

Page 1: Tooling for the productive front-end developer

Tooling for the productive front-

end developerMaurice de Beijer

@mauricedb

Page 2: Tooling for the productive front-end developer

2

Who am I?• Maurice de Beijer• The Problem Solver• Microsoft Azure MVP• Freelance developer/instructor• Twitter: @mauricedb and @React_Tutorial• Web: http://www.TheProblemSolver.nl• E-mail: [email protected]

Page 3: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 4: Tooling for the productive front-end developer

Where to get scripts• Bower• NPM• JSPM

Page 5: Tooling for the productive front-end developer

Download and copy

Page 6: Tooling for the productive front-end developer

Bower

Page 7: Tooling for the productive front-end developer

NPM

Page 8: Tooling for the productive front-end developer

JSPM

Page 9: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 10: Tooling for the productive front-end developer

Searching for NPM packages• https://www.npmjs.com• https://npms.io

Page 11: Tooling for the productive front-end developer

NPM

Page 12: Tooling for the productive front-end developer

NPMS.IO

Page 13: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 15: Tooling for the productive front-end developer

CoffeeScript

Page 16: Tooling for the productive front-end developer

Babel

Page 17: Tooling for the productive front-end developer

TypeScript

Page 18: Tooling for the productive front-end developer

JSX

Page 19: Tooling for the productive front-end developer

Dart

Page 20: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 22: Tooling for the productive front-end developer

Grunt

Page 23: Tooling for the productive front-end developer

Gulp

Page 24: Tooling for the productive front-end developer

Broccoli

Page 25: Tooling for the productive front-end developer

NPM Scripts

Page 26: Tooling for the productive front-end developer

NPM Scripts

Page 27: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 29: Tooling for the productive front-end developer

Uglify

Page 30: Tooling for the productive front-end developer

Clean CSS

Page 31: Tooling for the productive front-end developer

HTML Minifier

Page 32: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 34: Tooling for the productive front-end developer

Browserify

Page 35: Tooling for the productive front-end developer

SystemJS

Page 36: Tooling for the productive front-end developer

Webpack

Page 37: Tooling for the productive front-end developer

Rollup

Page 38: Tooling for the productive front-end developer

JSPM

Page 39: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 41: Tooling for the productive front-end developer

Console API

Page 42: Tooling for the productive front-end developer

Pretty Print

Page 43: Tooling for the productive front-end developer

Pretty Print

Page 44: Tooling for the productive front-end developer

Break on DOM modifications

Page 45: Tooling for the productive front-end developer

Break on XHR

Page 46: Tooling for the productive front-end developer

Asynchronous stack trace

Page 47: Tooling for the productive front-end developer

Timeline

Page 48: Tooling for the productive front-end developer

Audits

Page 49: Tooling for the productive front-end developer

Profile

Page 50: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 52: Tooling for the productive front-end developer

YSlow

Page 53: Tooling for the productive front-end developer

WebPageTest

Page 54: Tooling for the productive front-end developer

Chrome timeline

Page 55: Tooling for the productive front-end developer

Chrome audit

Page 56: Tooling for the productive front-end developer
Page 57: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 59: Tooling for the productive front-end developer

Testem

Page 60: Tooling for the productive front-end developer

Mocha

Page 61: Tooling for the productive front-end developer

Chai

Page 62: Tooling for the productive front-end developer

Chai as promised

Page 63: Tooling for the productive front-end developer

JS Dom

Page 64: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 65: Tooling for the productive front-end developer

End 2 End Testing• Selenium• Nightwatch• Browserstack

Page 66: Tooling for the productive front-end developer

Selenium

Page 67: Tooling for the productive front-end developer

Nightwatch

Page 68: Tooling for the productive front-end developer

BrowserStack

Page 69: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 71: Tooling for the productive front-end developer

Angular CLI

Page 72: Tooling for the productive front-end developer

Create React App

Page 73: Tooling for the productive front-end developer

Yeoman

Page 74: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 75: Tooling for the productive front-end developer

Linting• ESLint• TSLint• Stylelint• SonarQube

Page 76: Tooling for the productive front-end developer

ESLint

Page 77: Tooling for the productive front-end developer

TSLint

Page 78: Tooling for the productive front-end developer

StyleLint

Page 79: Tooling for the productive front-end developer

SonarQube

Page 80: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 82: Tooling for the productive front-end developer

LESS

Page 83: Tooling for the productive front-end developer

SASS

Page 84: Tooling for the productive front-end developer

SyleLint

Page 85: Tooling for the productive front-end developer

SCSS Lint

Page 86: Tooling for the productive front-end developer

Post CSS

Page 87: Tooling for the productive front-end developer

Autoprefixer

Page 88: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 89: Tooling for the productive front-end developer

Online editor• JSFiddle• JSBin• HyperDev

Page 90: Tooling for the productive front-end developer

JS Fiddle

Page 91: Tooling for the productive front-end developer

JS Bin

Page 92: Tooling for the productive front-end developer

Hyperdev

Page 93: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 94: Tooling for the productive front-end developer

Tools I use with GitHub• Zenhub• Shields• David• Greenkeeper• Travis CI• Codecov

Page 95: Tooling for the productive front-end developer

Zenhub

Page 96: Tooling for the productive front-end developer

Gulp-main-bower-files

Page 97: Tooling for the productive front-end developer

Shields

Page 98: Tooling for the productive front-end developer

David

Page 99: Tooling for the productive front-end developer

Greenkeeper

Page 100: Tooling for the productive front-end developer

Travis CI

Page 101: Tooling for the productive front-end developer

Codecov

Page 102: Tooling for the productive front-end developer

Overview• Where to get scripts• Searching for NPM pack

ages• ECMAScript 2015 and b

eyond• Task runners• Minification• Bundling• Chrome DevTools

• Performance testing• Unit Testing• E2E Testing• Code generators• Linting• CSS• Online editor• Tools I use with GitHub

Page 103: Tooling for the productive front-end developer

Thank you

Maurice de Beijer - @mauricedb