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.
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.
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.
Etiquetas:
canalizacion,
composicion,
composition,
Dependency Inyection,
DI,
functional programming,
ID,
inyeccion de dependencias,
JavaScript,
pipe,
porogramacion funcional
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.
Etiquetas:
canalizacion,
composicion,
composition,
either,
functional programming,
JavaScript,
monad,
monada,
orogramacion funcional,
pipe
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);
Etiquetas:
canalizacion,
composicion,
composition,
functional programming,
JavaScript,
orogramacion funcional,
pipe
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:
- 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.
- 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.
Etiquetas:
event-driven programming,
extensiones reactivas,
functional programming,
Programacion funcional,
programacion orientada a eventos,
reactive extensions
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.
Etiquetas:
event-driven programming,
extensiones reactivas,
functional programming,
Programacion funcional,
programacion orientada a eventos,
reactive extensions
Suscribirse a:
Entradas (Atom)