Scegli la tua lingua
Corso base di programmazione Go
Più di 2 milioni di studenti in tutto il mondo

Corso base di programmazione Go

4,3

Padroneggi Go partendo da zero — dalla configurazione della toolchain e della sintassi di base fino alla concorrenza, al testing e all'ottimizzazione delle prestazioni. Questo corso completo fornisce agli sviluppatori le competenze pratiche per scrivere codice Go pulito e pronto per la produzione. Che Lei stia costruendo strumenti CLI, servizi concorrenti o librerie riutilizzabili, al termine avrà la sicurezza di distribuire software reale.

Dedika per aziende

Cosa imparerai:

  • Configuri un ambiente di sviluppo Go professionale e padroneggi la toolchain principale.

  • Crei programmi concorrenti utilizzando goroutine, canali e primitive di sincronizzazione.

  • Progetti API flessibili con il sistema di interfacce di Go e il modello di soddisfazione implicita.

  • Gestisca gli errori in modo idiomatico utilizzando tipi personalizzati, wrapping e propagazione strutturata.

  • Organizzi le codebase in moduli versionati con pratiche pulite di gestione delle dipendenze.

  • Verifichi e ottimizzi la qualità del codice attraverso test unitari, benchmark e strumenti di profiling.

Come studi in modo pratico Corso base di programmazione Go

Come metti in pratica Corso base di programmazione Go

Per te che sei un'azienda e vuoi formare il tuo team

Su Dedika per aziende, il corso include esercizi ed esempi personalizzati sul tuo business e secondo le esigenze della tua azienda.

Clicca qui

Contenuto del corso

8 Capitoli • 40 LezioniDurata tra 4 e 360 ore (decidi tu)

Capitolo 1Vedi dettagli

Ambiente Go e fondamenti del linguaggio

  • Lezione 1 • Installazione e configurazione di Go

    Tratta l'installazione di Go, la struttura dell'area di lavoro e la configurazione della toolchain. Fornisce le basi operative da cui dipendono tutti i capitoli successivi.

  • Lezione 2 • Operatori ed espressioni

    Tratta gli operatori aritmetici, di confronto, logici e bitwise. Gli studenti acquisiranno la capacità di costruire espressioni corrette in qualsiasi contesto Go.

  • Lezione 3 • Variabili, costanti e tipi di dato

    Insegna gli stili di dichiarazione delle variabili, i valori zero e i tipi primitivi incorporati. Costruisce la consapevolezza dei tipi richiesta per ogni successiva attività di codifica.

  • Lezione 4 • Utilizzo della toolchain Go

    Esplora i comandi go build, go fmt, go vet e go doc. Fornisce agli studenti gli strumenti del flusso di lavoro quotidiano utilizzati nello sviluppo Go professionale.

  • Lezione 5 • Struttura e sintassi del programma Go

    Introduce le dichiarazioni di pacchetto, le istruzioni import e il punto di ingresso main. Stabilisce le regole strutturali che tutti i file sorgente Go devono seguire.

Capitolo 2Vedi dettagli

Flusso di controllo e funzioni

  • Lezione 1 • Definizione e chiamata di funzioni

    Introduce le firme delle funzioni, i parametri e i valori di ritorno. Stabilisce il blocco fondamentale per il codice Go modulare utilizzato in tutto il corso.

  • Lezione 2 • Cicli e iterazione

    Tratta il ciclo for in tutte le sue forme, inclusa l'iterazione basata su range. Fornisce gli strumenti di iterazione necessari per elaborare collezioni e flussi.

  • Lezione 3 • Defer, panic e recover

    Spiega le chiamate differite, la propagazione del panic e i pattern di recovery. Gli studenti apprendono l'approccio idiomatico di Go per la pulizia delle risorse e il contenimento degli errori.

  • Lezione 4 • Funzioni di prima classe e chiusure

    Considera le funzioni come valori, trattando funzioni anonime e chiusure. Prepara gli studenti ai pattern di ordine superiore utilizzati nei capitoli successivi.

  • Lezione 5 • Istruzioni condizionali

    Insegna i costrutti if, else if, else e switch con le specificità idiomatiche di Go. Abilita la logica di ramificazione essenziale per tutti i programmi reali.

Capitolo 3Vedi dettagli

