Go è un fantastico linguaggio di programmazione. Inoltre viene fornito con una catena di strumenti completa. Molti sviluppatori usano solo editor di testo semplice con o senza plugin per scrivere codice Go, ma molti altri preferiscono utilizzare IDE adeguati (ambienti di sviluppo integrati).
In questo tutorial, imparerai lo stato attuale degli IDE Go e sarai pronto a scegliere la tua arma.
Sono sempre stato un grande fan degli IDE. All'inizio della mia carriera, ho usato anche Microsoft Visual Studio per lo sviluppo C / C ++ e C #. Ho usato NetBeans per un breve periodo di sviluppo di Java. Ho usato PyCharm per lo sviluppo Python di JetBrains e oggi uso lo sviluppo di Gogland per Go di JetBrains.
Di solito lavoro su sistemi software su larga scala che consistono in più progetti con migliaia di file. Ho bisogno di molto aiuto con codebase di grandi dimensioni. Ecco i motivi principali per cui mi piacciono così tanto gli IDE:
Con un buon IDE, puoi organizzare il tuo codice gerarchicamente, visualizzarlo e navigarlo con facilità, e anche cercare rapidamente il tuo codice. L'IDE farà molto più della semplice ricerca di testo e ti permetterà di filtrare in base a costrutti specifici della lingua (ad esempio, mostra solo le classi o le interfacce con un nome particolare).
Anche i test integrati sono cruciali. Trascorro la maggior parte del mio tempo di sviluppo sui test, scrivendoli, cercando di farli passare o indagando sul perché improvvisamente i test hanno fallito. Un buon IDE con test integrati ti consentirà di eseguire i test in modo selettivo (tutto, un solo progetto, solo test falliti della precedente esecuzione), evidenzierà i fallimenti e ti consentirà di saltare rapidamente nel posto giusto nel codice per correggere qualsiasi problema.
Questa è probabilmente la caratteristica più importante per me. Adoro i debugger integrati. Voglio essere in grado di aggiungere un punto di interruzione (compresi i punti di interruzione condizionali), visualizzare la traccia dello stack e visualizzare le variabili su ciascun fotogramma.
Per i punti bonus (grazie a PyCharm), mi piace avere una sessione di console interattiva quando un punto di interruzione colpisce. Le alternative di debug di printf (richiede la modifica del codice e della ricostruzione) o la visualizzazione dei file di registro (spesso non abbastanza granularità o molto rumore) sono molto più frustranti e meno produttive. Anche i debugger standalone come gdb non si avvicinano alla produttività di un buon debugger integrato.
Gogland è il mio IDE Golang attuale. È un prodotto molto giovane, ancora in anteprima di accesso anticipato, ma lo considero ancora il Go IDE più completo e integrato. È costruito sulla solida base di JetBrains, quindi è estremamente robusto e pieno di funzionalità.
L'editor di codice di Gogland è superbo. Ecco alcune delle sue capacità:
Il debugger di Gogland è eccellente. È costruito su Delve, che viene utilizzato anche da altri IDE che copriamo. Usa le familiari configurazioni di debug di JetBrains per controllare tutto su un'esecuzione di debug come binario eseguito, le variabili di ambiente, la directory di lavoro e gli argomenti della riga di comando.
È possibile impostare punti di interruzione, punti di interruzione condizionali e orologi. Quando viene colpito un punto di interruzione, è possibile osservare la traccia dello stack e le variabili locali in ciascun fotogramma. Sfortunatamente, le variabili globali non vengono visualizzate e sono spesso necessarie in Go.
Ho avuto un problema con il debugger in cui i punti di interruzione sono stati prematuramente premuti! Considera il seguente frammento di Go:
x: = 1 y: = 3 z: = x + y fmt.Println (z)
A volte, se inserissi un breakpoint sull'ultima riga, avrebbe colpito, ma il valore di z sarebbe 0, invece di 4. Come può essere? Si scopre che il debugger è stato confuso in qualche modo. Se continuo a scavalcare il codice, tornerà a z: = x + y
, assegnare da 4 a z, quindi tornare all'ultima riga e stampare correttamente 4 sullo schermo.
Ho perso un paio d'ore cercando di eseguire il debug di un pezzo complicato di codice, senza rendermi conto che non ottenevo sempre l'immagine corretta. Alla fine, ho capito cosa stava succedendo e ho semplicemente ignorato il finto avvio anticipato dei breakpoint.
Non sono sicuro che si tratti di un problema di Delve o Gogland, ma sono sicuro che lo risolveranno presto. Ricorda che è solo un'anteprima di accesso anticipato.
Il test runner ti consente di eseguire, fermare e riavviare i test. Sono stato in grado di usarlo con successo per eseguire e debug di test unitari, così come test di integrazione usando sia il pacchetto di test di Go sia un framework di test BDD come ginkgo.
Go viene fornito con vari strumenti e Gogland li integra direttamente nell'IDE. Puoi richiamare qualsiasi strumento dal menu "Codice | Vai Strumenti". La formattazione del codice integrata di Gogland utilizza lo strumento standard "go fmt".
Gogland eredita il maturo sistema di gestione del controllo dei sorgenti di altri prodotti JetBrains. Ho usato principalmente il supporto git, che consente la gestione di più progetti, l'eccellente visualizzazione di rami, più set di modifiche e altro. Altri sistemi di controllo del codice sorgente come Mercurial e SVN sono supportati anche tramite plugin aggiuntivi.
Gogland fornisce un terminale integrato nel caso in cui sia necessario eseguire alcuni comandi. È bello stare dentro l'IDE ed essere in grado di guardare o copiare da / verso i riquadri dell'editor senza passare completamente da Windows.
Gogland ha un sacco di funzionalità integrate, ma è completamente estensibile e molte delle sue funzionalità incorporate sono in realtà plug-in pre-caricati. Puoi installare molti plugin utili e puoi sviluppare i tuoi plugin, se lo desideri.
Visual Studio Code è un editor di codice open source estensibile sviluppato principalmente da Microsoft (con molti contributi dalla community). È basato su Electron, che a sua volta è basato su Chromium. Codice di Visual Studio supporta molte lingue e originariamente focalizzato sullo sviluppo web. Ha un forte supporto per lo sviluppo di Go, compresa l'integrazione di tutti gli strumenti Go e del debugger Delve tramite un'estensione dedicata. Avrai bisogno di installare alcuni pacchetti e strumenti Go per iniziare.
Visual Studio Code offre anche integrazione git integrata, cartella gerarchica / esploratore di file e un'interfaccia a schede.
Il supporto IntelliSense (completamento automatico, che mostra i tipi di parametri e la documentazione) è ottimo e offre un'esperienza di editing molto piacevole. Il debugger integrato (usa anche Delve sotto il cofano) è molto ben fatto e abbina il debugger di Gogland.
Codice di Visual Studio è molto reattivo e veloce. Ecco la sua lista di caratteristiche sostanziali:
LiteIDE è molto insolito. È stato il primo IDE Go serio, iniziato nel 2011/2012, ed è ancora forte. È un'applicazione Qt C ++ e ha un aspetto personalizzato. Simile a Gogland e Visual Studio Code, utilizza gli strumenti Go e il debug di Delve per fornire servizi linguistici (sebbene sia iniziato con il debugger di gdb prima che Delve fosse pronto).
Nel complesso, è un IDE completo, ma non sembra così lucido. Per quanto posso dire, questo è praticamente uno sforzo di un solo uomo, che è straordinario. Ecco una ripartizione delle caratteristiche di LiteIDE.
Wide è interessante perché è un IDE dedicato basato sul web di Golang. Il suo obiettivo è lo sviluppo collaborativo ed è progettato per i team. Lo sviluppatore è cinese e gran parte della documentazione è in cinese, quindi potrebbe non essere adatta a tutti. Non è assolutamente alla pari con gli altri IDE in termini di funzionalità e integrazione.
Esistono molti IDE generici che supportano molti linguaggi di programmazione e hanno anche aggiunto il supporto per la lingua Go. Non sono un grande fan di questi ambienti. Credo che un ambiente integrato debba avere ganci specifici per la lingua profondamente integrati. È difficile da implementare come un semplice plug-in (sebbene si possa obiettare che questo è esattamente ciò che fa VS Code).
Alcuni ambienti di sviluppo popolari che hanno aggiunto il supporto Go sono:
Go è un linguaggio semplice. Molte persone si sentono molto produttive solo usando un editor di testo, possibilmente con alcuni plugin Go aggiuntivi. Non considero quegli ambienti di sviluppo realmente integrati. Ma ha senso se hai molti anni di esperienza con il tuo editor di testo, lo hai già personalizzato a tuo piacimento e lo usi per molte altre attività. Ecco una lista di alcuni dei più popolari editor di testo e dei loro plugin Go:
Con i seguenti plugin:
Con il plugin GoSublime
Con una pletora di plugin Go.
Go ha fatto molta strada e ha un robusto ecosistema che include molte opzioni per l'ambiente di sviluppo. Il debugger Delve fornisce una fantastica esperienza di debug interattivo ed è utilizzato dalla maggior parte degli IDE principali. Gioca con questi IDE e trova quello che fa per te.
L'IDE giusto può rendere ancora più divertente lavorare con Go.