PRIMO CORSO ITALIANO SUL NUOVISSIMO LINGUAGGIO DI PROGRAMMAZIONE
CERTIFICATO COMPRESO
Corso Totalmente Online con Certificazione. Segui Quando vuoi 24h/24h 7/7
Benvenuto nel corso introduttivo al linguaggio di programmazione Rust. Rust ti aiuta a scrivere software più veloce e affidabile. Nella progettazione dei linguaggi di programmazione, l’ergonomia ad alto livello e il controllo a basso livello spesso sono in contrasto; Rust sfida questo conflitto. Bilanciando la potente capacità tecnica e un’ottima esperienza per lo sviluppatore, Rust ti offre l’opzione di controllare dettagli a basso livello (come l’uso della memoria) senza tutti i fastidi tradizionalmente associati a tale controllo.
Chi Usa Rust
Rust è ideale per molte persone per una varietà di motivi. Vediamo alcuni dei gruppi più importanti.
Team di Sviluppatori
Rust si sta dimostrando uno strumento produttivo per la collaborazione tra grandi team di sviluppatori con diversi livelli di conoscenza della programmazione di sistema. Il codice a basso livello è incline a vari bug sottili, che nella maggior parte degli altri linguaggi possono essere individuati solo attraverso test approfonditi e una rigorosa revisione del codice da parte di sviluppatori esperti. In Rust, il compilatore svolge il ruolo di guardiano rifiutando di compilare il codice con questi bug sfuggenti, inclusi bug di concorrenza. Lavorando insieme al compilatore, il team può dedicare il proprio tempo alla logica del programma anziché inseguire bug.
Rust porta anche strumenti contemporanei per lo sviluppatore nel mondo della programmazione di sistema:
- Cargo, il gestore delle dipendenze e strumento di compilazione incluso, rende l’aggiunta, la compilazione e la gestione delle dipendenze indolore e coerente nell’ecosistema di Rust.
- Lo strumento di formattazione Rustfmt assicura uno stile di codifica coerente tra gli sviluppatori.
- Il server del linguaggio Rust alimenta l’integrazione dell’Ambiente di Sviluppo Integrato (IDE) per il completamento del codice e i messaggi di errore inline.
Utilizzando questi e altri strumenti nell’ecosistema di Rust, gli sviluppatori possono essere produttivi mentre scrivono codice di livello di sistema.
Studenti
Rust è per gli studenti e coloro che sono interessati a conoscere i concetti di sistema. Utilizzando Rust, molte persone hanno imparato argomenti come lo sviluppo di sistemi operativi. La comunità è molto accogliente e felice di rispondere alle domande degli studenti. Attraverso sforzi come questo corso, i team di Rust vogliono rendere i concetti di sistema più accessibili a più persone, specialmente a coloro che sono nuovi alla programmazione.
Aziende
Centinaia di aziende, grandi e piccole, utilizzano Rust in produzione per una varietà di compiti, tra cui strumenti da riga di comando, servizi web, strumenti DevOps, dispositivi embedded, analisi e transcodifica audio e video, criptovalute, bioinformatica, motori di ricerca, applicazioni Internet delle cose, apprendimento automatico e persino parti importanti del browser web Firefox.
Sviluppatori Open Source
Rust è per le persone che vogliono costruire il linguaggio di programmazione Rust, la comunità, gli strumenti per lo sviluppatore e le librerie. Saremmo lieti di averti come contributore al linguaggio Rust.
Persone che Valorizzano Velocità e Stabilità
Rust è per le persone che bramano velocità e stabilità in un linguaggio. Per velocità, intendiamo sia quanto rapidamente può eseguire il codice Rust sia la velocità con cui Rust ti consente di scrivere programmi. I controlli del compilatore Rust garantiscono la stabilità attraverso l’aggiunta di funzionalità e il refactoring. Questo è in contrasto con il codice legacy fragile nei linguaggi senza questi controlli, che gli sviluppatori spesso temono di modificare. Mirando a astrazioni a costo zero, funzionalità di livello superiore che compilano in codice di livello inferiore altrettanto velocemente del codice scritto manualmente, Rust si impegna a rendere il codice sicuro anche veloce.
Il linguaggio Rust spera di supportare molti altri utenti; quelli menzionati qui sono solo alcuni dei principali interessati. Nel complesso, l’ambizione più grande di Rust è eliminare i compromessi che i programmatori hanno accettato da decenni fornendo sicurezza e produttività, velocità ed ergonomia. Dai a Rust una possibilità e vedi se le sue scelte funzionano per te.
Per chi è Questo Corso
Questo corso presuppone che tu abbia scritto codice in un altro linguaggio di programmazione ma non fa alcuna ipotesi su quale. Abbiamo cercato di rendere il materiale ampiamente accessibile a coloro con una vasta gamma di background di programmazione. Non dedichiamo molto tempo a parlare di cosa sia la programmazione o come pensarla. Se sei completamente nuovo alla programmazione, sarebbe meglio per te leggere un corso che fornisce specificamente un’introduzione alla programmazione.
Come Usare Questo Corso
In generale, questo corso presuppone che lo stai leggendo in sequenza da davanti a dietro. I capitoli successivi si basano su concetti dei capitoli precedenti, e i capitoli precedenti potrebbero non approfondire dettagli su un particolare argomento ma torneranno sull’argomento in un capitolo successivo.
Troverai due tipi di capitoli in questo corso: capitoli di concetto e capitoli di progetto. Nei capitoli di concetto, imparerai su un aspetto di Rust. Nei capitoli di progetto, costruiremo insieme piccoli programmi, applicando ciò che hai imparato fino ad ora. I capitoli 2, 12 e 20 sono capitoli di progetto; gli altri sono capitoli di concetto.
Il Capitolo 1 spiega come installare Rust, come scrivere un programma “Ciao, mondo!” e come usare Cargo, il gestore delle dipendenze e strumento di compilazione di Rust. Il Capitolo 2 è un’introduzione pratica alla scrittura di un programma in Rust, costruendo un gioco di indovinare numeri. Qui copriamo concetti a un livello alto, e i capitoli successivi forniranno dettagli aggiuntivi. Se vuoi sporcarti subito le mani, il Capitolo 2 è il posto giusto. Il Capitolo 3 copre le funzionalità di Rust simili a quelle di altri linguaggi di programmazione, e nel Capitolo 4 imparerai sul sistema di proprietà di Rust. Se sei un apprendista particolarmente meticoloso che preferisce imparare ogni dettaglio prima di passare al successivo, potresti voler saltare il Capitolo 2 e passare direttamente al Capitolo 3, tornando al Capitolo 2 quando vuoi lavorare su un progetto applicando i dettagli che hai imparato.
Il Capitolo 5 discute di strutture e metodi, e il Capitolo 6 copre le enumerazioni, le espressioni di corrispondenza e il costrutto di controllo if let. Userai strutture ed enumerazioni per creare tipi personalizzati in Rust.
Nel Capitolo 7, imparerai sul sistema di moduli di Rust e sulle regole di privacy per organizzare il tuo codice e la sua Interfaccia di Programmazione Applicativa (API) pubblica. Il Capitolo 8 discute alcune strutture di dati di raccolta comuni fornite dalla libreria standard, come vettori, stringhe e mappe hash. Il Capitolo 9 esplora la filosofia e le tecniche di gestione degli errori di Rust.
Il Capitolo 10 si addentra in generici, tratti e durate, che ti danno il potere di definire codice che si applica a tipi multipli. Il Capitolo 11 tratta del testing, che anche con le garanzie di sicurezza di Rust è necessario per garantire la correttezza della logica del tuo programma. Nel Capitolo 12, costruiremo la nostra implementazione di una sottoinsieme di funzionalità dallo strumento da riga di comando grep che cerca testo all’interno di file. Per questo, useremo molti dei concetti di cui abbiamo discusso nei capitoli precedenti.
Il Capitolo 13 esplora chiusure ed iteratori: caratteristiche di Rust che provengono dai linguaggi di programmazione funzionale. Nel Capitolo 14, esamineremo Cargo in modo più dettagliato e parleremo delle migliori pratiche per condividere le tue librerie con gli altri. Il Capitolo 15 discute dei puntatori intelligenti forniti dalla libreria standard e dei tratti che ne abilitano la funzionalità.
Nel Capitolo 16, affronteremo diversi modelli di programmazione concorrente e parleremo di come Rust ti aiuta a programmare in più thread senza paura. Il Capitolo 17 guarda a come gli idiom di Rust si confrontano con i principi della programmazione orientata agli oggetti con cui potresti essere familiare.
Il Capitolo 18 è un riferimento sui modelli e la corrispondenza di modelli, che sono modi potenti di esprimere idee in tutta la programmazione di Rust. Il Capitolo 19 contiene una varietà di argomenti avanzati di interesse, inclusi Rust non sicuro, macro e altro ancora su durate, tratti, tipi, funzioni e chiusure.
Nel Capitolo 20, completeremo un progetto in cui implementeremo un server web multithread a basso livello!
Infine, alcune appendici contengono informazioni utili sul linguaggio in un formato più simile a un riferimento. L’Appendice A copre le parole chiave di Rust, l’Appendice B copre gli operatori e i simboli di Rust, l’Appendice C copre i tratti derivabili forniti dalla libreria standard, l’Appendice D copre alcuni utili strumenti di sviluppo, e l’Appendice E spiega le edizioni di Rust. Nell’Appendice F, puoi trovare le traduzioni del corso, e nell’Appendice G parleremo di come Rust è realizzato e cosa è Rust notturno.
Non c’è un modo sbagliato per leggere questo corso: se vuoi saltare avanti, fallo! Potresti dover tornare indietro ai capitoli precedenti se incontri confusione. Ma fai ciò che funziona per te.
Una parte importante del processo di apprendimento di Rust è imparare a leggere i messaggi di errore che il compilatore visualizza: questi ti guideranno verso un codice funzionante. Pertanto, forniremo molti esempi che non compilano insieme al messaggio di errore che il compilatore ti mostrerà in ogni situazione. Sappi che se inserisci e esegui un esempio casuale, potrebbe non compilare! Assicurati di leggere il testo circostante per vedere se l’esempio che stai cercando di eseguire è destinato a dare errore. Ferris ti aiuterà anche a distinguere il codice che non è destinato a funzionare:
- Ferris con un punto interrogativo: Questo codice non si compila!
- Ferris che alza le mani: Questo codice va in panico!
- Ferris con una chele alzata, scuotendo le spalle: Questo codice non produce il comportamento desiderato.
Nella maggior parte delle situazioni, ti guideremo verso la versione corretta di qualsiasi codice che non si compila.