En este sitio web utilizamos cookies para mejorar tu experiencia de navegación y entender mejor tua preferencias. Eso nos ayuda a entenderte mejor y a centrarnos en aquellos tópicos que son de tu interés. Por favor, acepta nuestro uso de cookies.
La mejor forma de entender las cosas es haciéndoselas uno mismo. Por eso este mes queremos profundizar en el mundo de la programación asincrona y re-implementar nuestro propio modelo de promesas. Durante esta charla enteramente de live coding - 0 slides I Promise - repasaremos los principios de las funciones no bloqueantes, modelo de paso de continuación, los thunks y crearemos nuestra propia abstracción Promesa para explotarla en diferentes contextos, tanto basados en then como y basados en entornos async/await.
La programación funcional está cogiendo fuerte tracción en los últimos años dentro de la comunidad de desarrollo. Tal vez ello se deba al surgimiento de nuevas arquitecturas que demandan cotas de escalabilidad, resistencia y flexibilidad en el marco de soluciones centradas en procesos de transformación. Pero más allá de una simple moda, como trataremos de mostrar en este taller, la programación funcional conduce a soluciones de código robustas, versátiles y expresivas que difícilmente son comparables con las propias de la orientación a objetos. Además JavaScript, como la mayoría de los lenguajes de scripting es un lenguaje idiomático que invita a pensar en términos funcionales. De hecho muchas veces, cuando programamos en Javascript, desarrollamos soluciones funcionales casi sin darnos cuenta. Pero para trabajar correctamente en el marco de este paradigma debemos saber, qué es exactamente la programación funcional, cuáles son sus ventajas y principios fundacionales, de qué mecanismos se sirve, qué técnicas de programación se utilizan, qué patrones de diseño funcional existen a nuestra disposición y qué estilos arquitectónicos emergen.
Frecuentemente, cuando pensamos en la programación funcional caemos en el error de pensar en que programar de acuerdo a estos principios, consiste básicamente en utilizar algunas primitivas centradas en operaciones sobre listas. Sin embargo, la programación funcional va mucho más allá de eso. Se trata de crear una única función que responda a nuestro problema por complejo que este sea mediante de la integración compositiva de otras funciones. En un paradigma donde el concepto de instrucción, sentencia u orden de ejecución carece de sentido, a veces los esfuerzos de desarrollo pueden ser complejos pero hay multitud de escenarios donde este modelo de programación resulta muy ventajoso. A lo largo de este taller describiremos cuál es el camino de la programación funcional desde sus orígenes inicios hasta los puntos más intrincados de un estilo declarativo. JavaScript será nuestro gran aliado para recorrer este camino.
Estamos acostumbrados a crear pequeños algorítmos en JavaScript basados en técnicas funcionales. Hemos oido que todo lo que use un buen surtido de métodos map y reduce es digno de ser llamado programación funcional. Pero, ¿de verdad sabemos qué es la programación funcional, cómo son sus arquitecturas, y lo que es más importante, por qué son así? A lo largo de esta charla, enteramente en live coding, explicaremos todos los conceptos de la programación funcional. Desde sus bases más nucleares a concetos más elaborados como combinadores, functores, aplicativos monadas y transductores. Se trata de aprender desde el código a diseñar soluciones y arquitecturas funcionales y de justificar el porqué de cada decisión y restricción de diseño. Tras esta charla tendrás una clara idea del alcance y los objetivos de este paradigma y tendrás un firme criterio para decidir cuándo un determinado problema requiere de una arquitectura funcional.