Explicar las reglas de propiedad de Rust y prever cuándo un valor se mueve o se copia.
Tomar prestado un valor de forma compartida o mutable respetando las reglas del comprobador.
Anotar tiempos de vida en funciones y structs cuando el compilador no puede deducirlos.
Modelar datos con structs y enumerados y recorrerlos con match exhaustivo.
Tratar el fallo con Result y Option, y propagarlo con el operador de interrogación.
Crear y compilar un proyecto con Cargo, añadir dependencias y ejecutar pruebas.
Interpretar los mensajes del compilador de Rust y usarlos para corregir el diseño.
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é problema vino a resolver Rust
Primera celda en JupyterLab con evcxr
rustup, cargo y la cadena de herramientas
Leer un mensaje de error del compilador
Módulo 2 · Tipos, variables y funciones5 clases
Inmutabilidad por defecto y palabra clave mut
Enteros, coma flotante, booleanos y caracteres
Tuplas y arrays
Funciones, expresiones y valor de retorno
Sombreado de variables
Módulo 3 · Propiedad5 clases
Pila y montón en Rust
Movimiento de valores y por qué se invalida el origen
Copia frente a clonación
Propiedad y funciones: entrada y salida
Ejercicio: seguir el rastro de un valor
Módulo 4 · Préstamos y referencias5 clases
Referencias compartidas y mutables
La regla de un solo préstamo mutable
Slices de cadena y de array
Errores típicos del comprobador de préstamos
Reescribir código para que compile sin clonar
Módulo 5 · Structs, enums y patrones5 clases
Definir structs y métodos con impl
Enumerados con datos asociados
Option y ausencia de valor sin nulos
match exhaustivo y if let
Derivar rasgos habituales
Módulo 6 · Errores y colecciones5 clases
Result y propagación con el operador de interrogación
panic frente a error recuperable
Vec: crecimiento y acceso
HashMap y entradas
String y str: la diferencia que confunde
Módulo 7 · Tiempos de vida y organización5 clases
Por qué existen las anotaciones de tiempo de vida
Anotarlas en funciones y en structs
Elisión: cuándo no hacen falta
Módulos, visibilidad y crates
Pruebas con cargo test
Módulo 8 · Caso práctico: herramienta de línea de comandos5 clases
Lectura de argumentos y de ficheros
Modelo de datos con enums y structs
Errores propios con mensajes claros
Pruebas unitarias y de integración
Entrega: binario compilado con cargo build
Requisitos
Haber programado antes en algún lenguaje: variables, funciones, estructuras y control de flujo.
Basta con un navegador para los primeros módulos: se practica en JupyterLab con el kernel evcxr.
Para el bloque de proyectos conviene instalar Rust con rustup en el equipo.
Descripción
Rust tiene fama de difícil, y la dificultad se concentra en un punto muy concreto: el compilador rechaza programas que en otros lenguajes se aceptan y fallan después en ejecución. Quien llega de C ve prohibiciones donde antes había libertad, y quien llega de Python o Java se encuentra hablando de propiedad y préstamos sin saber para qué sirven.
El planteamiento de este curso es explicar antes el problema que la regla. Cada mecanismo del lenguaje aparece después de mostrar el error de memoria que evita: doble liberación, puntero colgante, acceso simultáneo. Se practica en cuaderno con evcxr para ver cada regla en acción sin esperar a compilar un proyecto, y se cierra con una herramienta real construida con Cargo.
Al terminar se lee y escribe Rust idiomático y, sobre todo, se sabe interpretar lo que el compilador está diciendo, que es la barrera donde más gente abandona. Abre paso al curso de Rust avanzado, con traits, macros y concurrencia, y al uso del lenguaje en sistemas embebidos, herramientas de línea de comandos y servicios de red.
¿Para quién es este curso?
Desarrolladores de C o C++ que quieren las mismas garantías de rendimiento sin errores de memoria.
Ingeniería de sistemas embebidos que evalúa Rust para firmware con requisitos de fiabilidad.
Programadores de lenguajes con recolector de basura que necesitan control explícito de recursos.
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.