Introduction à 
Paterne Gaye 
@ptngaye 
2014-09-30 Introduction à AngularJS
AngularJS : un framework web 
⦿Un framework web 
⦿ Templating + Routage 
⦿ Dialogue avec les services du back-end 
⦿ MCV /...
Planning de la soirée 
⦿Une première application AngularJS 
⦿ Extension du langage HTML : les directives 
⦿ Vues, scopes e...
Préambule 
⦿ Framework 100% Javascript vs Frameworks 
PHP/Java/Flash/SilverLight.. 
⦿ Un langage déjà présent dans “tous” ...
Une première application AngularJS 
2014-07-10 Introduction à AngularJS
Une application AngularJS 
2014-07-10 Introduction à AngularJS
Une application AngularJS 
2014-07-10 Introduction à AngularJS
Extension du langage HTML 
2014-07-10 Introduction à AngularJS
Qu’est-ce qu’une directive ? 
⦿Une directive = Flag placé dans la vue 
⦿Une directive = Elément | Attribut | 
commentaire ...
Le compilateur HTML 
2014-07-10 Introduction à AngularJS
Exemple de directive 
⦿ Use case : 
⦿ Un bouton de commande qui demande une 
confirmation 
⦿ La vue 
<soat-confirmation-bu...
Exemple de directive 
2014-07-10 Introduction à AngularJS
Directives : quand les utilser ? 
⦿Comment savoir qu’on a besoin d’une 
directive ? 
⦿Envie irrésistible de parsing du DOM...
Vues, scopes et data-binding 
2014-07-10 Introduction à AngularJS
Scope 
⦿ Scope = contexte d’évaluation des expressions 
AngularJS 
⦿ un scope = un objet Javascript 
⦿ Hiérachie de scope ...
La fonction $watch du scope 
2014-07-10 Introduction à AngularJS
Contenu d’une vue AngularJS 
⦿ Le code HTML classique 
⦿ Les directives 
⦿ Les expressions AngularJS 
⦿ Instruction qui va...
Binding 
2014-07-10 Introduction à AngularJS
Structure d’une application AngularJS 
2014-07-10 Introduction à AngularJS
Directives vs Controllers vs Services 
⦿ Directives 
⦿ Manipulation de DOM 
⦿ Composants IHM re-utilisables 
⦿ Les service...
Directives vs Controllers vs Services 
⦿ Controlleurs 
⦿ Gestion du scope attaché à une vue 
⦿ Gestion des actions utilisa...
La définition des routes 
2014-07-10 Introduction à AngularJS
Appels asynchrones au back-end 
2014-07-10 Introduction à AngularJS
Exemples de use cases 
⦿ Cas #1 : agrégateur de news 
⦿Interroger Twitter, Google+ et Facebook 
⦿Fusionner les trois flux ...
Notion de callback 
⦿ Callback = fonction 
⦿Etant donnée une fonction F, on peut rajouter à F 
un argument supplémentaire ...
Les promesses avec AngularJS 
2014-07-10 Introduction à AngularJS
Injection de dépendances et tests 
2014-07-10 Introduction à AngularJS
Injection des dépendances 
2014-07-10 Introduction à AngularJS
Tests 
⦿ Tests unitaires 
⦿Injection de dépendances 
● On peut mocker facilement les différentes parties de 
l’application...
Tests : les outils 
⦿ Les tests s’exécutent sur la machine de dev 
⦿Outil pour exécuter le code Javascript coté serveur 
●...
Points à surveiller 
2014-09-30 Introduction à AngularJS
Attention !!! 
⦿ Limites du binding : mémoire (2000 binding ?) 
⦿ Pérénité du projet : Google 
⦿ Javascript indispensable ...
Outils et documentation 
2014-07-10 Introduction à AngularJS
Outils 
⦿IDE desktop 
⦿IDE supportant Javascript 
⦿+1 pour WebStorm (44 € par an) 
⦿Les navigateurs 
⦿Mode developpeur 
⦿ ...
Documentation 
⦿Doc en ligne 
⦿https://angularjs.org/ 
⦿http://goo.gl/EPvajM le groupe Google+ 
francophone 
⦿http://www.f...
2014-09-30 Introduction à AngularJS
Prochain SlideShare
Chargement dans…5
×

Angular JS - Paterne Gaye-Guingnido

1 300 vues

Publié le

Javascript s’est depuis longtemps imposé comme le principal langage pour développer des écrans web dynamiques. L'émergence des SPA (Single Page Application) est en fait l'aboutissement logique du succès de ces outils au premier rang desquels on compte jQuery et AJAX.

