Programování

Nejlepší IDE a editory jazyka Go

Jazyk Google Go, alias Golang, byl nedávno vybrán jako programovací jazyk Tiobe roku 2016 na základě jeho rychlého růstu popularity v průběhu roku, více než dvojnásobného oproti běžcům Dart a Perl. Index jazyků Tiobe je založen na „počtu kvalifikovaných techniků po celém světě, kurzech a prodejcích třetích stran“, využívajících výsledky několika vyhledávačů.

Tolik růstu popularity s sebou nese zvýšený zájem o vývojové nástroje pro programovací jazyk. Protože jazyk Go je distribuován ve formě otevřeného zdroje s kompilátory, nástroji a knihovnami, programátoři si mohou sami najít prostředí pro úpravy podle Go, ať už přímé editory nebo integrovaná vývojová prostředí (IDE), hostovaná lokálně nebo v mrak.

V tomto článku jsem se pokusil podívat se na všechna dostupná ediční prostředí s vědomím Go a zaměřit se na ta, která se zdají být užitečná. Začal jsem s oficiálním seznamem IDE a Plugins pro Go a prozkoumal jsem zhruba 35 položek v seznamu až po ty, které by si mohly zasloužit zkoušku. Začnu rychlým shrnutím užitečných produktů, které jsem našel v každé kategorii, a skončím podrobným pohledem na mé nejlepší tipy.

Všimněte si, že vývoj jazyka Go se obvykle spoléhá na proměnnou GOPATH nastavenou na kořen vašeho pracovního prostoru vývoje Go. To může být problém pro aplikace s grafickým uživatelským rozhraním, jako jsou editory, které ne vždy respektují nastavení prostředí.

Existuje více než tucet jazykových nástrojů Go, které můžete nainstalovat do adresářů ve složce GOPATH pomocí jdi si jakmile je nainstalován samotný Go. Mnoho editorů, které jsem hodnotil, používá jeden nebo více z těchto nástrojů.

Přejít IDE

Existuje překvapivé množství IDE, které podporují Go. Význam „podpory“ se však liší. Vynikaly pro mě čtyři IDE: Gogland, Eclipse s goclipse, LiteIDE a Komodo IDE.

Na špičkové úrovni nabízí Gogland z JetBrains inteligentní dokončení, kontroly a rychlé opravy, jednoduché refaktorování, rychlou navigaci, rychlá vyskakovací okna, některé velmi základní generování kódu, rekurzivní detekci volání, vyskakovací okna typu výrazu, zvýraznění výstupního bodu, hledání použití, formátování kódu, sémantické zvýraznění a rady s parametry v jeho editoru. Ano, to je spousta funkcí pro úpravu mladého jazyka. Mezi další funkce Goglandu patří integrovaný debugger, analýza pokrytí, testovací běh, nabídka pro spuštění nástrojů Go a některé nespecifické funkce podobné těm, které najdete v jiných produktech JetBrains, jako je IntelliJ IDEA. Gogland může spravovat více nastavení GOPATH, než aby se spoléhal výhradně na systémové prostředí GOPATH.

Gogland je v současné době k dispozici zdarma jako produkt s předčasným přístupem. Cena bude pravděpodobně nakonec stejná jako u ostatních produktů JetBrains. Očekávejte, že bude k dispozici prostřednictvím ročního předplatného samostatně nebo v balíčku se zbytkem nástrojů JetBrains, se slevami pro akademické pracovníky a přispěvatele open source.

Na mírně nižší úrovni složitosti poskytuje Eclipse s goclipse zvýraznění syntaxe, automatické odsazení a obrys ve svém editoru, a to vše v duchu ostatních jazykových modulů Eclipse, jako je Java. Integrace zahrnují ladění pomocí GDB, hledání definic pomocí nástrojů guru a godef Go a automatické doplňování pomocí nástroje gocode. Eclipse a plugin goclipse jsou zdarma a open source.

LiteIDE sportuje prohlížeč balíčků, zobrazení a přehled tříd, prohlížeč dokumentů, navigaci v kódu, vyhledání použití a refaktorování kódu v editoru. Integrace zahrnují podporu gocode, index GOPATH API, ladění pomocí GDB a hřiště Go. LiteIDE je bezplatný a otevřený zdroj.

Komodo IDE podporuje Go syntaxi kontroly (linting) a zvýrazňování, barvení syntaxe, skládání kódu a další funkce zvyšující produktivitu. Komodo také podporuje inteligenci kódů Go pomocí doplňování, tipů na volání, obrysů a definice. Refaktoring zahrnuje přejmenování proměnných a členů třídy a extrakci metody. Komodo podporuje testování jednotek Go, spolupráci na kódu, správu verzí, interaktivní skořápky a profilování kódu. Hlavním požadavkem společnosti Komodo je, že podporuje všechny hlavní jazyky s otevřeným zdrojovým kódem, včetně Pythonu, Node.js, Ruby, Go, Perl a Tcl.

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

