Reactive Extensions

RxJava

Programmation réactive

Paradigme consistant à modéliser le logiciel comme un flot d'évènements modifiant l'état du système

  • Orienté message : chaque évènement est un nouveau message reçu
  • Asynchrone : les modifications peuvent produire de nouveaux évènements

Objectifs

  • Performance/Scalabilité
  • Robustesse/tolérence aux pannes
  • Maintenabilité

rx.Observable

patron de conception : itérateur et observer

composition des traitements (comme avec les Stream)

asynchrone au besoin

Pattern observer

Classe principales

  • Observable au quel on souscrit
  • Observer object qui souscrit à l'Observable
    • onNext()
    • onCompleted()
    • onError()
  • Subscription permet de gérer les sousscription

Talk is cheap!

Show me the code!

Documentation

Hot Observable

Intérêts

  • composition des traitements
  • testabilité
  • lisibilité (quand c'est bien fait !)
  • scalabilité
  • monitorabilité

Adoption