[BDN-040] Scala
- Pronoide Wiki Web
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