Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reactive en C# - MDE.NET

Avatar for Juan P. Juan P.
December 07, 2018

Reactive en C# - MDE.NET

Meetup: 29 de Nov de 2018 en Medellín
Comunidad: MDE.NET
https://www.meetup.com/es-ES/MDE-NET/events/256625082/

Qué tal si cambiamos nuestra manera de escribir código y vemos todo como un suceso de eventos al que tenemos que reaccionar? Veremos un escenario (no frontend) en dónde podamos aplicar programación reactiva y algunos de sus operadores. Compararemos esto con las otras técnicas de programación asíncrona en C# para sacar conclusiones

Avatar for Juan P.

Juan P.

December 07, 2018

Other Decks in Programming

Transcript

  1. Reactive In computing, reactive programming is a declarative programming paradigm

    concerned with data streams and the propagation of change. With this paradigm it is possible to express static (e.g., arrays) or dynamic (e.g., event emitters) data streams with ease, and also communicate that an inferred dependency within the associated execution model exists, which facilitates the automatic propagation of the changed data flow. Wikipedia https://en.wikipedia.org/wiki/Reactive_programming
  2. Analogía - Duncan DeVore Equipo de <ponga aquí su deporte

    favorito> Def - https://www.lightbend.com/blog/understand-reactive-architecture-design-and-programming-in-less-than-12-minutes
  3. Stream de eventos {} {} {} {} {} {} [

    {..},{..},{..},{..},{..},{..} ]
  4. Ejemplo 1 1 2 3 5 8 [ 1,1,2,3,5,8 ]

    … Console.WriteLine(...)
  5. Stream de eventos 1 1 2 3 5 8 13

    21 1 1 2 3 5 8 13 21 Concat(...) … Console.WriteLine(...)
  6. Stream de eventos 1 1 2 3 5 8 13

    21 1 1 2 3 5 8 13 21 Concat(...) … Console.WriteLine(...) 1,1 2,3 5,8 13,21 Buffer( … ) 2 5 13 34 Select( items => items.Sum())
  7. Un escenario “real” Descargar posts de un usuario de Medium

    en formato Markdown Obtener post de un usuario Descargar contenido de cada post Convertir cada post a Markdown Guardar *.md
  8. Un escenario “real” Descargar posts de un usuario de Medium

    en formato Markdown Obtener post de un usuario Descargar contenido de cada post Convertir cada post a Markdown Guardar *.md
  9. Operadores http://reactivex.io/documentation/operators.html http://rxmarbles.com/ - Creacionales - Transformación - Filtro -

    Combinacionales - Manejo de errores - Condicionales - Matemáticos o de agregación - ...
  10. Async como Observables public async Task<...> MyMethodAsync(...) => ... public

    async Task<IEnumerable<...>> MyMethodAsync(...) => ...
  11. Algunas conclusiones - Eventos y conjuntos de datos como Streams

    - Aplica como modelo de programación asíncrona - Operaciones asíncronas como Streams - Declarar operaciones de transformación, filtro y combinación para crear nuevos Streams - Suscribirse para poder empezar a “escuchar” los eventos del Stream - Modelo de programación Declarativo!