Přejít editory

Zatímco IDE může poskytovat všechny funkce, které chcete pro vývoj kódu, IDE se často mohou cítit „těžké“. Jinými slovy, jejich spuštění může trvat dlouho, spotřebují hodně paměti a někdy při psaní kódu přestanou reagovat, protože toho dělají příliš mnoho na pozadí. Editory kódu mohou být někdy vhodnější, zejména pro krátké relace, pokud vás neobtěžuje přepínání do samostatného okna prostředí příkazového řádku pro kompilaci.

Pluginy mohou někdy do editorů kódu přidat funkce podobné IDE. To je obvykle dobré, pokud pravidelná režie udržování aktualizovaných modulů plug-in a neustálá režie procesů spouštěných pluginy na pozadí vaše úpravy nezpomalí.

Atom, Brackets a Visual Studio Code jsou tři editory, které pro mě vynikly pro práci v jazyce Go. Všechny jsou zdarma a open source. BBEdit, Emacs, Notepad ++, Sublime Text, TextMate a Vim se nicméně integrují do jazykových pluginů Go a všechny mají své zastánce. Emacs, Notepad ++ a Vim jsou bezplatné a otevřené zdroje. BBEdit je komerční, ale jeho mladší bratr TextWrangler je zdarma.

Editor Atom z GitHub je dodáván s balíčkem language-go, který podporuje gramatiku a úryvky Go. Další balíčky pro Go přinášejí více funkcí. Například go-plus se integruje s mnoha standardními nástroji Go (pro automatické doplňování, formátování, linkování, testování), aby poskytlo prostředí podobné IDE, a go-debug se integruje s debuggerem.

Editor závorek od Adobe má několik komunitních rozšíření pro podporu Go. Patří mezi ně Go-IDE, které používá gocode pro automatické doplňování; Go-Syntax, který používá CodeMirror pro zvýraznění syntaxe; a vylepšený Go Formatter, který používá gofmt formátovat kód a goimports spravovat dovoz.

Visual Studio Code podporuje zvýraznění syntaxe Go z krabice. Další funkce poskytuje plugin vscode-go, který se integruje s více než tuctem standardních nástrojů Go. Pokud nemáte nastavenou GOPATH, plugin vás požádá, abyste ji nastavili, jakmile se pokusíte upravit jazykový soubor Go; můžete jej nastavit pro projekt a / nebo systémové prostředí. Pokud nemáte nainstalované nástroje Go, plugin vás požádá o jejich instalaci na standardních místech určených vaším GOPATH.

Cloudové ID Go

Cloudová IDE jsou relativně nedávnou novinkou v prostoru vývoje softwaru. Mají dvě inherentní výhody: Nevyžadují žádné jiné místní nastavení než kompatibilní prohlížeč a oni smět povolit úpravy několika vývojáři, pokud jsou k tomu určeny. Nevýhodou je, že cloudová IDE často trpí zpožděním, což může vývojářům způsobit ošklivost a narušit „tok“, který umožňuje, aby kodéry byly nejproduktivnější. Jazyk Go v současné době podporují tři cloudová IDE: Cloud9, CodeEnv a Wide.

Cloud9 je vícejazyčné cloudové IDE, které podporuje Go out of the box. Propojuje se s úložišti GitHub, Bitbucket a Google Cloud Platform a má pracovní prostory, které můžete sdílet a klonovat. Kromě editoru kódů s rozsáhlou sadou funkcí a online souborovým systémem má MySQL a další databáze, terminál a okamžitá okna a přizpůsobitelné klávesové vazby, standardně dodávané režimy Vim, Emacs a Sublime Text. Automatické doplňování a ladění pro Go jsou stále experimentální, ale zvýraznění syntaxe, panel spuštění, zobrazení obrysu a podšívka jsou plně podporovány.

CodeEnv je také vícejazyčné cloudové IDE. K dispozici je základní obrázek prostředí Go pro soukromá prostředí, stejně jako veřejný obrázek prostředí Go. Každé prostředí se skládá ze systému souborů, jednoduchého editoru kódu se zvýrazněním syntaxe a okna terminálu. V současné době existuje osm možností základního obrazu a šest možností back-endového obrázku.