Tipi compositi: array, slice e map

  • Lezione 1 • Array in Go

    Tratta la dichiarazione di array a lunghezza fissa, l'indicizzazione e la semantica di valore. Stabilisce il modello di memoria che è alla base del comportamento delle slice nelle sezioni successive.

  • Lezione 2 • Pattern comuni con le slice

    Dimostra modi idiomatici di filtraggio, deduplicazione e modifica in-place. Costruisce un insieme pratico di strumenti per la manipolazione delle slice, utilizzato in codebase reali.

  • Lezione 3 • Slice: meccanismi interni e operazioni

    Spiega l'header delle slice, gli array sottostanti e il comportamento di crescita. La padronanza di questi argomenti previene bug comuni nella manipolazione dei dati durante il corso.

  • Lezione 4 • Struct come record compositi

    Introduce la dichiarazione di struct, l'accesso ai campi, l'incorporamento e i campi anonimi. Pone le basi per il sistema di tipi esplorato nel prossimo capitolo.

  • Lezione 5 • Map: creazione e utilizzo

    Insegna i letterali map, make, la ricerca, l'inserimento e l'eliminazione. Fornisce le basi per l'archivio chiave-valore nei pattern di configurazione e caching.

Capitolo 4Vedi dettagli

Pacchetti, moduli e gestione delle dipendenze

  • Lezione 1 • Aggiunta e gestione delle dipendenze

    Insegna go get, go mod tidy e la selezione delle versioni delle dipendenze. Gli studenti mantengono grafi di dipendenze puliti e riproducibili in progetti reali.

  • Lezione 2 • Pubblicazione e versionamento dei moduli

    Spiega il tagging dei rilasci, i suffissi di versione maggiore e i proxy dei moduli. Prepara gli studenti a condividere librerie riutilizzabili con l'ecosistema Go.

  • Lezione 3 • Moduli Go e go.mod

    Spiega l'inizializzazione del modulo, il file go.mod e il versionamento semantico. Stabilisce il contratto di dipendenza che governa tutti i progetti Go moderni.

  • Lezione 4 • Principi di organizzazione dei pacchetti

    Tratta la denominazione dei pacchetti, gli identificatori esportati e non esportati e la coesione. Guida gli studenti verso strutture di pacchetto che scalano con la dimensione del progetto.

  • Lezione 5 • Progettazione di pacchetti interni e testabili

    Tratta la convenzione del pacchetto internal e i pacchetti di solo test. Abilita strategie di incapsulamento che proteggono i dettagli implementativi.

Capitolo 5Vedi dettagli

Il sistema di tipi di Go: interfacce e metodi

  • Lezione 1 • Metodi sui tipi

    Tratta i ricevitori di valore e puntatore, i set di metodi e la promozione tramite incorporamento. Stabilisce come il comportamento viene associato ai tipi in Go.

  • Lezione 2 • Best practice per la progettazione delle interfacce

    Tratta le interfacce piccole, il principio accetta interfacce/restituisci concreti e l'inquinamento da interfacce. Guida gli studenti verso confini API manutenibili e testabili.

  • Lezione 3 • Interfacce della libreria standard

    Esamina le interfacce io.Reader, io.Writer, fmt.Stringer ed error. Collega la teoria delle interfacce a quelle che gli studenti incontrano quotidianamente.

  • Lezione 4 • Asserzioni di tipo e switch di tipo

    Insegna le asserzioni di tipo sicure e non sicure e l'inoltro con switch di tipo. Abilita l'ispezione dei tipi a runtime necessaria per i pattern di gestori generici.

  • Lezione 5 • Definizione e implementazione di interfacce

    Spiega le dichiarazioni di interfaccia, la soddisfazione implicita e l'interfaccia vuota. Gli studenti imparano a scrivere codice che dipende dal comportamento, non da tipi concreti.

Capitolo 6Vedi dettagli

Gestione degli errori e codice robusto

  • Lezione 1 • Basi di logging e osservabilità

    Introduce il logging strutturato con i pacchetti log e log/slog. Collega la gestione degli errori alla visibilità operativa nei sistemi in produzione.

  • Lezione 2 • Wrapping e unwrapping degli errori

    Tratta le catene di errori, errors.Is, errors.As e gli alberi di unwrap. Gli studenti imparano a ispezionare gli errori stratificati senza rompere l'incapsulamento.

  • Lezione 3 • Pattern di panic e recover

    Rivisita panic e recover nel contesto della sicurezza ai confini delle librerie. Gli studenti sanno quando convertire i panic in errori alle superfici dell'API.

  • Lezione 4 • Il modello di errore in Go

    Spiega l'interfaccia error, i controlli nil e la propagazione idiomatica degli errori. Stabilisce il modello mentale che governa ogni gestione degli errori in Go.

  • Lezione 5 • Tipi di errore personalizzati

    Insegna gli errori basati su struct, l'arricchimento del contesto e il metodo Unwrap. Abilita informazioni di errore ricche per il debug e la gestione programmatica.

