Mostrando entradas con la etiqueta functional programming. Mostrar todas las entradas
Mostrando entradas con la etiqueta functional programming. Mostrar todas las entradas

martes, 10 de marzo de 2020

Composición de software - Inyeccion de dependencias funcional en la canalización de funciones.

La cosa viene de la I  y II parte. Pégale un vistazo si no lo has hecho todavía.

En esta entrada voy a demostrar lo fácilmente que se puede modificar y/o extender el comportamiento del workflow de la aplicación y además como se puede hacer inyectando las dependencias para conseguir una arquitectura con bajo acoplamiento.

lunes, 9 de marzo de 2020

Composición de software - Canalización de funciones con aridad heterogénea en JavaScript usando mónadas.

La cosa viene de la I parte. Pégale un vistazo si no lo has hecho todavía.

En esta entrada voy a usar una unión disyuntiva en las funciones orquestables del ejemplo anterior y modificamos la función pipe para que opere con ella.

jueves, 5 de marzo de 2020

Composición de software - Canalización de funciones con aridad heterogénea en JavaScript

La canalización de funciones es una de las partes más importantes para el desarrollo de software usando el paradigma de programación funcional.

Si revisas las entradas del gran Eric Elliott en Medium verás una línea de código extremadamente sagaz:

const pipe = (...fns) => x => fns.reduce((v, f) => f(v), x);

jueves, 11 de agosto de 2016

Programación reactiva II.

En la entrada anterior puse un ejemplo de programación reactiva. Ese ejemplo no es de muy buena calidad pero creo que ayuda mucho a obtener la mentalidad que hay que adoptar para la programación orientada a eventos.

Los problemas principales del ejemplo anterior son dos:
  1. La variable estática isRunning para filtrar el stream de eventos de scroll hace que me sangren los ojos cada vez que la veo. Es chapucero como sincronizador de hilos de ejecución y agrega una dependencia sin contexto en el método updateGrid; y el contexto importa; y mucho; si se quiere evitar tener una asquerosa bola de lodo como código fuente.
  2. No tenemos control sobre el índice de elementos a recuperar (---0---100---200---300--->) y eso no es bueno puesto que en un entorno real es necesario un máximo (aunque sólo sea para evitar un overflow) y probablemente más cosas, como decrementarlo, saltar directamente a una página no secuencial, etc.
En esta entrada toca hacer lo mismo pero un poco más pro. Al fin y al cabo necesitamos seguir ignorando eventos mientras cargamos la rejilla y necesitamos un stream con el índice de los elementos a recuperar para que se integre con los demás streams.

miércoles, 10 de agosto de 2016

Programación reactiva.

Pues estoy aquí, enredando con Reactive Extensions (Rx) en .NET y la verdad es que me gusta bastante. La inmutabilidad de los Observables y la programación funcional son conceptos encantadores para arquitecturas orientadas a eventos.

Antes de poner algo de código tonto para satisfacer mi ego me gustaría comentar ciertos detalles que voy descubriendo a medida que me pego con esto.