Programovanie

Najlepšie IDE a editory v jazyku Go

Jazyk Google Go, alias Golang, bol nedávno vybraný ako programovací jazyk Tiobe pre rok 2016 na základe rýchleho popularitného rastu, ktorý je v priebehu roka viac ako dvojnásobný oproti bežcom Dart a Perl. Jazykový index Tiobe je založený na „počte kvalifikovaných technikov na celom svete, kurzoch a dodávateľoch tretích strán“, využívajúcich výsledky viacerých vyhľadávacích nástrojov.

Tento nárast popularity so sebou prináša zvýšený záujem o vývojové nástroje pre programovací jazyk. Pretože jazyk Go je distribuovaný vo forme otvoreného zdroja s kompilátormi, nástrojmi a knižnicami, programátori si môžu sami nájsť editačné prostredia podporujúce Go, či už priame editory alebo integrované vývojové prostredia (IDE), hostené lokálne alebo v oblak.

V tomto článku som sa pokúsil preskúmať všetky dostupné editačné prostredia podporujúce Go a zamerať sa na tie, ktoré sa zdajú byť užitočné. Začal som s oficiálnym zoznamom IDE a doplnkov pre Go a poznal som zhruba 35 položiek v zozname až po tie, ktoré by si mohli zaslúžiť vyskúšanie. Začnem krátkym zhrnutím užitočných produktov, ktoré som našiel v každej kategórii, a skončím podrobným prehľadom mojich najlepších ponúk.

Upozorňujeme, že vývoj jazyka Go sa zvyčajne spolieha na premennú GOPATH nastavenú na koreň vášho vývojového pracovného priestoru Go. To môže byť problém pre aplikácie GUI, ako sú napríklad editory, ktoré nie vždy dodržiavajú nastavenia prostredia.

Existuje viac ako tucet jazykových nástrojov Go, ktoré môžete nainštalovať do adresárov v priečinku GOPATH pomocou choď si zohnať akonáhle je nainštalovaný samotný Go. Mnoho redaktorov, ktorých som hodnotil, používa jeden alebo viac z týchto nástrojov.

Choďte na IDE

Existuje prekvapivé množstvo IDE, ktoré podporujú Go. Význam „podpory“ sa však líši. Vynikli pre mňa štyri IDE: Gogland, Eclipse s goclipse, LiteIDE a Komodo IDE.

Na vysokej úrovni obsahuje Gogland od JetBrains inteligentné dokončenia, kontroly a rýchle opravy, jednoduché refaktoringy, rýchlu navigáciu, rýchle vyskakovacie okná, niekoľko veľmi základných generácií kódu, rekurzívne zisťovanie hovorov, vyskakovacie okná typu výrazu, zvýraznenie výstupného bodu, hľadanie použitia, formátovanie kódu, sémantické zvýraznenie a tipy na parametre v jeho editore. Áno, je to veľa funkcií na úpravu mladého jazyka. Medzi ďalšie funkcie Goglandu patrí integrovaný debugger, analýza pokrytia, testovanie, ponuka pre spustenie nástrojov Go a niektoré nešpecifické funkcie podobné tým, ktoré nájdete v iných produktoch JetBrains, napríklad IntelliJ IDEA. Gogland môže skôr spravovať viac nastavení GOPATH, ako sa spoliehať výlučne na systémové prostredie GOPATH.

Gogland je v súčasnosti k dispozícii zadarmo ako produkt so skorým prístupom. Cena bude pravdepodobne podobná cene ostatných produktov JetBrains nakoniec. Očakávajte, že bude k dispozícii prostredníctvom ročného predplatného buď samostatne, alebo v balíku so zvyšnými nástrojmi JetBrains so zľavami pre akademických pracovníkov a prispievateľov otvoreného zdroja.

Na trochu nižšej úrovni zložitosti poskytuje Eclipse s goclipse vo svojom editore zvýraznenie syntaxe, automatické odsadenie a naznačenie, a to všetko v duchu ostatných jazykových modulov Eclipse, ako je Java. Medzi integrácie patrí ladenie pomocou GDB, hľadanie definícií pomocou nástrojov guru a godef Go a automatické dopĺňanie pomocou nástroja gocode. Eclipse a plugin goclipse sú bezplatné a otvorené zdroje.

LiteIDE ponúka prehliadač balíkov, zobrazenie a prehľad tried, prehľadávač dokumentov, navigáciu v kóde, možnosti použitia a refaktoring kódu v editore. Integrácie zahŕňajú podporu gocode, index GOPATH API, ladenie pomocou GDB a ihrisko Go. LiteIDE je bezplatný a otvorený zdroj.

Komodo IDE podporuje kontrolu syntaxe Go (podšívka) a zvýraznenie, vyfarbenie syntaxe, skladanie kódu a ďalšie funkcie zvyšujúce produktivitu. Komodo tiež podporuje inteligenciu kódov Go pomocou doplnení, tipov na volanie, obrysov a definície. Refaktoring zahŕňa premenovanie premenných a členov triedy a extrakciu metódy. Komodo podporuje testovanie jednotiek Go, spoluprácu na kóde, správu verzií, interaktívne mušle a profilovanie kódu. Najväčším úspechom spoločnosti Komodo je jej sláva, že podporuje všetky hlavné jazyky s otvoreným zdrojovým kódom, vrátane jazykov Python, Node.js, Ruby, Go, Perl a Tcl.

