-
LecciónFunciones de alto orden en Elixir
En Elixir, como en muchos lenguajes de programación funcionales, en vez de tener un montón de funciones especializadas en un montón de tipos de datos diversos, tenemos funciones generales de alto orden que aceptan como parámetro más funciones, con las cuales podemos especificar cómo queremos que funcionen. -
LecciónTypespecs (parte 1, usando tipos básicos)
Con los type specs se pueden especificar los tipos de los parametros y retornos de las funciones para que herrramientas como Dialyzer puedan analizar de forma estática el código a fin de comprobar que se pasen los parámetros de forma correcta en el código. -
LecciónCómo usar Application
En la máquina BEAM una aplicación consiste en un supervisor y una configuración. El código fuente del paquete compone la aplicación, y la configuración permite parametrizar el comportamiento de la aplicación. -
Lección 📈 En tendenciaCómo crear un Supervisor Tree
Un supervisor es un tipo de proceso que permite controlar automáticamente el ciclo de vida de otros procesos (o GenServers) reiniciándolos automáticamente al detectar un fallo que los tumbe. -
LecciónUn ejemplo práctico de módulo útil
13 minutos de programación comentada en vivo de un módulo usando una dependencia y cosas que hemos visto en los últimos capítulos, como pipelines o funciones de alto orden transformadoras, con el objetivo de dar la excusa para refactorizarlo en el próximo vídeo. -
LecciónTests con ExUnit
ExUnit es un framework para escribir tests en Elixir. En este vídeo, por qué los tests nos vienen bien, y un ejemplo rápido de cómo crear tests con Elixir que profundizaremos en siguientes episodios. -
LecciónTratamiento de errores con rescue
Otra forma más de tratar errores es usar un bloque try-rescue para envolver el código problemático y capturar posibles errores que puedan ocurrir durante su uso para evaluar a expresiones alternativas en caso de error. -
LecciónEjemplo de Application con hijos
Un ejemplo real con la librería Plug de cómo podemos incorporar distintos procesos en el GenServer que debe declararse en una Aplication. Además, por qué hace falta no-halt. -
LecciónCómo renombrar procesos
Registrar un nombre en un proceso (o un GenServer, o un Supervisor) tiene ventajas frente a dejarlos anónimos en términos de identificarlos. Además, cómo podemos explorar en el observer información sobre procesos (como su nombre, por ejemplo). -
LecciónEstrategias para crear un Supervisor
Finalmente, la diferencia entre start_link/2 y start_link/3 y el uso de init/2 para desacoplar la creación de un Supervisor de la especificación de los procesos supervisados y de las opciones de supervisión.