Programación en Elixir
Una guía completa sobre programación funcional y concurrente usando Elixir. Cubre la transición desde el pensamiento orientado a objetos hacia el pensamiento funcional, coincidencia de patrones, inmutabilidad, el modelo de actor para concurrencia y la construcción de sistemas distribuidos robustos con OTP.
Descripción del curso
Resumen del Contenido
Una guía completa sobre programación funcional y concurrente con Elixir. Cubre la transición de la programación orientada a objetos hacia el pensamiento funcional, el patrón de coincidencia, la inmutabilidad, el modelo de actor para la concurrencia y la creación de sistemas distribuidos robustos con OTP.
Domina el arte de construir sistemas concurrentes resilientes mediante la belleza de la programación funcional.
Autor: Dave Thomas
Agradecimientos: José Valim, Corey Haines, Bruce Tate, Jessica Kerr, Anthony Eden, Chad Fowler, Kim Shrier, Candace Cunningham y Potomac Indexing.
Objetivos de Aprendizaje
- Contrastar el modelo de transformación de datos de Elixir con la programación convencional basada en estado.
- Configurar la shell interactiva de Elixir (IEx) y ejecutar código de Elixir mediante scripts y compilación.
- Aplicar el operador de coincidencia (
=), el operador de fijación (^) y el comodín (_) para descomponer y validar datos. - Explicar las implicaciones teóricas y prácticas de la inmutabilidad sobre el rendimiento y la gestión de memoria.
- Identificar y utilizar los tipos integrados de Elixir, incluyendo tipos de Valor, Sistema y Colección.
- Aplicar las reglas de ámbito de variables y la expresión
withpara gestionar transformaciones de datos complejas. - Crear e invocar funciones anónimas utilizando notación estándar y notación de captura (
&). - Implementar funciones nombradas dentro de módulos usando coincidencia de patrones y recursión para manejar lógica compleja.
- Aplicar cláusulas de guarda y parámetros por defecto para controlar el flujo de ejecución de funciones.
- Descomponer y Construir Listas: Utilizar el patrón de cabeza/cola para navegar y construir estructuras de listas recursivas.