Komodo IDE je komerčný produkt. Editor Komodo, ktorý má podmnožinu schopností IDE, je zadarmo.

Choďte do editorov

Aj keď IDE môže poskytovať všetky funkcie, ktoré chcete pre vývoj kódu, IDE sa často môžu cítiť „ťažké“. Inými slovami, môže trvať dlho, kým sa naštartujú, využijú veľa pamäte a niekedy sa stane, že pri zadávaní kódu nereagujú, pretože toho robia príliš veľa na pozadí. Editori kódu môžu byť niekedy vhodnejší, najmä pri krátkych reláciách, pokiaľ vás nebude obťažovať prepínanie do samostatného okna príkazového riadku na kompiláciu.

Pluginy môžu niekedy do editorov kódu pridať funkcie podobné IDE. To je zvyčajne dobré, pokiaľ periodické náklady na aktualizáciu doplnkov a neustále náklady na procesy prebiehajúce na pozadí nespĺňajú vaše úpravy.

Atom, Brackets a Visual Studio Code sú traja editori, ktorí ma vynikli prácou v jazyku Go. Všetky sú bezplatné a otvorené. Napriek tomu sú programy BBEdit, Emacs, Notepad ++, Sublime Text, TextMate a Vim integrované do jazykových doplnkov Go a všetky majú svojich navrhovateľov. Emacs, Notepad ++ a Vim sú bezplatné a otvorené zdroje. BBEdit je komerčný, ale jeho malý brat TextWrangler je zadarmo.

Editor Atom z GitHub sa dodáva s balíkom language-go, ktorý podporuje gramatiku a úryvky Go. Ďalšie balíčky pre Go prinášajú viac funkcií. Napríklad go-plus sa integruje s mnohými štandardnými nástrojmi Go (na automatické dopĺňanie, formátovanie, prekladanie, testovanie), aby poskytlo prostredie podobné IDE, a go-debug sa integruje s debuggerom delve.

Editor zátvoriek od spoločnosti Adobe má pre podporu Go niekoľko rozšírení pre komunitu. Medzi ne patrí Go-IDE, ktoré používa gocode na automatické dopĺňanie; Go-Syntax, ktorá používa CodeMirror na zvýraznenie syntaxe; a vylepšený formátovač Go, ktorý používa gofmt formátovať kód a goimports na správu dovozu.

Visual Studio Code podporuje zvýraznenie syntaxe Go po vybalení z krabice. Ďalšie funkcie poskytuje doplnok vscode-go, ktorý sa integruje do viac ako desiatky štandardných nástrojov Go. Ak nemáte nastavený svoj GOPATH, plugin vás požiada o jeho nastavenie, akonáhle sa pokúsite upraviť jazykový súbor Go; môžete ho nastaviť pre projekt a / alebo pre systémové prostredie. Ak nemáte nainštalované nástroje Go, plugin požiada o ich inštaláciu na štandardných miestach určených vaším GOPATH.

Cloudové ID ID Go

Cloudové IDE sú relatívne čerstvou inováciou v oblasti vývoja softvéru. Majú dve neodmysliteľné výhody: Nevyžadujú okrem lokálneho kompatibilného prehliadača žiadne iné miestne nastavenie, a sú smieť povoliť úpravy viacerými vývojármi, ak sú na to určené. Negatívnou stránkou je, že IDE založené na cloude často trpia oneskorením, ktoré môže vývojárov pripraviť orech a narušiť „tok“, ktorý umožňuje, aby boli programátory najproduktívnejšie. Jazyk Go v súčasnosti podporujú tri cloudové IDE: Cloud9, CodeEnv a Wide.

Cloud9 je viacjazyčné cloudové IDE, ktoré podporuje funkciu Go out of the box. Prepája sa s úložiskami GitHub, Bitbucket a Google Cloud Platform a má pracovné priestory, ktoré môžete zdieľať a klonovať. Okrem editora kódov s rozsiahlou sadou funkcií a online súborovým systémom má MySQL a ďalšie databázy, terminál a okamžité okná a prispôsobiteľné klávesové väzby, štandardne dodávané s režimami Vim, Emacs a Sublime Text. Automatické dopĺňanie a ladenie pre Go sú stále experimentálne, ale zvýraznenie syntaxe, panel spustenia, obrysové zobrazenie a podšívka sú plne podporované.

CodeEnv je tiež viacjazyčné cloudové IDE. K dispozícii je základný obrázok prostredia Go pre súkromné ​​prostredia, ako aj verejný obrázok prostredia Go. Každé prostredie pozostáva zo súborového systému, jednoduchého editora kódu so zvýraznením syntaxe a okna terminálu. V súčasnej dobe existuje osem možností základného obrázka a šesť možností back-endového obrázka.

