Най-добрите IDE и редактори на език Go

Езикът Go на Google, известен още като Golang, наскоро бе избран за език за програмиране на Tiobe от 2016 г., въз основа на бързия му ръст на популярността през годината, повече от два пъти повече от подгласниците Dart и Perl. Езиковият индекс на Tiobe се базира на „броя на квалифицираните инженери по целия свят, курсове и доставчици на трети страни“, използвайки резултатите от множество търсачки.

Толкова голям растеж на популярността носи със себе си повишен интерес към инструментите за разработка на езика за програмиране. Тъй като езикът Go се разпространява под формата на отворен код, пълен с компилатори, инструменти и библиотеки, това, което остава на програмистите да намерят за себе си, е среда за редактиране с разбиране, независимо дали прави редактори или интегрирани среди за разработка (IDE), хоствани локално или облак.

За тази статия се опитах да разгледам всички налични среди за редактиране, съобразени с Go, и да обмисля тези, които изглеждат полезни. Започнах с официалния списък на IDE и плъгини за Go и спечелих около 35 елемента от списъка до онези, които може да заслужат проба. Ще започна с бърз преглед на полезните продукти, които намерих във всяка категория, и ще завърша с внимателен поглед към най-добрите ми предложения.

Имайте предвид, че разработката на език Go обикновено разчита на променливата GOPATH, зададена в основата на вашето работно пространство за разработка Go. Това може да е проблем за GUI приложения като редактори, които не винаги спазват настройките на средата.

Има повече от дузина езикови инструменти Go, които можете да инсталирате в директории под папката GOPATH с go getкомандата, след като самият Go бъде инсталиран. Много от редакторите, които оцених, използват един или повече от тези инструменти.

Отидете на IDE

Има изненадващ брой IDE, които поддържат Go. Значението на „подкрепа“ обаче варира. За мен се откроиха четири IDE: Gogland, Eclipse с goclipse, LiteIDE и Komodo IDE.

В най-горния край Gogland от JetBrains предлага интелигентни довършвания, инспекции и бързи корекции, просто рефакториране, бърза навигация, бързи изскачащи прозорци, някои много основни генериране на код, откриване на рекурсивно повикване, изскачащи прозорци на изрази, подчертаване на изходната точка, намиране на използване, форматиране на код, семантично подчертаване и подсказки за параметри в редактора му. Да, това е много функционалност за редактиране на млад език. Другите функции на Gogland включват интегриран дебъгер, анализ на покритието, тестово изпълнение, меню за стартиране на инструменти Go и някои неспецифични функционалности, които са подобни на това, което ще намерите в други продукти на JetBrains, като IntelliJ IDEA. Gogland може да управлява множество настройки на GOPATH, вместо да разчита изключително на системната среда GOPATH.

Понастоящем Gogland се предлага безплатно като продукт с ранен достъп. Вероятно в крайна сметка ще бъде определено като други продукти на JetBrains. Очаквайте да бъде достъпен чрез годишен абонамент или самостоятелно, или в пакет с останалите инструменти на JetBrains, с отстъпки за академични среди и сътрудници с отворен код.

На малко по-ниско ниво на сложност, Eclipse с goclipse осигурява подчертаване на синтаксиса, автоматично отстъпване и очертаване в редактора си, всичко това в духа на други езикови модули на Eclipse като Java. Интеграциите включват отстраняване на грешки с GDB, намиране на дефиниции с инструментите guru и godef Go и автоматично довършване с инструмента gocode. Eclipse и приставката goclipse са безплатни и с отворен код.

LiteIDE предлага браузър на пакети, изглед и контур на класа, браузър на документи, навигация по код, намиране на употреби и рефакторинг на кода в редактора си. Интеграциите включват поддръжка на gocode, GOPATH API индекс, отстраняване на грешки с GDB и Go playground. LiteIDE е безплатен и с отворен код.

Komodo IDE поддържа проверка на синтаксиса (свързване) и подчертаване, оцветяване на синтаксиса, сгъване на код и други функции за повишаване на производителността. Komodo също така поддържа интелигентност на Go код с допълнения, съвети за обаждания, контури и преминаване към дефиниция. Рефакторингът включва преименуване на променливи и членове на класа и извличане на метод. Komodo поддържа модулно тестване Go, съвместна работа с код, контрол на версиите, интерактивни черупки и профилиране на код. Основното твърдение на Komodo за слава е, че поддържа всички основни езици с отворен код, включително Python, Node.js, Ruby, Go, Perl и Tcl.

