Go Programming
(GPROGG)
Il corso approfondirà le basi della programmazione in Go per arrivare alla realizzazione di applicazioni concorrenti e altamente scalabili: dal setup dell'ambiente locale, alla scrittura del codice e al debug, fino alla compilazione e al deploy del codice su diverse piattaforme.
A CHI SI RIVOLGE
Programmatori provenienti dal C/C++, Java, JavaScript o Python che desiderano familiarizzarsi con questo nuovo linguaggio.
PREREQUISITI
Conoscenza dei concetti base della programmazione orientata agli oggetti (concetti di classe, ereditarietà) in un qualsiasi linguaggio di programmazione.
CONTENUTI
Introduzione a Go e Ambiente di Sviluppo
- Introduzione a Go: Storia, caratteristiche principali e vantaggi
- Installazione e configurazione dell'ambiente di sviluppo (Go compiler, editor, etc.)
- Struttura di base di un programma Go: package, import, funzioni principali
Fondamenti del Linguaggio Go
- Tipi di dati di base: numerici, stringhe, booleani
- Dichiarazione di variabili e costanti
- Strutture di controllo: if, else, switch, loop
- Funzioni: definizione, argomenti, valori restituiti, funzioni anonime
Array, Slice e Map
- Array e slice: definizione, inizializzazione, accesso agli elementi, manipolazione
- Map: concetto, creazione, manipolazione
Strutture di Dati Avanzate
- Struct: definizione, campi, metodi
- Interfacce: definizione, implementazione implicita e esplicita
- Pointer: concetto, utilizzo, differenze rispetto ai valori
Programmazione Concorrente
- Goroutine: concetto, creazione, gestione
- Canali (channels): concetto, creazione, utilizzo per la comunicazione tra goroutine
- Sincronizzazione: utilizzo di WaitGroups e Mutex per la sincronizzazione tra goroutine
Testing e Documentazione
- Testing in Go: utilizzo del pacchetto testing, scrittura di test unitari
- Documentazione: utilizzo di commenti per generare documentazione con go doc e godoc
- Best practices per la scrittura di codice Go leggibile e manutenibile
Progetti Pratici e Revisione Finale
- Sviluppo di progetti pratici per applicare le conoscenze acquisite durante il corso
- Revisione finale dei concetti principali e delle best practices del linguaggio Go
- Discussione su risorse e community per continuare l'apprendimento di Go