Top Banner
AngularJS, Retro ? Deyine Jiddou Lead software engineer at @Neticoa [email protected] @Deyine
30

Angular retro

Mar 22, 2017

Download

Technology

Deyine Jiddou
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Angular retro

AngularJS, Retro ?Deyine JiddouLead software engineer at @[email protected]@Deyine

Page 2: Angular retro

Flashback...

Page 3: Angular retro

Old web frameworks➢ Pattern MVC et variantes MVC2 / MVVM / MVP …

➢ Routes, données et templates gérés côté serveur ➢ View Template Engine

Page 4: Angular retro

Old web frameworks

Page 5: Angular retro

Problème➢ Html généré à chaque requête Http

➢ Cache html uniquement côté serveur ➢ + 80% de contenu statique dans chaque réponse

Page 6: Angular retro

Problème

Page 7: Angular retro

DemoJS

Page 8: Angular retro

Angular, la réponse ?En 4 mots clés

➢ Framework Javascript

➢ Single Page Application

➢ MVW (Whatever)

➢ Google

Page 9: Angular retro

Modules90 secondesUn module est composé de

➢routes

➢controllers / scope

➢services, factories, providers

➢directives

➢filters

Page 10: Angular retro

Modules80 secondes

➢Démarrage d’Angular

➢ Création du module principal

Page 11: Angular retro

Routes70 secondes

➢Chaque route est gerée par un controller

Page 12: Angular retro

Controller60 secondes

➢ Le controller expose les données via le scope.

Page 13: Angular retro

Scope50 secondes

➢Objet liant le controller à la vue (Wikipedia)

➢Contient les données model exposées à la vue

➢Notion de Two way Binding

Page 14: Angular retro

Services40 secondes

➢ Les services permettent d’effectuer des traitements sur les données.

Page 15: Angular retro

Directives30 secondes

➢Permettent d’enrichir HTML

➢Possibilité de créer de nouvelles balises / attributs etc.

➢Un avant goût des Web Components

Page 16: Angular retro

Directives20 secondes

Page 17: Angular retro

Tools10 secondes

➢Build tools

➢Test tools

➢UXhttps://github.com/codylindley/frontend-tools

Page 18: Angular retro

DemoJS

Page 19: Angular retro

BenchmarkRails Appab -n 1000 -c 10 http://localhost:3000/presentations

Rails backend appab -n 1000 -c 10 http://localhost:3000/api/slides

Page 20: Angular retro

Avantages

➢ Backend allégé (~ 5x Faster)

➢ Faible couplage : Même Backend pour tous les clients

➢ Coder en parallèle : Frontend et Backend

➢ Webapp statique

➢ Extensibilité via les directives

➢ Activité & Engagement de la communauté (ng-conf, ng-europe etc.)

Page 21: Angular retro

Avantages

Page 22: Angular retro

Inconvenients➢ Plus de 1000 watchers sur une page, peut degrader l’UI (angular-

tips.com)

Watcher ????

Page 23: Angular retro

Inconvenients

➢$Watcher sur chaque model pour surveiller les

changements,

➢$Digest à chaque changement,

Page 24: Angular retro

Inconvenients

➢ $Digest est le cycle dans lequel les watchers sont evalués,

➢ Le cycle $Digest est lancé par un appel de $scope.$apply()

➢ $scope.$apply() est lancé par les directives natives ou

evenements (ng-click , ngModel etc) https://github.com/angular/angular.js/blob/d077966ff1ac18262f4615ff1a533db24d4432a7/src/ng/directive/ngEventDirs.js

➢ Ok, mais jusqu’à quand ? 2 fois au min / 10 au max

Page 25: Angular retro

Inconvenients

Extrait du code source de angularjs

Page 26: Angular retro

Scope

Page 27: Angular retro

Inconvenients

DemoJS

Page 28: Angular retro

Future, Angular 2Bonne nouvelle

➢ Les lacunes de Angular 1.X ont été adressées/corrigées dans Angular 2

Mauvaise nouvelle

➢ Angular 2 est une réecriture. Aucune retrocompatibilité n’est prévue

Page 29: Angular retro

Merci pour votre attention

QuestionJS ?

Page 30: Angular retro

Links- https://farm9.staticflickr.com/8529/8588701778_91aeb65377_o.png

- http://www.allenpike.com/2015/javascript-framework-fatigue/

- angular-tips.com

- https://github.com/djsmith42