Angular 2

Tour d'horizon

pour savoir où on va,

il faut savoir d'où on vient

2006

JQuery est une boîte à outils

Lite Framework

Principalement Structurel Avec concepts MVC

2010 Le Temps des Guerres de Frameworks

Extjs

Ember Js

100 Others ...

Angular 1

Angular 1 Gagne la guerre

mais pourquoi ?

Un nouveau Paradigme pour les Js frontend Dev

Domain Specific Language

DSL

Dependency Injection 

DI

D'autres Frameworks  adoptent ces paradigmes

Knockout Js

Batman Js Etc...

Web Components

En parallèle le W3C a poussé Web components depuis un certain temps

Mais Angulaire 1 n'est pas parfait

La perf est problematique en raison du "dirty checking" 

L'API pour la Directive est un désordre

La courbe d'apprentissage est raide

Pour résoudre ces problèmes d'autres paradigmes apparaissent

Immutability

Unidirectional Data-Flow

Observables

FRP Fonctional Reactive Programming

2012

Jafar Husain Start Updating Netflix with FRP

(Rxjs & RxJava)

Rxjs from Microsoft

2014

 

 

 

 

 

Unit-directional Data-flow with (FLUX)

and a simplify DSL

Angular 2 is being developed 

More than a

 

 

 

Framework its a Dev Platform

Pour web, mobile web, native mobile, native desktop et backend.

Mais comment ?

 

Ils ont supprime la dependance de la framework sur le DOM !!!

Performance via Web-Workers

Native Mobile

Native Desktop

Server Side Application Rendering

SEO Optimisation

Une Mutualisation des efforts

Typescript (Microsoft)

RxJs (Microsoft)

CLI (Ember Js)

FRP (Netflix)

Meteor Firebase and Others... 

Negative Points

The Router is Depricated

Problems with CLI and the

introdution of 3rd party Libs

Problems with Jspm and Typescript not seeing Packages

Positive Points

Clean Component API

Clean DI

Observable

Immutability

Uni-directional data-flow

New Template Syntax 

No more Angular life-cycle

Positive Points

CLI

Lazy Loading

Annotations

Growing and Innovating Community

Separation from the DOM

Integrates with Web Components

NG1 DIFF NG2

No more:

Controllers

Scopes

Modules

Ng Life-cycle

Everything is a Component

We use Typescript !!!

La Framework favorise l'Immutability

Lazy Loading of Modules

Plus de Batarang

Now it's Augury

NG1 === NG2

DI

Mais c'est maintenant contextualized

DSL

Mais c'est maintenant compatible avec des Composants Web

C'est juste toujours du JS du HTML et du CSS  dans le DOM

Autre Problème

Bibliothèques de Composants Où êtes-vous?

Nous pourrions utiliser

 

 

 

 

 

Iron Elements

Paper Elements

Google Web Components

Gold Elements

Neon Elements

Platinum Elements

Molecules

Ou n'importe quel Js Lib of components

Meme Ng1 components

Mais nous devrions vraiment utiliser   Polymer

(C'est mon opinion personnelle)

Standing on Web Components

Mature

Google Backing

Le polymer peut construire des composants agnostiques par rapport aux navigateurs et aux

Frameworks 

Polymer utilise le même type de API et de système de communication que Ng2

(Binding to attributes and emitting Events)

Autre Problème

Application Architecture

You can do it the old way

MVC

Or you can learn 

REDUX

REDUX PARADIGM

Immutability

Unidirectional Data-Flow

Observables

FRP Fonctional Reactive Programming

Timetravel debug tool

Autre Problème

La migration de Ng1 à Ng2

ngUpgrade.js

Mixer AngularJS et Angular2

Conclusion

Ng1 vieillit vite en raison de l'adoption de ces paradigmes

Nous nous devons de les apprendre et les comprendre

Est-ce que Ng2 est Prêt ?

Google says Yes

(Google applications are in production)

La question est :

Est-ce que vous êtes prêts ?

  

Angular 2

By bretto

Angular 2

  • 409