Declarar valores inmutables y funciones, y aprovechar la inferencia de tipos de Scala.
Modelar datos con case classes, objetos y traits, y recorrerlos con coincidencia de patrones.
Transformar colecciones inmutables con map, flatMap, filter y fold.
Representar la ausencia y el fallo con Option, Either y Try en lugar de nulos.
Definir clases genéricas y funciones de orden superior con parámetros de tipo.
Compilar y ejecutar un proyecto con sbt y organizar el código en paquetes.
Escribir comprensiones for como forma legible de encadenar transformaciones.
Contenido del curso
8 módulos · 39 clases en vídeo · práctica guiada en cada módulo
Módulo 1 · Presentación y entorno4 clases
Qué es Scala y dónde se usa hoy
Primera celda en JupyterLab con Almond
Expresiones frente a instrucciones
sbt y la estructura de un proyecto
Módulo 2 · Valores, tipos y funciones5 clases
val, var e inmutabilidad por defecto
Tipos básicos e inferencia
Definir funciones y funciones anónimas
Parámetros con nombre y valores por defecto
Funciones de orden superior
Módulo 3 · Clases, objetos y traits5 clases
Clases y constructores
case classes e igualdad estructural
object, companion object y apply
Traits y composición de comportamiento
Herencia y clases selladas
Módulo 4 · Coincidencia de patrones5 clases
match sobre valores y tipos
Desestructurar case classes
Guardas y patrones anidados
Extractores con unapply
Exhaustividad con jerarquías selladas
Módulo 5 · Colecciones5 clases
List, Vector, Set y Map inmutables
map, flatMap y filter
fold, reduce y agregaciones
Comprensiones for y su traducción
Colecciones mutables: cuándo se justifican
Módulo 6 · Ausencia y error5 clases
Option en lugar de null
Either para resultados con causa
Try y excepciones encapsuladas
Encadenar operaciones que pueden fallar
Validación de datos de entrada
Módulo 7 · Genéricos y del cuaderno al proyecto5 clases
Parámetros de tipo en clases y métodos
Restricciones de tipo básicas
Implícitos y parámetros dados: primera aproximación
Proyecto sbt: compilar y ejecutar
Pruebas con ScalaTest o MUnit
Módulo 8 · Caso práctico: procesado de un fichero de datos5 clases
Modelo de datos con case classes
Lectura y validación línea a línea
Transformaciones y agregados
Informe de errores acumulados
Entrega: proyecto sbt con pruebas
Requisitos
Haber programado antes en algún lenguaje, preferiblemente Java o Python.
Basta con un navegador: se practica en JupyterLab con el kernel Almond.
Para el bloque de proyectos conviene un JDK y sbt instalados en el equipo.
Descripción
Scala reúne en un solo lenguaje la orientación a objetos y la programación funcional, y esa mezcla es su fuerza y también la causa de que asuste al principio: el mismo problema se puede resolver de varias maneras y no está claro cuál es la idiomática. Además, montar un proyecto con sbt antes de escribir la primera línea desanima a cualquiera.
Aquí se empieza en cuaderno con el kernel Almond, escribiendo expresiones y viendo el resultado sin configurar nada. El recorrido cubre valores inmutables, case classes, traits, coincidencia de patrones, colecciones y el tratamiento del fallo con Option y Either, siempre con el criterio idiomático explicado. El bloque final traslada el trabajo a un proyecto sbt con pruebas.
Al terminar se puede leer código Scala de proyectos reales y escribir el propio con un estilo coherente. Es el paso previo al curso de Scala funcional y para ingeniería de datos, donde entra Spark, y también una buena preparación para cualquier trabajo con procesamiento distribuido, donde Scala sigue siendo el lenguaje de referencia.
¿Para quién es este curso?
Desarrolladores Java que se incorporan a un proyecto de datos escrito en Scala.
Ingeniería de datos que trabajará con Spark y necesita el lenguaje antes que el framework.
Programadores que quieren aprender programación funcional sin abandonar la máquina virtual de Java.
Bajo demanda
Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.
Fundamentos del lenguaje, orientación a objetos, ficheros, concurrencia y tests, y después análisis y visualización de datos con NumPy, Pandas, Matplotlib y Seaborn.
Este sitio web utiliza cookies propias y de terceros para recopilar información con finalidad técnica. No se recaban ni ceden datos de carácter personal sin tu consentimiento. Más información en la política de cookies.