Escribir funciones puras y aislar los efectos secundarios en los bordes del programa.
Sustituir bucles con estado por map, filter y reduce sin perder legibilidad.
Componer funciones y aplicar currificación y aplicación parcial en los tres lenguajes.
Trabajar con estructuras inmutables y copias eficientes en Python, Scala y JavaScript.
Modelar ausencia y error con Option y Either en lugar de nulos y excepciones.
Reconocer funtores y mónadas por su comportamiento en código cotidiano, sin formalismo innecesario.
Decidir cuándo el estilo funcional aclara el código y cuándo lo vuelve críptico para el equipo.
Contenido del curso
7 módulos · 35 clases en vídeo · práctica guiada en cada módulo
Módulo 1 · Punto de partida5 clases
Qué problema real ataca el estilo funcional
Función pura, transparencia referencial y efectos
Los tres lenguajes: qué ofrece cada uno de serie
Entorno de trabajo y ejemplos comparados
Un error clásico de estado compartido, diagnosticado
Módulo 2 · Funciones como valores5 clases
Funciones de orden superior en los tres lenguajes
Cierres y captura de variables: trampas habituales
Currificación y aplicación parcial
Composición de funciones y tuberías de datos
Funciones anónimas legibles frente a ilegibles
Módulo 3 · Colecciones sin bucles5 clases
map y filter frente al bucle equivalente
reduce y fold: cuándo aclaran y cuándo confunden
Evaluación perezosa con generadores y streams
Agrupar, particionar y aplanar colecciones
Rendimiento: qué cuesta cada cadena de operaciones
Módulo 4 · Inmutabilidad5 clases
Copias, congelación y estructuras persistentes
Registros y clases de datos inmutables
Actualizar estructuras anidadas sin mutar
Coste en memoria y cómo medirlo
Fronteras mutables controladas dentro de una función
Módulo 5 · Errores sin excepciones5 clases
El problema del nulo y sus consecuencias
Option y Maybe: ausencia explícita en el tipo
Either y Result para errores con información
Encadenar operaciones que pueden fallar
Convivir con bibliotecas que sí lanzan excepciones
Módulo 6 · Abstracciones recurrentes5 clases
Funtores reconocidos en código que ya escribes
Mónadas explicadas por su comportamiento observable
Semigrupos y monoides para combinar resultados
Cuándo nombrar la abstracción y cuándo callarla
Coste de legibilidad para el resto del equipo
Módulo 7 · Proyecto de cierre5 clases
Punto de partida: un procesador de datos con estado
Reescritura funcional por etapas con pruebas
Comparar la versión Scala y la versión JavaScript
Medir claridad y rendimiento antes y después
Guía de estilo funcional acordada para un equipo
Requisitos
Experiencia programando en al menos uno de los tres lenguajes del curso.
Comodidad con funciones como valores, cierres y expresiones lambda.
Haber mantenido código de alguien más, para reconocer los problemas de estado compartido.
Descripción
Buena parte de los errores difíciles de reproducir vienen del estado mutable compartido: una lista que alguien modifica desde otro punto, un objeto que cambia mientras se recorre, una función que devuelve resultados distintos según el orden de llamada. La programación funcional ofrece disciplina frente a esto, pero se explica casi siempre en lenguajes puros que poca gente usa a diario.
Este curso aplica esos conceptos a Python, Scala y JavaScript, que no son funcionales puros y donde las decisiones tienen matices. Se practica con transformaciones de datos, tratamiento de errores sin excepciones y composición de operaciones sobre colecciones. Cada idea se muestra en los tres lenguajes, señalando dónde la sintaxis ayuda, dónde estorba y qué coste tiene la inmutabilidad en cada uno.
Al terminar se dispone de un repertorio aplicable de inmediato a código existente: menos estado compartido, errores explícitos en la firma y transformaciones encadenadas fáciles de probar. Conecta directamente con el curso de concurrencia y paralelismo, donde la ausencia de estado mutable deja de ser una preferencia de estilo para convertirse en requisito de corrección.
¿Para quién es este curso?
Desarrolladores que mantienen código con estado compartido y errores intermitentes difíciles de reproducir.
Perfiles de backend que trabajan con transformaciones de datos y quieren cadenas comprobables.
Equipos que están adoptando Scala o TypeScript y necesitan criterios de estilo compartidos.
Próximamente
Curso en hoja de ruta. Se prioriza según la demanda recogida y los proyectos en cartera.
Este sitio web utiliza cookies propias y de terceros para recopilar información con finalidad técnica. No se recaban ni ceden datos de carácter personal sin tu consentimiento. Más información en la política de cookies.