La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

2 Javascript dans tous ses états Bruno MichelYann Schwartz AF83Polom

Présentations similaires


Présentation au sujet: "2 Javascript dans tous ses états Bruno MichelYann Schwartz AF83Polom"— Transcription de la présentation:

1

2 2 Javascript dans tous ses états Bruno MichelYann Schwartz AF83Polom @brmichel@abolibibelot

3 3 Au menu Contexte Javascript serveur & asynchrone : node Javascript réactif : Reactive Extensions Javascript, the good parts : coffeescript

4 4 Contexte

5 5 Interlude Javascript côté serveur

6 6 Javascript serveur & asynchrone : node

7 7 node.js Un environnement JavaScript Côté serveur Avec un modèle asynchrone Efficace pour les I/O Plus simple que le C ;-)

8 8 Démo Hello World, version web

9 9 Démo Un serveur de discussion en ligne

10 10 Le modèle asynchrone Le principe : déléguer à node.js Dès que l'on risque d'attendre on demande à node.js : Fais ceci dès que tu peux et quand c'est fait, reviens me voir Une fonction de callback Avec error en premier paramètre Un UNIQUE thread dexécution (mais toutes les actions dI/O sont asynchrones)

11 11 Les avantages Node.js très efficace pour la concurrence Gère les I/O pour vous Quasiment aussi rapide qu'un serveur HTTP Beaucoup de connexions en parallèle Mais reste simple à écrire Sans les problèmes classiques des threads (synchronisation, ressources, etc.)

12 12 L'écosystème Un écosystème qui grandit rapidement https://github.com/ry/node/wiki/ Quelques modules à connaître NPM – Node Package Manager Vows – Tester votre code Express – Un framework web léger Fugue – Serveur avec plusieurs instances

13 13 Javascript réactif : Reactive Extensions

14 14 Reactive Extensions for Js Si on parlait de LINQ ?

15 15 LINQ ? Une approche déclarative Evaluation paresseuse On enchaîne les opérateurs pour travailler sur un flux de données On compose ses traitements

16 16 LINQ en une phrase Un pattern de manipulation de données, composable, et basé sur le pull.

17 17 Revenons à nos moutons La programmation Javascript fait grand usage : Des événements De lasynchrone Gérer asynchrone et événements devient vite complexe On pense encore synchrone et impératif Gestion des erreurs Synchronisation et combinaisons Et si on avait un « LINQ to events » ? Mais en Javascript

18 18 Reactive Extensions LINQ : IEnumerable Rx : Observable et Observer LINQ et Rx : évaluation paresseuse « just in time » LINQ et Rx : on compose des opérateurs

19 19 Observable et Observer Un Observable Une source à laquelle on sabonne Un Observable nest pas un événement Abstraction facilement manipulable et composable Plus facile à tester Un Observer sabonne à lObservable Consomme Précise ce qui se passe en cas derreur ou de fin

20 20 Les observables permettent de manipuler une chronologie dévénements comme une séquence On applique des opérateurs à cette chronologie Et on exprime ainsi un workflow

21 21 Quelques opérateurs « Classiques » Where, Select, Skip, TakeWhile, Zip, Range Agrégations Min, Max, Sum, Aggregate, Scan, GroupBy Structures de contrôle If, Then, While Spécifiques Rx BufferWith* Amb Join ForkJoin From*Event, ToAsync, XmlHttpRequest

22 22 Exemple

23 23 Démo Rx Javascript

24 24 Javascript, the good parts : coffeescript

25 25 Coffeescript

26 26 Javascript Ce qui est beau First class functions Closures Prototypes et dynamisme Objets littéraux

27 27 The ugly parts Les variables globales La portée Les points virgule en folie Les comparaisons hasOwnProperty… le mot clé with… Les bonnes et moins bonnes manières de créer des objets Le bruit syntaxique des { ( et ;

28 28 Coffeescript Et si on gardait les bons côtés… … en oubliant les autres ? Fonctions plus simples à écrire Plus daccolades La bonne portée par défaut Pas de mauvaises surprises sur la comparaison Création simplifiée des classes Quelques bonus

29 29 Compilation Coffeescript se compile en Javascript standard et propre (performances comparables) Compilation en ligne de commande ou à la volée Compatible avec toutes les bibliothèques Javascript existantes (jquery, Rx, node ….)

30 30 Ressources Reactive Extensions Home : msdn.microsoft.com/data/gg577609 Série sur RxJs : weblogs.asp.net/podwysocki/ Node Home : github.com/ry/node Binaires windows : node-js.prcn.co.cc Coffeescript Home : jashkenas.github.com/coffee-script/ Wrapper.NET : github.com/abolibibelot/coffeescript-dotnet Démos github.com/abolibibelot/Techdays2011_Javascript

31 31 MSDN et TechNet : lessentiel des ressources techniques à portée de clic http://technet.com http://msdn.com Portail administration et infrastructure pour informaticiens Portail de ressources technique pour développeurs


Télécharger ppt "2 Javascript dans tous ses états Bruno MichelYann Schwartz AF83Polom"

Présentations similaires


Annonces Google