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