Logo de Código Facilito
  • Inicio
  • Replays
  • Iniciar sesión
  • Crear cuenta
  • Explorar cursos
  • Bootcamps
  • Precios
  • Blog

¡Califica el Curso profesional de Angular - old!

Selecciona la calificación de 1 a 5 estrellas

Reporta un error

Curso Curso profesional de Angular - old

Video Programación reactiva

Tipo de error

Algo salió mal al cargar el vídeo

El vídeo no pudo cargarse, hemos enviado un reporte al equipo de desarrollo, para poder solucionarlo a la brevedad.

Mientras solucionamos el problema, intenta lo siguiente para solucionar el error:

  • Recarga la página
  • Intenta reiniciar tu navegador y luego vuelve a reproducir el vídeo
  • Vacía el caché de tu navegador
  • Intenta reproducir con las extensiones del navegador deshabilitadas
  • Intenta con un navegador distinto
  • Si el problema persiste contáctanos en Discord
home Ir al inicio report_problem Reportar falla star Valorar curso

Decimos que algo es reactivo cuando reacciona, un ejemplo de esto son las celdas de excel que se calculan en base a otras, notas cómo cuando actualizamos el dato de una celda, el de la otra se actualiza automáticamente, luego por supuesto de ejecutar las operaciones deseadas, ese es el concepto abstracto de programación reactiva.

La programación reactiva, es un paradigma de programación, tal como lo son la programación orientada a objetos o la programación funcional.

En el centro de este paradigma están los datos y la ejecución asíncrona de las operaciones que realiza nuestro programa.

La ejecución asíncrona de instrucciones trae incontables beneficios, mejoras a la experiencia de usuario, al rendimiento de tu código, etc. Sin embargo, es más complicada de razonar y puede presentar desafíos como el compartir información entre dos operaciones que se ejecutan en distintos puntos del tiempo.

Uno puede pensar en la ejecución de un programa, como una línea del tiempo, como una flecha que va del inicio del programa, hasta el final. Durante este proceso, algunas operaciones se ejecutan en un orden previamente definido, primero a, luego b y luego c, a esto se le conoce como programación síncrona. Por otro lado, existen algunas operaciones que se ejecutan y sólo traen información al flujo, aunque no se sabe cuándo, a estos procesos los llamamos asíncronos.

---a------b------------c------------------>

---a------b---Ra---------c---Rc-------Rb-------->

Como mencioné, este beneficio de sacar operaciones fuera del flujo, puede traer enorme beneficios, pero hace de nuestro código y nuestro programa más difíciles de razonar. Es decir, ¿cómo hacemos que nuestro programa reaccione a datos que no sabe cuándo vendrán?

Para solucionar esto, se han implementado diferentes soluciones y patrones, uno de ellos el de la programación reactiva.

En programación reactiva, decimos que hay algunos tipos de datos que representan un dato a través del tiempo, esto quiere decir que esta referencia se mantiene actualizada, es decir “reacciona”. Uno de mis ejemplos favoritos es el que presenta Laurence Gonsalves en StackOverflow (https://stackoverflow.com/a/1028642).

x = ; y = ;

En este caso, las referencias mouse-x y mouse-y son una representación de las coordenadas del mouse a través del tiempo, lo que quiere decir que estos datos se mantienen actualizados sin que nosotros lo hagamos, siempre mantendrán el valor que se emita del mouse.

Aquí es donde los dos conceptos se entrelazan, la programación reactiva es interesante porque nos permite representar los valores de operaciones asíncronas con tipos de datos que siempre reflejan el valor de una operación a través del tiempo.

Esto es posible porque como parte del patrón de diseño existe el concepto de la propagación de cambio. Pongamos un ejemplo, supongamos que tengo la siguiente suma:

a = x + y

En un paradigma tradicional de programación, a es la suma de x + y, en el momento en el que se realiza la operación, si posteriormente modificamos x o modificamos y. A no se vería afectado.

En programación reactiva, en cambio, las modificaciones a x o y, pudieran significar que a debe recalcular su valor, recuerda, como las celdas de Excel que si modificamos un valor con el que están sincronizadas, la celda se recalcula.

Esta también es la razón por la que decimos que ciertos frameworks de JavaScript son reactivos, porque propagan cambios y recalculan sin que explícitamente el código se los indique, claros ejemplos son React, Angular y Vue.

Este enfoque de desarrollo nos permite expresar operaciones aunque el valor de algunos de los elementos aún no tengan valor, porque lo están esperando, vayan a cambiarlo porque el usuario interactúa con él, o bien, básicamente cualquier modificación.

Esto a su vez, se traduce en que nuestro programa es una representación del flujo de información, por ejemplo:

peliculas = peliculasAsync -> estructurarPeliculas -> convertirJSON;

Nota como en este pequeño pseudocódigo no se asume cuándo las películas estarán listas, o si estas cambian, se recalcula por completo la estructura y la conversión a JSON. Esto reduce la cantidad de código que escribimos porque no tenemos que estar al pendiente de actualizaciones o cuándo el resultado de peliculasAsync está completo, si este cambia, etc.

La programación reactiva es código más expresivo y una excelente solución a las complejidades del código asíncrono, en un siguiente tema hablaremos de una de las implementaciones, el patrón del Observador.

  • check_circle_outline
    Módulo 1 | 7 clases

    Introducción

    expand_more
  • check_circle_outline
    Módulo 2 | 9 clases

    Primeros pasos con Angular

    expand_more
  • check_circle_outline
    Módulo 3 | 21 clases

    Componentes a detalle

    expand_more
  • check_circle_outline
    Módulo 4 | 14 clases

    Servicios y Observadores

    expand_more
    • done_all

      Clase 1

      Actualizar a Angular 6

    • done_all

      Clase 2

      Servicios en Angular

    • done_all

      Clase 3

      Crear tu propio servicio

    • done_all

      Clase 4

      Consultas asíncronas

    • done_all

      Clase 5

      Inyector de dependencias en Angular

    • done_all

      Clase 6

      Compartir datos de un servicio

    • done_all

      Clase 7

      Programación reactiva

    • done_all

      Clase 8

      El patrón del observable

    • done_all

      Clase 9

      Observadores y Observables en RxJS

    • done_all

      Clase 10

      Operadores en RxJS

    • done_all

      Clase 11

      Async Pipe

    • done_all

      Clase 12

      Operador de navegación segura ?.

    • done_all

      Clase 13

      Async y suscripciones a un Observable

    • done_all

      Clase 14

      Servicios en Angular 6

  • check_circle_outline
    Módulo 5 | 7 clases

    Animaciones

    expand_more
  • check_circle_outline
    Módulo 6 | 2 clases

    Cierre del curso

    expand_more

Programación reactiva

arrow_back Siguiente arrow_forward
Curso profesional de Angular - old