Basi di Linguaggio GO
Descrizione
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.
Target
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.
Programma Corso
- Il linguaggio Go
 - Tipi di dati primitivi
 - Strutture di controllo
 - Strutture dati I (map, slice, make)
 - Strutture dati II (struct, type, embedding, recursive structs, composition)
 - Interfacce
 - Funzioni e gestione degli errori (err != nil e defers)
 - I/O
 - Testing
 - Strutture dei programmi e tooling generico (Packages, gofmt, go linters)
 - Ambiente di sviluppo e toolchain
 - Compilazione di Hello World in locale e con Docker (cenni a Docker)
 - Sviluppo di un programma da linea di comando
 - Esercizi sulla teoria.
 - Concorrenza e parallelismo
 - Goroutine e channels
 - Gestione della concorrenza (sync, wg, mutex, context)
 - Packages:
 - Standard library
 - HTTP, Web e JSON
 - Database
 - Risorse su Go per continuare (risorse e Go nel mondo reale: chi lo usa e come)
 
Esercizi sulla teoria
- HTTP
 - Database