Wide je webové IDE pre tímy napísané v programovacom jazyku Go a pre tento program. Používa tematický programovací editor založený na CodeMirror so zvýrazňovaním syntaxe pomocou gocode, automatickým dokončovaním, formátovaním kódu a spoluprácou v reálnom čase. Wide cituje LiteIDE ako závislosť.

Gogland

JetBrains Gogland, ktorý je momentálne v stave skorej ukážky, sa javí ako najkompletnejší dostupný Go IDE, aj keď ešte nebol komerčne vydaný. Jeho integrovaný debugger, analýza pokrytia a testovací beh idú dlhú cestu k jeho odlíšeniu od bežných editorov, ktorí majú niekoľko integrácií nástrojov.

Na snímke obrazovky nižšie, kde pomocou programu Gogland skúmam niektoré zo zdrojových kódov projektu v jazyku Go, môžete vidieť niekoľko funkcií úprav Goglanda, vrátane stromu projektu, kontrolného hintu (žiarovky), zvýraznenia výstupného bodu a rýchleho prehliadania pomocou navigačná lišta vpravo (rámček s číslami riadkov mimo poradia). Viac snímok obrazovky, ktoré ukazujú, čo dokáže Gogland, sa dozviem v príručke funkcií JetBrains.

Gogland používa rovnaký ekosystém doplnkov JetBrains ako IntelliJ IDEA a WebStorm a už obsahuje mnoho relevantných funkcií zdedených z týchto produktov. Napríklad môžete použiť Gogland na prácu s HTML a front-endovými jazykmi a frameworkmi, presne ako WebStorm. Gogland vám tiež umožňuje pracovať s databázami SQL, ako sú IntelliJ IDEA a DataGrip. Ak potrebujete okrem integrácie Gitu skombinovať podporu Node.js s kódovaním Go alebo potrebujete podporu Subversion, je rýchle pridať doplnky.

Kód Visual Studio

Visual Studio Code s pluginom vscode-go je pekný editor Go, ktorý funguje dobre a má dobrú integráciu Git. Visual Studio Code síce potrebuje aktualizácie a reštart aspoň raz za mesiac, ale počas úprav sa zriedka cíti pomaly. Na snímke obrazovky nižšie vidíme prieskumníka vľavo, inštaláciu nástrojov Go vpravo dole a úpravy kódu vpravo hore.

Nástroje Go umožňujú modul vscode-go, ktorý poskytuje mnoho funkcií úprav a kontroly kódu. Patria sem dokončovacie zoznamy (s použitím gocode), pomoc s podpisom (pomocou gogetdoc alebo godef plus godoc), úryvky, rýchle informácie (pomocou gogetdoc alebo godef plus godoc), prejdite na definíciu (pomocou gogetdoc alebo godef plus godoc), vyhľadajte referencie (pomocou guru), obrys súboru (pomocou go-outline), hľadanie symbolov pracovného priestoru (pomocou go-symboly), premenovať (pomocou gorename), build-on-save (pomocou choď stavať a choď testovať), žmolkujte pri ukladaní (pomocou drahý alebo gometalinter), formát (pomocou goreturns alebo goimports alebo gofmt), vygeneruje kostru jednotkových testov (pomocou gotests), pridajte import (pomocou gopkgs) a čiastočne implementované ladenie (pomocou ponoriť sa).

To je veľa užitočných funkcií, aj keď nie toľko, koľko získate v Gogland IDE. Screencast v súbore readcode vscode-go odvádza dobrú prácu, keď ukazuje, ako väčšina funkcií funguje.

Oblak 9

Z troch cloudových IDE, ktoré podporujú Go, sa v súčasnosti javí ako najzaujímavejší Cloud9. Má najfunkčnejší programovací editor z týchto troch a okrem Go podporuje aj asi 17 jazykov. Aj keď je jeho dokončenie jazykového kódu Go označené ako experimentálne, zistil som, že fungovalo dosť dobre a nespôsobovalo príliš veľa zdržaní pri písaní.

Editor Ace v Cloud9’s v súčasnosti podporuje zvýrazňovanie syntaxe pre viac ako 100 programovacích jazykov. Číslo 17 vyššie je určené pre jazyky, ktoré majú aj inú podporu, napríklad spustenie kódu, liniové vykreslenie, naznačenie, dokončenie kódu a ladenie.

Pracovné priestory Cloud9 momentálne používajú Ubuntu 14.04 a Go 1.7.3. Inštaláciu systému Go môžete aktualizovať z prostredia Bash (pozrite dolnú časť obrazovky), ako aj spustiť program Go a ďalšie programy z programu Bash.

Ako sme videli, máte veľa možností programovacieho prostredia pre vývoj Go. Zatiaľ čo som vybral Gogland ako najlepšie plnohodnotné Go IDE, Visual Studio Code s vscode-go ako najlepší editor Go a Cloud9 ako najlepšie Go cloud IDE pre mňa, existuje viac ako 30 ďalších možností. Vzhľadom na to, aký osobný môže byť výber prostredí na vývoj softvéru, mali by ste vyskúšať niekoľko a zistiť, ktoré z nich najlepšie vyhovujú vašim potrebám a preferenciám.

$config[zx-auto] not found$config[zx-overlay] not found