Prossimi passi con Rust
Se hai seguito gli argomenti di questo corso, conosci già abbastanza Rust per scrivere programmi veri: variabili, controllo del flusso, funzioni, ownership (possesso), borrowing (prestito), collezioni, moduli, gestione degli errori, trait, generici e perfino thread, smart pointer, unsafe e macro. È davvero quasi tutto quello che userai ogni giorno. Quello che manca è soprattutto pratica, più le conoscenze specifiche delle librerie, che imparerai man mano che ti servono.
Costruisci qualcosa di piccolo
Sezione intitolata “Costruisci qualcosa di piccolo”Da qui in poi, il modo più veloce per imparare davvero è scegliere un piccolo progetto e bloccarsi qualche volta. Questo sito ha cinque progetti guidati per cominciare:
- Gioco «indovina il numero»: il classico primo progetto in Rust, con input, cicli e
match. - Contatore di parole: leggi un file di testo e conta le parole con una
HashMap. - Lista di cose da fare da riga di comando: fai pratica con
Vec,struct,enume il salvataggio su file. - Strumento CLI con clap: un vero strumento da riga di comando, con sottocomandi e
--help. - API web con Axum: un server di API JSON costruito su async/await.
Quando li hai finiti, provane uno da solo:
- Una calcolatrice semplice: per allenarti con
match,Resulte la gestione degli errori quando l’input non è valido. - Un lettore di configurazione JSON: carica le impostazioni da un file con Serde.
- Un piccolo web scraper o client di API: scarica un URL con
reqwest, sopra async/await.
Non sai ancora che tipo di programma vuoi costruire? Le pagine «Cosa puoi costruire» mostrano dove Rust dà il meglio e quali crate si usano: rete, database, applicazioni desktop con interfaccia grafica, giochi e microcontrollori.
Preferisci prima esercizi più piccoli? Prova gli Esercizi, oppure mettiti alla prova con le Domande da colloquio.
Crate da conoscere
Sezione intitolata “Crate da conoscere”L’ecosistema di pacchetti di Rust (i crate, distribuiti tramite crates.io) copre quasi tutto quello per cui vorresti una libreria. Eccone alcuni che incontrerai di continuo:
serde(in inglese): per leggere e scrivere JSON (e altri formati); vedi JSON con Serdeclap(in inglese): per costruire parser degli argomenti da riga di comando; vedi il progetto con clapanyhow/thiserror(in inglese): per la gestione degli errori in applicazioni e librerie; vedi anyhow e thiserrorrand,regexechrono(in inglese): numeri casuali, espressioni regolari e date; vedi Numeri casuali, Regex e Date e orarilog/tracing(in inglese): per il logging; vedi Loggingreqwest(in inglese): per fare richieste HTTPtokio(in inglese): per la programmazione asincrona; vedi Async/await
Aggiungi uno qualsiasi di questi crate a un progetto con cargo add <nome del crate>, senza bisogno di un gestore di pacchetti separato. La pagina Cargo e crate spiega come funziona e come scegliere un buon crate.
Argomenti che non abbiamo trattato
Sezione intitolata “Argomenti che non abbiamo trattato”Questo corso è andato più lontano della maggior parte dei tutorial per principianti, con argomenti come smart pointer, thread e canali, async/await, Rust unsafe, chiamare codice C (FFI), WebAssembly e le tue macro macro_rules!. Alcuni argomenti più profondi hanno una pagina tutta loro, per quando sarai pronto:
- Macro procedurali: le cugine più potenti (e più complesse) delle macro
macro_rules!della pagina Macro; sono loro a far funzionare#[derive(Debug)]e simili dietro le quinte - Rust
no_std/ embedded: scrivere Rust senza la libreria standard, per microcontrollori e altri ambienti con poche risorse
Non ti serve nessuno di questi argomenti per scrivere Rust utile: vale la pena sapere che esistono, e impararli quando ti trovi davvero davanti a un problema che li richiede.
Dove continuare a imparare
Sezione intitolata “Dove continuare a imparare”- Il sito ufficiale di Rust: Impara: il punto di partenza ufficiale, con tutte le risorse di apprendimento
- The Rust Book (in inglese): rileggilo ora che le basi ti sono chiare; molte parti avranno più senso la seconda volta
- Rust by Example (in inglese): altro codice commentato da leggere
- Rustlings (in inglese): piccoli esercizi da correggere, direttamente nel terminale
- This Week in Rust (in inglese): una newsletter settimanale per vedere cosa sta costruendo la community
Un’ultima nota sincera
Sezione intitolata “Un’ultima nota sincera”Ti capiterà ancora di trovare errori del compilatore che ti confondono, ed è normale: succede anche a chi scrive Rust da anni, non solo ai principianti. Con l’esperienza gli errori non spariscono; diventi solo più veloce a leggerli. Continua a scrivere codice, continua a leggere quello che ti dice il compilatore, e diventerà sempre più facile.
Buona fortuna, e grazie per essere arrivato fin qui. 🦀
Verifica veloce
Sezione intitolata “Verifica veloce”Verifica veloce
1. Quale crate consiglia questa pagina per leggere e scrivere JSON?
2. Quale crate viene citato per la programmazione asincrona?
3. Quale di questi argomenti la pagina indica come NON trattato nel corso?
Punteggio: 0 / 3