Komodo IDE е търговски продукт. Komodo Editor, който има подмножество от възможности на IDE, е безплатен.

Отидете редактори

Докато IDE може да предостави цялата функционалност, която искате за разработване на код, IDE често могат да се чувстват „тежки“. С други думи, може да отнеме много време, за да се стартират, да използват много памет и понякога да се чувстват неотзивчиви, докато пишете код, защото правят твърде много във фонов режим. Редакторите на кодове понякога могат да бъдат за предпочитане, особено за кратки сесии, стига да не ви притеснява необходимостта да превключвате към отделен прозорец на черупката на командния ред за компилиране.

Приставките понякога могат да добавят подобни на IDE функции към редакторите на кодове. Това обикновено е добре, стига периодичните режийни разходи за поддържане на актуализациите на приставките и постоянните режийни разходи на изпълняваните процеси на заден план не забавят редактирането ви.

Atom, Brackets и Visual Studio Code са трите редактора, които се откроиха за мен с работата на езика Go. Всички са безплатни и с отворен код. Независимо от това, BBEdit, Emacs, Notepad ++, Sublime Text, TextMate и Vim се интегрират с приставки за език Go и всички имат своите поддръжници. Emacs, Notepad ++ и Vim са безплатни и с отворен код. BBEdit е комерсиален, но малкият му брат TextWrangler е безплатен.

Редакторът Atom от GitHub се доставя с пакета language-go, който поддържа Go граматика и фрагменти. Допълнителните пакети за Go носят повече функционалност. Например go-plus се интегрира с много стандартни инструменти на Go (за автоматично довършване, форматиране, свързване, тестване), за да осигури среда, подобна на IDE, а go-debug се интегрира с дебъгера на задълбочаването.

Редакторът на скоби от Adobe има няколко разширения на общността за поддръжка на Go. Те включват Go-IDE, който използва gocodeза автоматично довършване; Go-Syntax, който използва CodeMirror за подчертаване на синтаксиса; и подобрен Go Formatter, който използва gofmtза форматиране на код и goimportsза управление на импортирането.

Visual Studio Code поддържа открояване на синтаксиса Go. Допълнителни функции се осигуряват от приставката vscode-go, която се интегрира с повече от дузина стандартни инструменти Go. Ако не сте настроили своя GOPATH, приставката ще ви помоли да го настроите веднага щом се опитате да редактирате езиков файл Go; можете да го зададете за проекта и / или системната среда. Ако не сте инсталирали инструментите Go, приставката ще поиска да ги инсталира на стандартните места, определени от вашия GOPATH.

Облачно базирани Go IDE

Облачните IDE са сравнително скорошна иновация в пространството за разработка на софтуер. Те имат две присъщи предимства: Те не изискват локална настройка, различна от съвместим браузър, и могат да позволят редактиране от множество разработчици, ако са проектирани за него. Недостатъкът на това е, че базираните на облак IDE често страдат от изоставане, което може да подтикне разработчиците и да попречи на „потока“, който позволява на кодерите да бъдат най-продуктивни. Понастоящем три базирани на облак IDE поддържат езика Go: Cloud9, CodeEnv и Wide.

Cloud9 е многоезична IDE, базирана на облак, която поддържа Go out of the box. Той се свързва с хранилища на GitHub, Bitbucket и Google Cloud Platform и има работни пространства, които можете да споделяте и клонирате. В допълнение към редактор на код с обширен набор от функции и онлайн файлова система, той има MySQL и други бази данни, терминални и незабавни прозорци и персонализируеми обвързвания на клавиатурата, като стандартните режими Vim, Emacs и Sublime Text се доставят. Автодовършването и отстраняването на грешки за Go все още са експериментални, но подчертаването на синтаксиса, панелът за изпълнение, изглед на контури и свързването са напълно поддържани.

CodeEnv също е многоезична IDE, базирана на облак. Има изображение на Go среда за частна среда, както и обществено изображение на Go среда. Всяка среда се състои от файлова система, прост редактор на код с подчертаване на синтаксиса и терминален прозорец. В момента има осем възможности за избор на основно изображение и шест варианта за фоново изображение.

Wide е уеб базирана IDE за екипи, която е написана и за езика за програмиране Go. Той използва тематичен редактор за програмиране, базиран на CodeMirror, с подчертаване на синтаксиса с помощта на gocode, автоматично довършване, форматиране на код и сътрудничество в реално време. Wide цитира LiteIDE като зависимост.

Гогланд

JetBrains Gogland, който понастоящем е в състояние на ранен преглед, изглежда е най-пълният Go IDE на разположение, въпреки че все още не е пуснат в продажба. Неговият интегриран дебъгер, анализ на покритието и тестово изпълнение изминават дълъг път към разграничаването му от стандартните редактори, които имат няколко интеграции на инструменти.

На екранната снимка по-долу, където използвам Gogland, за да разгледам някои от изходния код на проекта Go language, можете да видите няколко функции за редактиране на Gogland, включително дървото на проекта, подсказка за проверка (крушката), подчертаване на изходната точка и бързо сърфиране с помощта на навигационната лента вдясно (полето с код с номера на редове, които не са в ред). За повече екранни снимки, показващи какво може Gogland, ще ви насоча към ръководството за функции на JetBrains.

Gogland използва същата екосистема за приставки JetBrains като IntelliJ IDEA и WebStorm и вече включва много подходящи функции, наследени от тези продукти. Например можете да използвате Gogland за работа с HTML и интерфейсни езици и рамки, точно като WebStorm. Gogland също ви позволява да работите с SQL бази данни, като IntelliJ IDEA и DataGrip. Ако трябва да комбинирате поддръжката на Node.js с вашия Go кодиране или се нуждаете от поддръжка на Subversion в допълнение към интеграцията на Git, това е бърз въпрос за добавяне на приставки.

Код на Visual Studio

Visual Studio Code с приставката vscode-go е приятен Go редактор, който работи добре и има добра Git интеграция. Visual Studio Code се нуждае от актуализации и рестартиране поне веднъж месечно, но рядко се чувства бавно по време на редактиране. На екранната снимка по-долу виждаме изследователя вляво, инсталацията на Go tools в долния десен ъгъл и редактирането на кода в горния десен ъгъл.

Инструментите Go позволяват приставката vscode-go, която предоставя много функции за редактиране и проверка на кода. Те включват списъци за завършване (използване gocode), помощ за подпис (използване gogetdocили godefплюс godoc), фрагменти, бърза информация (използване gogetdocили godefплюс godoc), преминаване към дефиниция (използване gogetdocили godefплюс godoc), намиране на препратки (използване guru), контур на файла (използване go-outline), търсене на символ на работно пространство (използване go-symbols), преименуване (използване gorename), изграждане при запазване (използване go buildи go test), създаване на запаметяване (използване golintили gometalinter), форматиране (използване goreturnsили goimportsили gofmt), генериране на скелет на единични тестове (използване gotests), добавяне на импортиране (използване gopkgs), и частично изпълнено отстраняване на грешки (използвайкиdelve).

Това е много полезна функционалност, макар и не толкова, колкото получавате в Gogland IDE. Скрийнскастът във файла readme на vscode-go прави добра работа, за да демонстрира как работят повечето функции.

Облак 9

От трите IDE на облака, които поддържат Go, най-интересният в момента изглежда Cloud9. Той има най-функционалния редактор за програмиране от трите и поддържа около 17 езика в допълнение към Go. Въпреки че завършването на кода на езика Go е означено като експериментално, установих, че работи доста добре и не причинява много закъснения при въвеждане.

Понастоящем редакторът на Ace на Cloud9 поддържа подчертаване на синтаксиса за повече от 100 езика за програмиране. Цифрата 17 по-горе е за езици, които имат и друга поддръжка, като например стартиране на кода, свързване, очертаване, попълване на код и отстраняване на грешки.

Понастоящем работните пространства на Cloud9 работят с Ubuntu 14.04 и Go 1.7.3. Можете да актуализирате инсталацията си Go от черупката на Bash (вижте долната част на екранната снимка), както и да стартирате Go и други програми от Bash.

Както видяхме, имате много възможни възможности за програмиране на среда за разработка на Go. Докато избрах Gogland като най-добрата пълнофункционална Go IDE, Visual Studio Code с vscode-go като най-добрият редактор на Go и Cloud9 като най-добрата IDE на Go cloud , има повече от 30 други възможности. Като се има предвид колко личен може да бъде изборът на среда за разработка на софтуер, трябва да опитате няколко и да видите кои най-добре отговарят на вашите нужди и предпочитания.