Elixir es un lenguaje de programación funcional diseñado para construir aplicaciones escalables y mantenibles que aprovecha y potencializa el poder de la máquina virtual de Erlang, famosa porque habilita el desarrollo de sistemas altamente concurrentes y tolerantes a fallas.
Phoenix es un framework que permite construir aplicaciones y APIs para la web moderna soportando grandes volúmenes de operaciones con excelente desempeño y uso muy bajo de recursos. 

Hoy en día compañías famosas como WhatsApp (adquirida por Facebook) utilizan Erlang como base principal de su operación, soportando a miles o millones de usuarios simultáneamente y ofreciendo servicios que ofrecen el 99.99% de disponibilidad. ¿Cómo lo hacen? Ven y descúbrelo en este entrenamiento...

· A quien va dirigido:

  • Personas o empresas que desarrollan servicios o aplicaciones web.
  • Personas o empresas que requieren de alta disponibilidad en sus sistema de backend.
  • Personas o empresas que buscan aprovechar de forma mas eficiente su infraestructura.
Los beneficios al asistir a este curso son:
  • Como persona aprender una tecnología que será cada vez mas relevante para servicios consumidos por móviles.
  • Como empresa contar con una plataforma estable, madura, que ha sido probada por casi 30 años en sistemas productivos grandes y complejos.

Conocerás los elementos necesarios para crear aplicaciones altamente escalables y tolerantesa a fallos

· Temario del entrenamiento:

Elixir
Día 1
  • Historia
  • Characteristics principales
  • Tipos de datos base
  • Documentación
Día 2
  • Tipos de datos compuestos
  • Pattern Matching 
  • Enums y Streams
  • Protocolos 
  • Excepciones
Erlang
Día 3
  • Historia de Erlang 
  • Características principales 
  • BEAM
  • Procesos
  • Supervisión
Día 4
  • Pruebas
  • OTP
    • ¿Qué es?
    • Procesos y Concurrencia
    • Genserver 
    • Task
    • Agente
    • Supervisores
    • Aplicaciones
Phoenix framework
Día 5
  • Phoenix
    • Arquitectura
    • Plug 
    • Creación y estructura de un proyecto
    • Ejemplos prácticos
    • Ecto 
    • Migraciones 
    • Pruebas 
    • Channels
  • Manejo de Releases 

· Pre-requisitos:

Obligatorios
  • Conocimientos básicos de programación (C,Java,Javascript,C#,Ruby,Python,Objective-C). 
  • Familiaridad trabajando en la linea de comandos (Unix o Windows). 
  • Editor de texto (Textmate,Sublime,Vim,Emacs, NotePad++). 
  • Conocimientos básicos de HTML y CSS.
Opcionales
  • Conocimientos de programación funcional 
  • Conocimientos de redes