Credere che Go possa essere usato come un object oriented programming
Si tratta di un errore comune, si cerca il polimorfismo ma in realtà questo è un approccio sbagliato che non è contemplato in Go.

Credere che le goroutines risolvano tutti i problemi
Go permette di realizzare milioni di goroutines senza sacrificare l'efficienza del codice. Tuttavia più si usano più sarà difficile mantenere e debuggare il codice in futuro. Dunque è sempre meglio usare le goroutines solo quando necessario non abbandonando mai il caro vecchio multi-process model.

Credere che invece dell'object oriented programming saranno le interfacce a risolvere i vostri problemi
Le interfacce permettono al developer di definire le API cosi da riuscire a scrivere codice migliore. Dunque le interfacce danno al developer un enorme potere, tuttavia non sono la soluzione definitiva visto che non offrono un vero polimorfismo e sono "limitate" solo alle feature offerte delle API che si utilizzano, senza la possibilità di associare altri dati.

Credere che i channels risolvano tutti i problemi
Cosi come per le goroutines anche i channels possono essere fuorvianti. Con i channels è possibile gestire tantissimi elementi del codice e possono essere davvero utili, tuttavia un abuso di essi può portare il developer in una strada a senso unico con progetti molto difficili da debuggare e da mantenere.

Iniziare a pensare che Go non è cosi potente
Queste difficoltà possono portare frustrazione. Nessun polimorfismo, la concurrency è difficile, i channels non risolvono i problemi. Questo perché molto spesso gli sviluppatori non comprendo i reali motivi per cui Go è stato pensato.

Realizzare che i precedenti step sono solo frutto della propria immaginazione
A malincuore dunque il developer sarà spinto a scrivere codice in modo più straightforward, rispettando le linee guida dei creatori di Go. Capire a pieno come lavorare con Go richiede di "disimparare" alcune abitudini precedentemente acquisite con altri linguaggi.

Accettare Go cosi come è stato pensato
Una volta che si smetterà di pensare a Go come uno dei tanti linguaggi di programmazione e si inizierà a rispettare le sue regole non si avranno più problemi o frustrazioni.

Concludendo, ogni linguaggio di programmazione ha le sue particolarità, anche se Go richiede forse più impegno rispetto ad altri strumenti simili. Quindi è sempre bene avere una mentalità aperta quando lo si affronta per la prima volta.

Via Daisuke Maki

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *