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)
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