Appendice A. Appendice
Quando inizierai a scrivere codice concorrente, ti serviranno gli strumenti per scrivere il tuo programma e analizzarlo per verificarne la correttezza, oltre a qualche utile indicazione per aiutarti a capire cosa succede nei tuoi programmi. Per tua fortuna, l'ecosistema Go dispone di una ricca serie di strumenti sia del team Go che della comunità! In questa appendice verranno illustrati alcuni di questi strumenti e come possono aiutarti prima, durante e dopo lo sviluppo. Poiché questo libro è incentrato sulla concorrenza, limiterò la conversazione solo agli argomenti che ti aiutano a scrivere o ad analizzare il codice concorrente. Inoltre, ci soffermeremo brevemente su ciò che accade quando le goroutine vanno in panico. Non succede spesso, ma l'output può essere un po' confuso la prima volta che lo vedi.
Anatomia di un errore di una goroutine
Succede anche ai migliori di noi: prima o poi il tuo programma va in panico. Se sei fortunato, nessun essere umano o computer verrà danneggiato nel processo e la cosa peggiore è che ti ritroverai a fissare il lato negativo di una traccia di stack.
Prima di Go 1.6, quando una goroutine andava in panico, il runtime stampava le tracce dello stack di tutte le goroutine in esecuzione. A volte questo rendeva difficile (o comunque richiedeva molto tempo) determinare cosa fosse successo. Al momento in cui scriviamo, Go 1.6 e versioni successive semplificano notevolmente le cose stampando solo la traccia dello stack della goroutine ...