[BDN-040] Scala
Este curso ofrece una formación integral, desde los fundamentos hasta técnicas avanzadas. Incluye clases, objetos, estructuras de control, y funciones; además, abarca temas como herencia, patrones, colecciones, manejo de XML, diseño modular, DSLs, y patrones de diseño en Scala. Ideal para desarrollar aplicaciones robustas y eficientes.
Duración: 25 horas
Perfil: Avanzado/Experto
Dirigido a
Este curso está diseñado para desarrolladores de software, programadores interesados en aprender Scala, y profesionales que buscan mejorar sus habilidades en programación funcional y orientada a objetos.
Requisitos previos
Los alumnos necesitarán tener conocimientos de programación orientada a objetos y Java.
Objetivos
Dominar los fundamentos del lenguaje Scala: clases, objetos, funciones y cierres.
Aplicar técnicas avanzadas como herencia, programación modular, patrones de diseño y DSLs.
Trabajar con colecciones, listas, XML y herramientas de construcción.
Integrar Scala con Java y desarrollar aplicaciones modernas.
Comprender conceptos avanzados como recursión de cola, continuaciones y parámetros implícitos.
Contenido
Introducción a Scala
Configuración del entorno y primeros pasos en Scala
Conceptos básicos del lenguaje
Clases, Objetos y Tipos
Declaración de clases y objetos
Uso y creación de tipos en Scala
Estructuras de Control
Condicionales, bucles y manejo de flujos de ejecución
Funciones y Cierres
Creación y uso de funciones
Concepto y aplicación de cierres
Composición y Herencia
Diseño de jerarquías de clases
Principios de herencia y polimorfismo
Jerarquía de Scala y Métodos Universales
Profundización en la jerarquía del lenguaje
Uso de métodos comunes en Scala
Traits (Tratos)
Implementación y uso de traits para el diseño modular
Paquetes e Importaciones
Organización del código en paquetes
Uso eficiente de importaciones
Pruebas y Asertos
Creación de pruebas unitarias
Validación del código con asertos
Clases de Caso y Patrones
Uso de clases de caso y patrones de coincidencia
Funciones Parciales y Actores
Creación de funciones parciales
Introducción al modelo de actores para concurrencia
Colecciones y Listas
Trabajo avanzado con listas y colecciones en Scala
Integración con Java y Aplicaciones Web
Interacción con código Java
Construcción de aplicaciones web
Desarrollo de Proyectos en Scala
Aplicación práctica del lenguaje en un proyecto
Estado de los Objetos y Parametrización de Tipos
Gestión del estado mutable e inmutable
Uso de tipos genéricos
Miembros Abstractos y Conversión Implícita
Declaración de miembros abstractos
Uso de conversiones y parámetros implícitos
Trabajo con XML
Manipulación de datos XML en Scala
Programación Modular y Autotipos
Diseño modular y uso avanzado de tipos
Extractores y Estilo Idiomático de Scala
Uso de extractores para patrones
Mejores prácticas de codificación en Scala
Creación de DSLs
Diseño y desarrollo de lenguajes específicos de dominio
Patrones de Diseño en Scala
Implementación de patrones clásicos adaptados a Scala
Recursión de Cola y Continuaciones
Optimización con recursión de cola
Uso de continuaciones delimitadas y distribuidas
Documentación Recomendada
Data Engineering with Scala and Spark
Eric Tome, David Radford & Rupam Bhattacharjee
January 2024 | 300 pages
https://www.packtpub.com/en-us/product/data-engineering-with-scala-and-spark-9781804614327