Exit e-book
Show all chapters
07
Pero… ¡las aplicaciones en la vida real necesitan ejecutar efectos colaterales!
07. 
Pero… ¡las aplicaciones en la vida real necesitan ejecutar efectos colaterales!

Sign up to our Newsletter

Signing up to our newsletter allows you to read all our ebooks.

    Introducción a la Programación con Efectos Funcionales usando ZIO
    07

    Pero… ¡las aplicaciones en la vida real necesitan ejecutar efectos colaterales!

    Ahora que ya sabemos que la programación funcional trata de programar con funciones puras, y que las funciones puras no pueden producir efectos colaterales, surgen varias preguntas lógicas:

    • ¿Cómo podemos entonces tener una aplicación escrita usando programación funcional, que a la vez interactúe con servicios externos, como bases de datos o APIs de terceros? ¿No es esto algo contradictorio?
    • ¿Significa esto que la programación funcional no se puede usar en aplicaciones reales, sino solamente en ámbitos académicos?

    La respuesta a estas preguntas es la siguiente: Sí, podemos usar programación funcional en aplicaciones reales, y no solamente en ámbitos académicos. Para que nuestras aplicaciones sean capaces de interactuar con servicios externos, podemos hacer lo siguiente: en vez de escribir funciones que interactúan con el mundo exterior, escribimos funciones que describan interacciones con el mundo exterior, las cuales sean ejecutadas solamente en un punto específico de nuestra aplicación (llamado habitualmente como el fin del mundo) por ejemplo la función main.

    Si lo pensamos detenidamente, estas descripciones de interacciones con el mundo exterior son simplemente valores inmutables que pueden servir como entradas y salidas de funciones puras, y de esta forma no estaríamos violando un principio básico de la programación funcional: no producir efectos colaterales.

    ¿Y qué es el antes mencionado fin del mundo? Bueno, el fin del mundo es simplemente un punto específico en nuestra aplicación donde el mundo funcional termina, y donde las descripciones de interacciones con el mundo exterior se ejecutan, usualmente tan tarde como sea posible, preferiblemente en el borde mismo de nuestra aplicación que es la función main. De esta forma, logramos que toda nuestra aplicación esté escrita siguiendo el estilo funcional, pero que al mismo tiempo sea capaz de realizar tareas útiles.

    Ahora que sabemos todo esto surge una nueva pregunta: ¿cómo podemos escribir nuestras aplicaciones de tal manera que todas nuestras funciones no ejecuten efectos colaterales, sino que solamente construyan descripciones de lo que se quiere hacer? Y aquí es donde entra una librería muy poderosa, una que nos puede ayudar con esta tarea: Presentamos la librería ZIO.

    PREVIOUS
    Chapter
    06
    NEXT
    Chapter
    08