Wide je webové IDE pro týmy napsané va pro programovací jazyk Go. Používá tematický programovací editor založený na CodeMirror se zvýrazňováním syntaxe s podporou gocode, automatickým doplňováním, formátováním kódu a spoluprací v reálném čase. Wide cituje LiteIDE jako závislost.

Gogland

JetBrains Gogland, který je v současné době ve stavu předběžného náhledu, se jeví jako nejkompletnější dostupný Go IDE, i když ještě nebyl komerčně vydán. Jeho integrovaný debugger, analýza pokrytí a testovací běh ho dlouhou dobu odlišují od běžných editorů, kteří mají několik integrací nástrojů.

Na níže uvedeném snímku obrazovky, kde používám Gogland k prozkoumání některých zdrojových kódů projektu Go language, můžete vidět několik editačních funkcí Gogland, včetně stromu projektu, inspekční nápovědy (žárovky), zvýraznění výstupního bodu a rychlého procházení pomocí navigační lišta vpravo (rámeček kódu s čísly řádků mimo pořadí). Další snímky obrazovky ukazující, co umí Gogland, vám ukážu v průvodci funkcemi JetBrains.

Gogland používá stejný ekosystém pluginů JetBrains jako IntelliJ IDEA a WebStorm a již obsahuje mnoho relevantních funkcí zděděných od těchto produktů. Například můžete použít Gogland pro práci s HTML a front-end jazyky a rozhraními, přesně jako WebStorm. Gogland také umožňuje pracovat s databázemi SQL, jako je IntelliJ IDEA a DataGrip. Pokud potřebujete kromě integrace Git kombinovat podporu Node.js s kódováním Go nebo potřebujete podporu Subversion, je rychlé přidat doplňky.

Kód Visual Studio

Visual Studio Code s pluginem vscode-go je pěkný editor Go, který funguje dobře a má dobrou integraci Git. Visual Studio Code potřebuje aktualizace a restart alespoň jednou za měsíc, ale během úprav se zřídka cítí pomalý. Na snímku obrazovky níže vidíme průzkumníka vlevo, instalaci nástrojů Go vpravo dole a úpravy kódu vpravo nahoře.

Nástroje Go umožňují modul vscode-go, který poskytuje mnoho funkcí pro úpravy a kontrolu kódu. Patří mezi ně seznamy dokončení (pomocí gocode), nápověda k podpisu (pomocí gogetdoc nebo godef Plus bože), úryvky, rychlé informace (pomocí gogetdoc nebo godef Plus bože), přejděte na definici (pomocí gogetdoc nebo godef Plus bože), vyhledejte reference (pomocí guru), obrys souboru (pomocí obrys), hledání symbolů pracovního prostoru (pomocí go-symboly), přejmenovat (pomocí gorename), build-on-save (pomocí jít stavět a jít testovat), žmolkujte při ukládání (pomocí Golint nebo gometalinter), formát (pomocí goreturns nebo goimports nebo gofmt), generovat kostru testů jednotek (pomocí gotests), přidejte import (pomocí gopkgs) a částečně implementované ladění (pomocí ponořit se).

To je spousta užitečných funkcí, i když ne tolik, kolik získáte v Gogland IDE. Screencast v souboru readme vscode-go dobře ukazuje, jak většina funkcí funguje.

Cloud9

Ze tří cloudových IDE, které podporují Go, se nejzajímavější v současné době jeví Cloud9. Má nejfunkčnější programovací editor ze všech tří a kromě Go podporuje také asi 17 jazyků. Ačkoli jeho dokončení kódu jazyka Go je označeno jako experimentální, zjistil jsem, že to fungovalo docela dobře a příliš nezpůsobilo zpoždění při psaní.

Editor Ace v Cloud9 aktuálně podporuje zvýraznění syntaxe pro více než 100 programovacích jazyků. Číslo 17 výše je pro jazyky, které mají také další podporu, jako je spuštění kódu, liniové, obrysové, dokončení kódu a ladění.

V pracovních prostorech Cloud9 aktuálně běží Ubuntu 14.04 a Go 1.7.3. Instalaci Go můžete aktualizovat z prostředí Bash (viz spodní část obrazovky) a také spustit Go a další programy z Bash.

Jak jsme viděli, máte mnoho možností programovacího prostředí pro vývoj Go. Zatímco jsem vybral Gogland jako nejlepší plnohodnotný Go IDE, Visual Studio Code s vscode-go jako nejlepší Go editor a Cloud9 jako nejlepší Go cloud IDE pro mě, existuje více než 30 dalších možností. Vzhledem k tomu, jak osobní může být výběr prostředí pro vývoj softwaru, byste měli vyzkoušet několik a zjistit, která nejlépe vyhovuje vašim potřebám a preferencím.