Seleccionar página

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.

Este taller trata de dar una introducción a la programación funcional que comienza desde lo más básico y va pasando progresivamente hacia conceptos más avanzados. A continuación se resume una relación del programa de contenidos para que os hagáis una idea de lo que se va a abordar.

  • Diseño de Funciones I. Recursión
  • Diseño de Funciones II. Inmersion
  • Orden Superior I. Famila map & reduce
  • Orden Superior II. Evaluación Partial
  • Orden Superior III. Closures & Retentión Léxica
  • Composición I. compose & sequence
  • Composición II. Inversión de control
  • Composición III. Streams
  • Diseño sin Estado I. Fundamentos
  • Diseño sin Estado II. Mónadas
  • Conceptos Avanzados I. Optimización
  • Conceptos Avanzados II.Inmutabilidad

Todos estos temas se abordan en 12 ficheros .js dentro del repositorio en Github que se encuentran en la carpeta code/. Para falilitar la realización y autoevaluación, el material de este taller se ha dividido en dos carpetas. En code/problems puede encontrarse una descripción de cada ejercicio planteado junto con una plantilla de código que ayuda a escribir la solución y probarla. En la carpeta code/solutions se ofrece una propuesta de solución para cada ejercicio planteado. Se anima al lector a no consultar la solución hasta haber intentando cada ejercicio por si mismo.

Parte I. Recursividad e inmersión

Comenzamos el desarrollo de este taller presentando los constructos sintácticos propios de la programación funcional que ofrece JavaScript: funciones, invocación inmediata y el operador condicional como razonador por casos. Presentamos las claves esenciales del diseño de funciones recursivas y estudiamos las técnicas de abstracción basadas en inmersión por parámetros de recorrido y de acumulación.

Parte II. Familia map / reduce y evaluación parcial

Continuamos con algunos problemas de diseño recursivo basado en inmersión y presentamos la familia de funciones abstractas map / reduce. Más que usar las que nativamente implementa JavaScript desde ES5, nosotros primero las implementamos para conocer su anatomía interna y después las aplicamos en problemas. Finalmente presentamos y ejercitamos la evaluación parcial.

Taller avanzado

Diapositivas

Taller impartido por:

JavierVelezJavier Vélez Reyes
Ph. D. Computer Science
@javiervelezreye
Publicado por el autor en http://www.javiervelezreyes.com/

Novedades

Web Components: pasado, presente y futuro

Web Components: pasado, presente y futuro

Los Web Components aparecieron en el panorama de desarrollo hace ya bastante tiempo. Desde su presentación se les ha prestado mucha atención, pero lo cierto es que no han sido acogidos de forma generalizada, quizás por la difusión de nuevos y potentes frameworks. Nos preguntamos qué ha pasado con este estándar y, sobre todo, que puede pasar de aquí en adelante con el uso práctico de los componentes web.

Adaptar un componente web para Microsoft Edge

Adaptar un componente web para Microsoft Edge

Si quieres que tus componentes web funcionen sin problemas en Microsoft Edge, es conveniente que conozcas algunas de sus carencias y cómo resolverlas. Edge tiene soporte nativo a algunas de las características clave de los web component, pero hay que utilizar polyfill en otras y hay que tener en cuenta algunas limitaciones. Próximamente Edge utilizará Chromium como base de su desarrollo, pero de momento, es necesario aplicar estas soluciones.

12 pasos para construir un componente web

12 pasos para construir un componente web

Para conocer cómo se desarrolla realmente un componente web no puedes perderte esta descripción paso a paso de la construcción de un componente real y de cierta complejidad. Podrás descubrir cómo, sólo utilizando el estándar, se pueden hacer cosas muy interesantes y completas.

¿Qué pasa con import y los web components?

¿Qué pasa con import y los web components?

Uno de los más controvertidos pilares de los componentes web ha sido el HTML Import. Considerado en estos momentos como una funcionalidad discontinuada, debemos conocer como sacar el máximo partido la instrucción import de Javascipt para gestionar la carga de nuestros componentes.