Capitolo 7Vedi dettagli

Concorrenza con goroutine e channel

  • Lezione 1 • Sincronizzazione con il pacchetto sync

    Tratta Mutex, RWMutex, WaitGroup e Once per la sicurezza dello stato condiviso. Complementa la concorrenza basata su channel per scenari che richiedono memoria condivisa.

  • Lezione 2 • Goroutine e lo scheduler di Go

    Spiega la creazione di goroutine, lo scheduler M:N e il ciclo di vita delle goroutine. Fornisce il modello concettuale necessario per ragionare sull'esecuzione concorrente.

  • Lezione 3 • Pattern di concorrenza comuni

    Dimostra pool di worker, pipeline e architetture fan-out/fan-in. Gli studenti applicano questi pattern per costruire programmi concorrenti scalabili.

  • Lezione 4 • Istruzione select e multiplazione

    Insegna l'istruzione select per la multiplazione delle operazioni sui channel. Abilita i pattern di timeout, cancellazione e fan-in utilizzati nei servizi in produzione.

  • Lezione 5 • Channel: comunicazione tra goroutine

    Tratta i channel bufferizzati e non bufferizzati, la semantica di invio/ricezione e la chiusura. Stabilisce il meccanismo di comunicazione primario nella concorrenza Go.

Capitolo 8Vedi dettagli

Test, benchmarking e qualità del codice

  • Lezione 1 • Helper di test e fixture di test

    Insegna le funzioni helper, TestMain e la configurazione di risorse temporanee. Riduce il boilerplate e migliora la leggibilità dei test in suite di test ampie.

  • Lezione 2 • Benchmarking e profilazione

    Tratta le funzioni benchmark, i cicli B.N e l'integrazione con pprof. Gli studenti identificano ed eliminano i colli di bottiglia delle prestazioni con prove basate sui dati.

  • Lezione 3 • Scrittura di unit test con il pacchetto testing

    Tratta le convenzioni per i file di test, T.Error, T.Fatal e i sotto-test. Stabilisce la disciplina di test di base richiesta per tutti i progetti Go.

  • Lezione 4 • Copertura del codice e controlli di qualità

    Spiega i report di copertura, go test -cover e l'integrazione con i linter. Collega il test alle pipeline di integrazione continua per l'applicazione automatizzata della qualità.

  • Lezione 5 • Mocking e test basati su interfacce

    Dimostra mock manuali, implementazioni stub e iniezione delle dipendenze. Abilita unit test isolati per codice con dipendenze esterne.

Certificazione

Il tuo certificato valido di completamento

Questo corso è per te:

  • Sviluppatore backend: desidera aggiungere Go a un insieme di competenze professionali multi-linguaggio.

  • Programmatore Python o JavaScript: pronto a esplorare un linguaggio di sistema a tipizzazione statica.

  • Studente di informatica: cerca esperienza pratica al di là dei compiti dei corsi accademici.

  • Ingegnere DevOps: ha necessità di leggere, modificare o scrivere strumenti Go nei flussi di lavoro quotidiani.

  • Persona in cambiamento di carriera: in transizione verso lo sviluppo software con un linguaggio moderno e strutturato.

  • Programmatore hobbista: desidera realizzare strumenti veloci e auto-consistenti per progetti personali.

Cosa dicono i nostri studenti

Le sue lezioni sono perfette. Ho acquistato il pacchetto annuale e finalmente ho l'opportunità di seguire diversi argomenti di mio interesse senza dover cambiare piattaforma... vi ringrazio per tutto quello che fate, vi ho già raccomandati ad altre persone...
Giulio Carlo
Giulio CarloStudente di Marketing Digitale
Mi piace come le lezioni vanno dritte al punto e come riesco a cambiare capitoli e saltare contenuti di cui non ho bisogno.
Mariana Ferres
Mariana FerresStudentessa di Fotografia
Mi piace il contenuto e il modo di presentazione e trascrizione dei video, che accelera il processo!
Luciana Alvarenga
Luciana AlvarengaStudentessa di Nail Design
La piattaforma è veloce, semplice da usare. La diversità dei contenuti e i video complementari aiutano molto nell'apprendimento.
André Felipe
André FelipeStudente di Prompt Engineering

Principali percorsi formativi

FAQ

Chi è Dedika?

Il certificato è valido in Italia?

I corsi sono gratuiti?

Qual è il carico di lavoro del corso?

Come sono strutturati i corsi?

Come funzionano i corsi?

Qual è la durata dei corsi?

Qual è il costo o il prezzo dei corsi?

Cos’è un corso EAD o online e come funziona?

Corso PDF