-
Lecciónwith
with permite agrupar múltiples expresiones de tipo pattern matching en un único bloque do-end, de tal manera que la única forma de evaluar su interior es que todos los matches sean válidos a la vez. Con esto podemos desplegar cómodamente expresiones envueltas en tuplas sin crear un excesivo número de... -
LecciónElevando errores con raise
Cuando encontramos una situación anómala en nuestras funciones, podemos interrumpir la evaluación del resto de la función mediante el comando `raise`, que nos permite lanzar hacia fuera un Error que puede ser tratado en otro bloque try-rescue. -
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ónTypespecs (parte 2, tipos propios y t())
A medida que desarrollemos estructuras de datos más complejas, el sistema de tipos de Elixir se nos quedará corto. Por suerte lo podemos extender creando nuestras propias definiciones de tipos para fabricar abstracciones sobre otras estructuras más complejas. -
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ónResumen sobre procesos OTP
Hemos visto demasiadas cosas en la última docena de episodios. ¡Es hora de poner un poco de orden con un mindmap que ayude a aclarar las ideas! -
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. -
LecciónEstrategias para trabajar con Supervisor
Más sobre las child-specs y las estrategias para lanzar supervisores, y cómo crear supervisores usando módulos separados. -
LecciónCó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ónOperadores y funciones para mapas y keyword lists
Veamos qué operadores tenemos a nuestra disposición para trabajar con keyword lists. Con mapas es un poco más complicado porque no nos vale el operador ++, pero tenemos el módulo Map para hacer todo este tipo de cosas.