11
> < next previous PROGRAMMATION RÉACTIVE Et si l’asynchrone devenait plus simple? 1 Rémi MICHEL

Introduction à la programmation réactive

Embed Size (px)

Citation preview

>< nextprevious

PROGRAMMATION RÉACTIVEEt si l’asynchrone devenait plus simple?

1

Rémi MICHEL

Facility Insights

• Performance énergétique

• Petits et moyens bâtiments

>< nextprevious

Application web

• Solution dynamique

• Widgets

Rapports statiques

Contexte

• Solution statique

• Rapports PDF, PPT

2

>< nextprevious

Cahier des charges‣ ETL

‣ Extraction = suite de requêtes HTTPs

‣ Contraintes

‣ Données formatées widgets

‣ Réutilisation / héritage

‣ Charge contrôlée

Pistes explorées01

Callbacks‣ Lisibilité du code ‣ Callback hell

02

03>< nextprevious

Promises

Programmation Réactive

‣ Non “Lazy”

>< nextprevious

Programmation réactive‣ Observables / Streams

‣ Extension du DP “Observer”

‣ Composition (syntaxe déclarative)

‣ 3 composantes:

‣ Observables

‣ Operators

‣ Schedulers

>< nextprevious

‣ Emettre des valeurs

‣ Observer: Réagit aux valeurs émises

‣ Subscribe method:

‣ OnNext

‣ OnError

‣ OnCompleted

Observables

>< nextprevious

‣ Manipuler des observables

‣ Chainage

‣ Syntaxe déclarative: map, reduce, filter, merge

‣ Dépend de l’implémentation (~50 RxJS)

Operators

source: “The introduction to Reactive Programming you've been missing”

>< nextprevious

‣ Structure de données + contexte d’exécution

‣ Quand et ou les tâches sont exécutées

‣ 5 types: Immediate, currentThread, default, HistoricalScheduler, TestScheduler

‣ Concurrence + Tests unitaires (virtual time)

Schedulers

>< nextprevious

‣ Extensions réactives (Rx…)

‣ RxJS, RxPHP, RxJava, RxClojure…

‣ + ou - aboutie

‣ Autres: BaconJS (https://baconjs.github.io/)

‣ Tuto: Validations de formulaires

Implémentations

>< nextprevious

‣ Talk Matthew Podwysocki: https://www.youtube.com/watch?v=9fFWv4jmSgs

‣ ReactiveX: http://reactivex.io/intro.html

Pour aller plus loin…

>< nextprevious