Quando si impara Go, è essenziale evitare errori comuni che possono portare a codice inefficiente, errori e frustrazione. Ecco alcuni errori comuni da evitare:
1. Inserimento nella mappa Nil:
- Problema: quando definisci una mappa in Go, inizialmente è pari a zero. Se provi ad accedervi direttamente, il tuo programma andrà nel panico.
- Soluzione: Inizializza la tua mappa utilizzando la funzione `make` o un valore letterale della mappa.
2. Dereferenza puntatore pari a zero:
- Problema: Se provi a dereferenziare un puntatore nil, il tuo programma andrà nel panico.
- Soluzione: assicurati di creare un nuovo puntatore o di utilizzare un metodo di ricezione del puntatore.
3. Valori multipli in un contesto a valore singolo:
- Problema: quando provi a restituire più valori in un contesto a valore singolo, il tuo programma va in panico.
- Soluzione: assicurati di utilizzare i tipi restituiti corretti e di gestire gli errori correttamente.
4. Valori di array non modificabili:
- Problema: Gli array in Go sono valori, non riferimenti. Ciò significa che le modifiche a un array non influiscono sull'array originale.
- Soluzione: utilizzare le sezioni anziché gli array, poiché le sezioni sono riferimenti e possono essere modificate.
5. Variabile ombra:
- Problema: Se dichiari una variabile con lo stesso nome di un parametro di funzione, oscurerà il parametro.
- Soluzione: utilizza un nome diverso per la variabile o utilizza il comando `go run` con il flag `-gcflags` per disabilitare lo shadowing.
6. Virgola mancante nell'array o nella sezione multilinea:
- Problema: se dimentichi di includere una virgola alla fine di ogni riga in un array o in una sezione su più righe, il codice non verrà compilato.
- Soluzione: assicurati che ogni riga termini con una virgola.
7. Uso errato della funzione Trim:
- Problema: La funzione `trim` in Go rimuove tutti i punti Unicode in un cutset. Ciò può portare a risultati inaspettati.
- Soluzione: utilizza `TrimSuffix` invece di `trim` per un maggiore controllo sul processo di ritaglio.
8. Uso errato della funzione di copia:
- Problema: La funzione `copia` in Go copia il numero minimo di elementi dall'origine alla destinazione. Ciò può portare a risultati inaspettati.
- Soluzione: assicurati di utilizzare il numero corretto di elementi e di gestire gli errori in modo corretto.
9. Non recensire i giochi:
- Problema: la mancata revisione dei giochi può far perdere opportunità di miglioramento.
- Soluzione: rivedi regolarmente i tuoi giochi per identificare le aree di miglioramento.
10. Non ricevere aiuto dai giocatori più forti:
- Problema: Non cercare aiuto da giocatori più forti può portare a perdere opportunità di miglioramento.
- Soluzione: chiedi aiuto a giocatori più forti per apprendere nuove strategie e migliorare il tuo gioco.
11. Non utilizzare valori restituiti con nome:
- Problema: Il mancato utilizzo di valori restituiti con nome può portare a un codice più difficile da leggere.
- Soluzione: utilizza valori restituiti denominati per rendere il tuo codice più leggibile e gestibile.
12. Uso errato del differimento:
- Problema: L'uso improprio della parola chiave `defer` può portare a un codice difficile da leggere e comprendere.
- Soluzione: assicurati di utilizzare `defer` correttamente per posticipare l'esecuzione di una funzione fino al ritorno della funzione circostante.
13. Uso errato dei tipi di dati:
- Problema: l'utilizzo del tipo di dati errato può portare a comportamenti imprevisti.
- Soluzione: assicurati di utilizzare il tipo di dati corretto per il lavoro.
14. Non utilizzare le librerie integrate:
- Problema: Il mancato utilizzo delle librerie integrate può portare a un codice più difficile da scrivere e gestire.
- Soluzione: utilizza le librerie integrate per risparmiare tempo e fatica.
15. Non utilizzare gli strumenti di sfilacciatura:
- Problema: Il mancato utilizzo degli strumenti di linting può portare a un codice più difficile da leggere e comprendere.
- Soluzione: utilizza strumenti di linting come `golangci-lint` per identificare gli errori nel codice.
Evitando questi errori comuni, puoi garantire che il tuo codice Go sia efficiente, leggibile e gestibile.
Citazioni:[1] https://www.bacancytechnology.com/blog/common-mistakes-in-go
[2] https://www.reddit.com/r/baduk/comments/9wocj0/common_mistakes_in_learning_go/
[3] https://www.manning.com/books/100-go-mistakes-and-how-to-avoid-them
[4] https://www.linkedin.com/posts/ubaydah_five-common-mistakes-to-avoid-when-learning-activity-7057402591013482496-TeIu?trk=public_profile_like_view
[5] https://www.tftus.com/blog/the-most-common-golang-development-mistakes