SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
@mordonez_me
Marco Ordoñez
Scala Perú
Futures en Scala
@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.
Perú users group
Futures
¿Qué son y para que se usan?
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?
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?
Perú users group
Futures
Conociendo los Futures en Scala
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.
Perú users group
Futures, fundamentos
Es posible también definir un contexto de ejecución diferente y no usar el definido por Scala.
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.
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
Perú users group
Gracias

Más contenido relacionado

Similar a Conociendo los Futures en Scala (Tercer meetup Scala Perú Feb 2016)

Conceptos de programación orientada a objeto
Conceptos de programación orientada a objetoConceptos de programación orientada a objeto
Conceptos de programación orientada a objeto
JJ
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POO
sena
 

Similar a Conociendo los Futures en Scala (Tercer meetup Scala Perú Feb 2016) (20)

Java jaucito
Java jaucitoJava jaucito
Java jaucito
 
Conceptos de programación orientada a objeto
Conceptos de programación orientada a objetoConceptos de programación orientada a objeto
Conceptos de programación orientada a objeto
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
 
Glosario de terminos
Glosario de terminosGlosario de terminos
Glosario de terminos
 
Guia 1 java
Guia 1 javaGuia 1 java
Guia 1 java
 
Programacion Orientada Objetos.pdf
Programacion Orientada Objetos.pdfProgramacion Orientada Objetos.pdf
Programacion Orientada Objetos.pdf
 
Nhibernate
NhibernateNhibernate
Nhibernate
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Tarea 05 OP.docx
Tarea 05 OP.docxTarea 05 OP.docx
Tarea 05 OP.docx
 
Java basico
Java basicoJava basico
Java basico
 
algorimo distribuidos
algorimo distribuidosalgorimo distribuidos
algorimo distribuidos
 
Visual Basic 2005
Visual Basic 2005Visual Basic 2005
Visual Basic 2005
 
investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y librerias
 
lenguaje y herramientas
lenguaje y herramientaslenguaje y herramientas
lenguaje y herramientas
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POO
 
API Java
API JavaAPI Java
API Java
 
1. tipos de datos abstractos
1. tipos de datos abstractos1. tipos de datos abstractos
1. tipos de datos abstractos
 
trabajo pharo
trabajo pharotrabajo pharo
trabajo pharo
 
INFOGRAFIA.pdf
INFOGRAFIA.pdfINFOGRAFIA.pdf
INFOGRAFIA.pdf
 

Último

TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptxTECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
UPSE
 
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdfTECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
UPSE
 

Último (10)

Especificación casos de uso del negocio
Especificación  casos de uso del negocioEspecificación  casos de uso del negocio
Especificación casos de uso del negocio
 
contabilidad para la inflacion, contabilidad superior
contabilidad para la inflacion, contabilidad superiorcontabilidad para la inflacion, contabilidad superior
contabilidad para la inflacion, contabilidad superior
 
El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)
 
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
 
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptxTECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
 
Modelado de Casos de uso del negocio
Modelado de  Casos  de  uso  del negocioModelado de  Casos  de  uso  del negocio
Modelado de Casos de uso del negocio
 
Tipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdfTipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdf
 
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptxCIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
 
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdfTECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
 
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptxCiberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
 

Conociendo los Futures en Scala (Tercer meetup Scala Perú Feb 2016)

  • 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.
  • 3. Perú users group Futures ¿Qué son y para que se usan?
  • 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?
  • 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?
  • 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.
  • 8. Perú users group Futures, fundamentos Es posible también definir un contexto de ejecución diferente y no usar el definido por Scala.
  • 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.
  • 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