$30 off During Our Annual Pro Sale. View Details »

Conociendo a los Futures en Scala

mordonez
February 04, 2016

Conociendo a los Futures en Scala

Presentación de la tercera reunión de Scala Perú

mordonez

February 04, 2016
Tweet

More Decks by mordonez

Other Decks in Technology

Transcript

  1. @mordonez_me
    Marco Ordoñez
    Scala Perú
    Futures en Scala

    View Slide

  2. @mordonez_me
    Marco Ordoñez
    Apasionado de las nuevas tecnologías.
    Usuario de las tecnologías de Scala desde hace ~3 años.
    Fundador de la empresa Evolbit (www.teamevolbit.com).
    Promotor del uso de los principios reactivos en el desarrollo de Software.

    View Slide

  3. Perú users group
    Futures
    ¿Qué son y para que se usan?

    View Slide

  4. Perú users group
    Futures, ¿qué son y para que se usan?
    Un Future es un objeto que sirve como envoltorio de un valor que estará disponible en un futuro.
    Este objeto permite realizar operaciones sobre ese valor sin que el mismo se encuentre disponible
    en ese momento debido a que su computación aún se encuentra en proceso.
    Los futures permiten ejecutar bloques de código en forma asíncrona facilitando la computación en
    paralelo.
    Una vez que el valor ha sido computado el Future se completa y retorna el valor (callbaks).
    Los futures son una estructura monádica, la ventaja de esta característica es que el resultado se
    encapsula en una estructura de datos que permite la composición.
    ¿Qué son Futures?

    View Slide

  5. Perú users group
    Futures, ¿qué son y para que se usan?
    Mucha de la computación que se realiza se ejecuta de forma síncrona, el programa se ejecuta linea
    por linea de arriba a abajo y cada linea no puede ser ejecutada hasta que la linea anterior haya
    terminado su instrucción.
    En muchas ocasiones este comportamiento puede ser normal sin embargo en la computación de
    hoy en día las cosas están cambiando y el paralelismo y la programación asíncrona están tomando
    más protagonismo debido a sus ventajas (por ejemplo, la mejor utilización de recursos de
    hardware).
    Un caso muy común para el uso de los futures es el consumo de uno o muchos webservices (REST)
    que luego necesitan ser combinados para procesar datos.
    En Scala, los futures son la base de la programación asíncrona y reactiva y son usados en muchas
    librerías y frameworks.
    ¿Para qué se usan los futures?

    View Slide

  6. Perú users group
    Futures
    Conociendo los Futures en Scala

    View Slide

  7. Perú users group
    Futures, fundamentos
    En scala, los futures se encuentran en el paquete scala.concurrent y necesitan de un
    ExecutionContext para ejecutarse.
    Para empezar a utilizar los futures debemos de importar Future y especificar un contexto de
    ejecución.

    View Slide

  8. Perú users group
    Futures, fundamentos
    Es posible también definir un contexto de ejecución diferente y no usar el definido por Scala.

    View Slide

  9. Perú users group
    Futures, fundamentos
    Los futures además ofrecen un mecanismo de recuperación que permite brindar retornar un valor
    diferente cuando el Future falla, para ellos usamos recover y recoverWith.
    recover permite retornar un valor directamente
    recoverWith permite retornar un valor usando otro Future.

    View Slide

  10. Perú users group
    Futures, ¿qué son y para que se usan?
    Ejemplos de uso de Futures:
    https://github.com/evolbit/scala-futures
    VisualVM:
    https://visualvm.java.net/
    Futures:
    http://docs.scala-lang.org/overviews/core/futures.html
    Recursos

    View Slide

  11. Perú users group
    Gracias

    View Slide