Struttura del corso
Introduzione
- Cos’è Rust?
- Rust rispetto ad altri linguaggi di programmazione
- Panoramica sulle caratteristiche e sull’architettura di Rust
Comprensione di base di Rust
- Il ciclo di vita di un programma scritto in Rust
- Funzionamento interno di Rust a livello sistemico
- Sicurezza della memoria e meccanismi di proprietà nei programmi Rust
Avvio alla programmazione con Rust
- Configurazione dell’ambiente di sviluppo
- Installazione di Rust come ambiente di sviluppo software
- Impostazioni iniziali dell’ambiente di lavoro con Rust
- Utilizzo del gestore di pacchetti Cargo
Sintassi e concetti fondamentali
- Variabili e tipi di dati in Rust
- Controllo del flusso e strutture cicliche
- Funzioni e moduli nel codice Rust
- Concetti di proprietà e prestito delle risorse in Rust
Gestione degli errori e situazioni di panico
- Trattamento degli errori tramite i tipi Result ed Option
- Comportamenti diversi legati al verificarsi di un panico: “unwinding” o “aborting”
- Definizione e gestione personalizzata degli errori nel codice Rust
Gestione della memoria in Rust
- Differenze tra allocazione di memoria nello stack e nell’heap
- Uso di puntatori e riferimenti in Rust
- Amministrazione dinamica della memoria con strutture come Box e i blocchi “unsafe”
Strutture dati e tipi enumerativi nella programmazione di sistemi
- Definizione e manipolazione delle struct in Rust
- Creazione ed utilizzo degli enum nel linguaggio Rust
- Abbinamenti di pattern nel contesto della programmazione con Rust
Interfacciamento con C e codice a basso livello
- Integrazione tra Rust, C e C++ in progetti software.
- Ruolo della FFI (Foreign Function Interface) nell’integrazione di codici eterogenei.
- Lavoro con puntatori grezzi e codice caratterizzato da specifiche restrizioni di sicurezza (“unsafe”).
Concorrenza e sincronizzazione nei sistemi informatici
- Modelli concorrenti applicabili alla programmazione dei sistemi.
- Schemi di sincronizzazione come Mutex, RwLock e Condvar per garantire coerenza tra processi paralleli.
- Utilizzo dei canali di comunicazione e meccanismi di scambio messaggi.
Eseguire il debug nei programmi Rust e risolvere eventuali problematiche
- Strumenti e metodologie utilizzabili per analisi diagnostica dei programmi scritti in Rust.
- Tecniche di profilazione e valutazione prestazionale.
- Identificazione e risoluzione degli errori più comuni nel contesto della programmazione di sistemi.
Riepilogo e prospettive future
Requisiti
- Conoscenza di base dei concetti della programmazione
- Familiarità con almeno un linguaggio di programmazione (ad esempio C o C++)
Destinatari
- Sviluppatori
Recensioni (2)
Struttura del tema molto buona, presentazione perfetta, livello di conoscenza dell'istruttore molto alto. Infrastruttura impeccabile.
Tibor Pozsgai
Corso - Rust Advanced
Traduzione automatica
Introduzione solida a Rust con elementi avanzati come i macro. Esercizi pratici di codifica, molti commenti marginali, discussione libera e consultazioni.
Robert - Sonova Warsaw Service Center Sp z o o
Corso - Rust Programming
Traduzione automatica