futureproof angular 1.x applications - yannick houbrix

52
Future proof Angular 1.x applications

Upload: axxes-it-consultancy

Post on 10-Jan-2017

526 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Futureproof angular 1.x  applications - yannick houbrix

Future proof Angular 1.x applications

Page 2: Futureproof angular 1.x  applications - yannick houbrix

Yannick Houbrix Technical Expert at Axxes @Sh33dafi #AxxesCC

Page 3: Futureproof angular 1.x  applications - yannick houbrix

Why?

Page 4: Futureproof angular 1.x  applications - yannick houbrix

Angular 2

Page 5: Futureproof angular 1.x  applications - yannick houbrix

Easier migration path

Page 6: Futureproof angular 1.x  applications - yannick houbrix

Maintainability

Page 7: Futureproof angular 1.x  applications - yannick houbrix

Easier for new developers

Page 8: Futureproof angular 1.x  applications - yannick houbrix
Page 9: Futureproof angular 1.x  applications - yannick houbrix

Page 10: Futureproof angular 1.x  applications - yannick houbrix
Page 11: Futureproof angular 1.x  applications - yannick houbrix

Reduce external dependencies

Page 12: Futureproof angular 1.x  applications - yannick houbrix

No need for global dependencies

Page 13: Futureproof angular 1.x  applications - yannick houbrix

Windows, Linux & OS X

Page 14: Futureproof angular 1.x  applications - yannick houbrix

Shell + Node executables +

Node scripts

Page 15: Futureproof angular 1.x  applications - yannick houbrix

Standard tasks

{ "scripts": { "start": "webpack --config webpack/webpack.dev.js", "test": "karma start --single-run", } }

Page 16: Futureproof angular 1.x  applications - yannick houbrix

Custom tasks

{ "scripts": { "foo": "echo Here be foo”, "hello": "node hello.js" } }

Page 17: Futureproof angular 1.x  applications - yannick houbrix

{ "scripts": { "prebar": "echo PRE-BAR", "bar": "echo BAR", "postbar": "echo POST-BAR" } }

Lifecycle scripts

Page 18: Futureproof angular 1.x  applications - yannick houbrix
Page 19: Futureproof angular 1.x  applications - yannick houbrix
Page 20: Futureproof angular 1.x  applications - yannick houbrix
Page 21: Futureproof angular 1.x  applications - yannick houbrix
Page 22: Futureproof angular 1.x  applications - yannick houbrix

One tool to rule them all

Page 23: Futureproof angular 1.x  applications - yannick houbrix

Most bower dependencies also a NPM package

Page 24: Futureproof angular 1.x  applications - yannick houbrix

Reduce external dependencies

Page 25: Futureproof angular 1.x  applications - yannick houbrix

Use local npm registry

Page 26: Futureproof angular 1.x  applications - yannick houbrix

Proxy prevent left-pad issues

Page 27: Futureproof angular 1.x  applications - yannick houbrix

Patched external dependencies

Page 28: Futureproof angular 1.x  applications - yannick houbrix

BUT

Page 29: Futureproof angular 1.x  applications - yannick houbrix

NPM packages don’t work in browser

Page 30: Futureproof angular 1.x  applications - yannick houbrix
Page 31: Futureproof angular 1.x  applications - yannick houbrix

Page 32: Futureproof angular 1.x  applications - yannick houbrix
Page 33: Futureproof angular 1.x  applications - yannick houbrix

Javascript

HTML

CSS

Images

TRAN

SFO

RM

Webpack bundle

Page 34: Futureproof angular 1.x  applications - yannick houbrix
Page 35: Futureproof angular 1.x  applications - yannick houbrix
Page 36: Futureproof angular 1.x  applications - yannick houbrix

Latest version of angular (1.5.x)

Page 37: Futureproof angular 1.x  applications - yannick houbrix

Use Angular 2 insights

Page 38: Futureproof angular 1.x  applications - yannick houbrix

Eliminate $scope

Page 39: Futureproof angular 1.x  applications - yannick houbrix

controllerAs syntax

Page 40: Futureproof angular 1.x  applications - yannick houbrix

Component base architecture

Page 41: Futureproof angular 1.x  applications - yannick houbrix

TypeScriptsuperset of javascript

Page 42: Futureproof angular 1.x  applications - yannick houbrix

• Type system

• Eliminate errors

• IDE Support

• Classes

• Modules

• ES6 Feature support

• Designed for enterprise applications

Page 43: Futureproof angular 1.x  applications - yannick houbrix

Try to keep framework and business logic separated

Page 44: Futureproof angular 1.x  applications - yannick houbrix

import "angular"; import {HelloWorldService} from "./services/HelloWorldService"; angular.module("com.github.sh33dafi.app", []) .service("HelloWorldService", HelloWorldService);

index.ts

export class HelloWorldService { public sayHello(): string { return "Hello world!"; }}

HelloWorldService.ts

Page 45: Futureproof angular 1.x  applications - yannick houbrix
Page 46: Futureproof angular 1.x  applications - yannick houbrix

TDD

Page 47: Futureproof angular 1.x  applications - yannick houbrix

WallabyJS

Page 48: Futureproof angular 1.x  applications - yannick houbrix

Productivity Boost

Page 49: Futureproof angular 1.x  applications - yannick houbrix

Not free :(

Page 50: Futureproof angular 1.x  applications - yannick houbrix

Good support

Page 51: Futureproof angular 1.x  applications - yannick houbrix
Page 52: Futureproof angular 1.x  applications - yannick houbrix

#AxxesCC