AngularJS fait partie d’une nouvelle génération de frameworks qui propose d’aller plus loin afin d’avoir non seulement des SPA améliorant l’expérience utilisateur mais aussi un code mieux organisé, plus modulaire et donc facilement testable.

Au cours de cette soirée, vous verrez d’abord la manière dont AngularJS étend le HTML à travers les directives puis le binding bidirectionnel, ensuite, la programmation asynchrone avec AngularJS. Enfin pour finir, nous allons voir ces petits plus qui expliquent la popularité du framework : les filtres, l’injection de dépendance et les tests.

0 commentaire
4 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 300
Sur SlideShare
0
Issues des intégrations
0
Intégrations
25
Actions
Partages
0
Téléchargements
102
Commentaires
0
J’aime
4
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Angular JS - Paterne Gaye-Guingnido

  1. 1. Introduction à Paterne Gaye @ptngaye 2014-09-30 Introduction à AngularJS
  2. 2. AngularJS : un framework web ⦿Un framework web ⦿ Templating + Routage ⦿ Dialogue avec les services du back-end ⦿ MCV / MVVM ⦿ Un framework web Javascript & front-end ⦿ AngularJS s’exécute dans le navigateur ⦿ Controlleurs + Model en Javascript ⦿Développement de SPA 2014-09-30 Introduction à AngularJS
  3. 3. Planning de la soirée ⦿Une première application AngularJS ⦿ Extension du langage HTML : les directives ⦿ Vues, scopes et data-binding ⦿ Structure du code avec AngularJS ⦿Appels asynchrones au back-end ⦿ Injection de dépendances et tests ⦿ Points à surveiller 2014-09-30 Introduction à AngularJS
  4. 4. Préambule ⦿ Framework 100% Javascript vs Frameworks PHP/Java/Flash/SilverLight.. ⦿ Un langage déjà présent dans “tous” les navigateurs ● => Pas de plugin ⦿ Avec les frameworks “server side”, JSF, Struts etc., on fini toujours par rajouter du code Javascript ● =>Code fragmenté en plusieurs langages ⦿Navigateurs plus puissants que jamais ● =>Décharger le serveur en exploitant la puissance du client 2014-07-10 Introduction à AngularJS
  5. 5. Une première application AngularJS 2014-07-10 Introduction à AngularJS
  6. 6. Une application AngularJS 2014-07-10 Introduction à AngularJS
  7. 7. Une application AngularJS 2014-07-10 Introduction à AngularJS
  8. 8. Extension du langage HTML 2014-07-10 Introduction à AngularJS
  9. 9. Qu’est-ce qu’une directive ? ⦿Une directive = Flag placé dans la vue ⦿Une directive = Elément | Attribut | commentaire HTML | Classe CSS ⦿Les navigateurs ne reconnaissent pas ces flags : c’est à AngularJS de les traiter ⦿Une directive => un script JS indiquant le traitement que AngularJS doit effectuer 2014-07-10 Introduction à AngularJS
  10. 10. Le compilateur HTML 2014-07-10 Introduction à AngularJS
  11. 11. Exemple de directive ⦿ Use case : ⦿ Un bouton de commande qui demande une confirmation ⦿ La vue <soat-confirmation-button action=”doVeryDangerousAction” message=”Opération est irréversible. Continuer ?” /> ⦿ Le traitement associé ⦿ le script soat-confirmation-button.js 2014-07-10 Introduction à AngularJS
  12. 12. Exemple de directive 2014-07-10 Introduction à AngularJS
  13. 13. Directives : quand les utilser ? ⦿Comment savoir qu’on a besoin d’une directive ? ⦿Envie irrésistible de parsing du DOM ⦿Un bloc de HTML qui se répète ⦿Composant de formulaire : calendrier, zone de saisie ... ⦿ Attention à vérifier d’abord les directives natives de Angular ou de la communauté 2014-07-10 Introduction à AngularJS
  14. 14. Vues, scopes et data-binding 2014-07-10 Introduction à AngularJS
  15. 15. Scope ⦿ Scope = contexte d’évaluation des expressions AngularJS ⦿ un scope = un objet Javascript ⦿ Hiérachie de scope : ⦿ $rootScope le scope de 1er niveau rattaché à ng-app ⦿ Scope propres à ng-controller 2014-07-10 Introduction à AngularJS
  16. 16. La fonction $watch du scope 2014-07-10 Introduction à AngularJS
  17. 17. Contenu d’une vue AngularJS ⦿ Le code HTML classique ⦿ Les directives ⦿ Les expressions AngularJS ⦿ Instruction qui va etre interprété par AngularJS ⦿ A l’intérieur des doubles accolades {{}} ⦿ comme valeurs des directives ⦿ Les filtres ⦿ Fonction qui transforme un objet en un autre 2014-07-10 Introduction à AngularJS
  18. 18. Binding 2014-07-10 Introduction à AngularJS
  19. 19. Structure d’une application AngularJS 2014-07-10 Introduction à AngularJS
  20. 20. Directives vs Controllers vs Services ⦿ Directives ⦿ Manipulation de DOM ⦿ Composants IHM re-utilisables ⦿ Les services ⦿ Dialogue avec le back-end/appels HTTP ⦿ Code métier ⦿ Traitement partagés par plusieurs contrôleurs ⦿ Services natifs préfixés ‘$’ 2014-07-10 Introduction à AngularJS
  21. 21. Directives vs Controllers vs Services ⦿ Controlleurs ⦿ Gestion du scope attaché à une vue ⦿ Gestion des actions utilisateurs ⦿ Les filtres ⦿ Conversion d’un objet en un autre ⦿Exemple : le filtre currency 2014-07-10 Introduction à AngularJS
  22. 22. La définition des routes 2014-07-10 Introduction à AngularJS
  23. 23. Appels asynchrones au back-end 2014-07-10 Introduction à AngularJS
  24. 24. Exemples de use cases ⦿ Cas #1 : agrégateur de news ⦿Interroger Twitter, Google+ et Facebook ⦿Fusionner les trois flux afin d’avoir un flux unique ⦿ Cas #2 : afficher le détail d’un client ⦿Récupérer les infos usuelles dans SAP via un WS ⦿Récupérer des infos additionnels d’une seconde BD via un WS 2014-07-10 Introduction à AngularJS
  25. 25. Notion de callback ⦿ Callback = fonction ⦿Etant donnée une fonction F, on peut rajouter à F un argument supplémentaire qui est une fonction a exécuter en fin de traitement. ⦿ Cas d’un enchaînement d’appels asynchrones: code illisible / enfer des callback ⦿ Solution au callback-hell : les promesses ⦿Une promesse = Résultat d’un traitement asynchrone 2014-07-10 Introduction à AngularJS
  26. 26. Les promesses avec AngularJS 2014-07-10 Introduction à AngularJS
  27. 27. Injection de dépendances et tests 2014-07-10 Introduction à AngularJS
  28. 28. Injection des dépendances 2014-07-10 Introduction à AngularJS
  29. 29. Tests ⦿ Tests unitaires ⦿Injection de dépendances ● On peut mocker facilement les différentes parties de l’application ● On peut donc tester unitairement 2014-07-10 Introduction à AngularJS
  30. 30. Tests : les outils ⦿ Les tests s’exécutent sur la machine de dev ⦿Outil pour exécuter le code Javascript coté serveur ● => NodeJs ⦿Outil JUnit-like pour écrire les tests ● => Mocha, Jasmine, QUnit ⦿Runner pour exécuter les tests ● => +1 Karma ⦿Les tests end-2end ⦿Manipuler le browser via webdriver ● => Protractor ⦿Alternatives à Selenium/Protractor ● => Casper par exemple 2014-07-10 Introduction à AngularJS
  31. 31. Points à surveiller 2014-09-30 Introduction à AngularJS
  32. 32. Attention !!! ⦿ Limites du binding : mémoire (2000 binding ?) ⦿ Pérénité du projet : Google ⦿ Javascript indispensable ⦿ Non respect des bonnes pratiques ⦿Un unique controller pour toute l’application ⦿Code dupliqué dans les différents controllers ⦿Manipulation directe du DOM en dehors des directives ⦿Code complexe dans les expressions et non dans le controller 2014-09-30 Introduction à AngularJS
  33. 33. Outils et documentation 2014-07-10 Introduction à AngularJS
  34. 34. Outils ⦿IDE desktop ⦿IDE supportant Javascript ⦿+1 pour WebStorm (44 € par an) ⦿Les navigateurs ⦿Mode developpeur ⦿ Cas du navigateur : Plugin Batarang ⦿Apparemment très utile 2014-09-30 Introduction à AngularJS
  35. 35. Documentation ⦿Doc en ligne ⦿https://angularjs.org/ ⦿http://goo.gl/EPvajM le groupe Google+ francophone ⦿http://www.frangular.com/ ⦿Livres ⦿“Devenez un ninja avec AngularJS” de Ninja Squad ⦿+1 AngularJS de Brad Green et Shyam Seshadri 2014-09-30 Introduction à AngularJS
  36. 36. 2014-09-30 Introduction à AngularJS

×