-
LecciónComportamientos
Los comportamientos es la respuesta de Elixir a la programación por contrato y a la fabricación de interfaces que encontramos en otros lenguajes de programación. Mediante callback y behaviour podemos crear módulos que especifican primitivas que otros módulos deben implementar. -
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ó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ó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 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ó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 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ó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. -
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ónControl de errores y gestión de un GenServer
Un popurrí de trucos y consejos para usar los GenServers, así como una explicación sobre cómo señalizar correctamente los errores en un GenServer mediante el átomo :stop. Síganme para más recetas: https://hexdocs.pm/elixir/GenServer.html 00:00 ¿Pero cuál de todas estas funciones debo usar? 03:35 Devolviendo :stop o :ignore en el init 07:51...