Programavimas

Geriausi „Go“ kalbos IDE ir redaktoriai

„Google“ „Go“ kalba, dar žinoma kaip „Golang“, neseniai buvo pasirinkta 2016 m. „Tiobe“ programavimo kalba, atsižvelgiant į jos spartų populiarumą per metus, daugiau nei dvigubai, palyginti su antrosiomis „Dart“ ir „Perl“. Tiobe kalbos indeksas yra pagrįstas „kvalifikuotų inžinierių skaičiumi visame pasaulyje, kursais ir trečiųjų šalių tiekėjais“, naudojant kelių paieškos sistemų rezultatus.

Toks populiarumo augimas lemia didesnį susidomėjimą programavimo kalbos kūrimo priemonėmis. Kadangi „Go“ kalba yra platinama atviro kodo forma kartu su kompiliatoriais, įrankiais ir bibliotekomis, programuotojams belieka patiems susirasti „Go-friendly“ redagavimo aplinkas, nesvarbu, ar tai yra tiesioginiai redaktoriai, ar integruotos kūrimo aplinkos (IDE), priglobtas vietoje arba debesis.

Šiame straipsnyje aš bandžiau pažvelgti į visas galimas „Go -areness“ redagavimo aplinkas ir visiškai nerekomenduoti tų, kurios atrodo vertos. Aš pradėjau nuo oficialaus IDE ir „Go“ įskiepių sąrašo ir laimėjau apytiksliai 35 sąrašo elementus iki tų, kurie galbūt nusipelno teismo. Pradėsiu nuo greito naudingų produktų, kuriuos radau kiekvienoje kategorijoje, apibendrinimo ir baigsiu atidžiai apžvelgdamas savo geriausius pasirinkimus.

Atminkite, kad „Go“ kalbos kūrimas paprastai priklauso nuo „GOPATH“ kintamojo, nustatyto „Go“ kūrimo darbo srities šaknyje. Tai gali būti problema GUI programoms, pvz., Redaktoriams, kurios ne visada atsižvelgia į aplinkos nustatymus.

Yra daugiau nei keliolika „Go“ kalbos įrankių, kuriuos galite įdiegti kataloguose, esančiuose aplanke GOPATH, naudodami eik paimk komandą, kai bus įdiegta pati „Go“. Daugelis redaktorių, kuriuos vertinau, naudoja vieną ar kelis iš šių įrankių.

„Go IDE“

Yra stebėtinai daug IDE, palaikančių „Go“. Tačiau „palaikymo“ reikšmė skiriasi. Man išsiskyrė keturios IDE: „Gogland“, „Eclipse with goclipse“, „LiteIDE“ ir „Komodo IDE“.

Aukščiausiame gale „JogBrains“ „Gogland“ siūlo sumanius užbaigimus, patikrinimus ir greitus taisymus, paprastą pertvarkymą, greitą naršymą, greitus iššokančiuosius langus, kai kuriuos labai paprastus kodų generavimo veiksmus, rekursyvų skambučių aptikimą, išraiškos tipo iššokančiuosius langus, išėjimo taško paryškinimą, naudojimo radimą, kodo formatavimą semantinis paryškinimas ir parametrų užuominos jo redaktoriuje. Taip, tai yra daug funkcijų redaguojant jauną kalbą. Kitos „Gogland“ funkcijos apima integruotą derintuvą, aprėpties analizę, bandomąjį paleidimą, „Go“ įrankių paleidimo meniu ir kai kurias su „Go“ nesusijusias funkcijas, panašias į tas, kurias rasite kituose „JetBrains“ produktuose, pavyzdžiui, „IntelliJ IDEA“. „Gogland“ gali valdyti kelis „GOPATH“ nustatymus, o ne pasikliauti išimtinai sistemos „GOPATH“ aplinka.

Šiuo metu „Gogland“ galima nemokamai įsigyti kaip ankstyvos prieigos produktą. Tikėtina, kad ji bus įkainota pagal kitų „JetBrains“ produktų pavyzdžius. Tikėkitės, kad ją bus galima įsigyti metiniu prenumeratu arba atskirai, arba kartu su likusiais „JetBrains“ įrankiais, su nuolaidomis akademikams ir atvirojo kodo autoriams.

Šiek tiek mažesnio sudėtingumo lygio „Eclipse“ su „goclipse“ redaktoriuje pateikia sintaksės paryškinimą, automatinį įtraukimą ir išdėstymą, visa tai pagal kitų „Eclipse“ kalbos modulių, tokių kaip „Java“, dvasią. Integracija apima derinimą su GDB, apibrėžimo paiešką naudojant „guru“ ir „godef Go“ įrankius ir automatinį užbaigimą naudojant „gocode“ įrankį. „Eclipse“ ir „goclipse“ papildinys yra nemokamas ir atviro kodo.

„LiteIDE“ redaguoja paketų naršyklę, klasės vaizdą ir struktūrą, dokumentų naršyklę, kodo naršymą, ieško naudojimo būdų ir kodo pertvarkymo. Integracijose yra gocode palaikymas, GOPATH API indeksas, derinimas su GDB ir „Go“ žaidimų aikštelė. LiteIDE yra nemokamas ir atviras šaltinis.

„Komodo IDE“ palaiko „Go“ sintaksės tikrinimą (pūkavimą) ir paryškinimą, sintaksės spalvinimą, kodo lankstymą ir kitas produktyvumą didinančias funkcijas. „Komodo“ taip pat palaiko „Go“ kodo intelektą su užbaigimais, skambučių patarimais, apybraižomis ir apibrėžimu. Pertvarkymas apima kintamųjų ir klasės narių pervadinimą bei metodų išskyrimą. „Komodo“ palaiko „Go“ bandymus, kodų bendradarbiavimą, versijų valdymą, interaktyvius apvalkalus ir kodų profiliavimą. Pagrindinis „Komodo“ šlovės reikalavimas yra tai, kad jis palaiko visas pagrindines atvirojo kodo kalbas, įskaitant „Python“, „Node.js“, „Ruby“, „Go“, „Perl“ ir „Tcl“.

„Komodo IDE“ yra komercinis produktas. „Komodo Editor“, turintis IDE galimybių pogrupį, yra nemokamas.

Eiti redaktoriai

Nors IDE gali suteikti visas norimas funkcijas kuriant kodą, IDE dažnai gali jaustis „sunkūs“. Kitaip tariant, jiems gali prireikti daug laiko, kol jie paleidžiami, naudoja daug atminties ir kartais jaučiasi nereaguojantys, kai vedate kodą, nes jie per daug dirba fone. Kodo redaktoriai kartais gali būti pageidautini, ypač trumpiems seansams, jei jums netrukdo kompiliavimui pereiti prie atskiro komandinės eilutės apvalkalo lango.

Įskiepiai kartais gali pridėti IDE panašių funkcijų prie kodo redaktorių. Tai paprastai yra gerai, jei periodinės papildinių atnaujinimo išlaidos ir nuolatinės papildinių vykdymo procesai fone nesumažina jūsų redagavimo.

„Atom“, „Brackets“ ir „Visual Studio Code“ yra trys redaktoriai, kurie man išsiskyrė tuo, kad dirbau „Go“ kalba. Visi yra nemokami ir atviro kodo. Nepaisant to, „BBEdit“, „Emacs“, „Notepad ++“, „Sublime Text“, „TextMate“ ir „Vim“ visi integruojasi į „Go“ kalbos papildinius ir visi turi savo šalininkų. „Emacs“, „Notepad ++“ ir „Vim“ yra nemokami ir atviri šaltiniai. „BBEdit“ yra komercinis, tačiau jo mažasis brolis „TextWrangler“ yra nemokamas.

„Atom“ redaktorius iš „GitHub“ pristato „language-go“ paketą, kuris palaiko „Go“ gramatiką ir fragmentus. Papildomi „Go“ paketai suteikia daugiau funkcijų. Pvz., „Go-plus“ integruojamas su daugeliu standartinių „Go“ įrankių (automatiniam užbaigimui, formatavimui, pūkavimui, testavimui), kad būtų sukurta į IDE panaši aplinka, o „go-debug“ - su „delve“ derintuvu.

„Adobe“ skliaustų rengyklėje yra keli bendruomenės palaikymai, skirti „Go“ palaikymui. Tai apima „Go-IDE“, kuris naudoja gocode už automatinį užbaigimą; „Go-Syntax“, kuri sintaksės paryškinimui naudoja „CodeMirror“; ir patobulintas „Go Formatter“, kuris naudoja gofmt formatuoti kodą ir goimportas valdyti importą.

„Visual Studio Code“ palaiko „Go“ sintaksės paryškinimą iš dėžutės. Papildomas funkcijas teikia „vscode-go“ papildinys, kuris integruojamas su daugiau nei dešimčia standartinių „Go“ įrankių. Jei neturite savo GOPATH rinkinio, papildinys paprašys jį nustatyti iškart, kai bandysite redaguoti „Go“ kalbos failą; galite jį nustatyti projektui ir (arba) sistemos aplinkai. Jei neturite įdiegtų „Go“ įrankių, papildinys paprašys juos įdiegti standartinėse vietose, kurias nustato jūsų „GOPATH“.

„Cloud ID“ pagrįstos „Go IDE“

Debesies pagrindu sukurtos IDE yra gana nauja naujovė programinės įrangos kūrimo erdvėje. Jie turi du būdingus pranašumus: jiems nereikia vietinės sąrankos, išskyrus suderinamą naršyklę, ir jie Gegužė leisti redaguoti keliems kūrėjams, jei tai skirta. Neigiama yra tai, kad debesų pagrindu veikiančios IDE dažnai kenčia nuo atsilikimo, o tai gali sukelti kūrėjų veržlumą ir trukdyti „srautui“, leidžiančiam koderiams būti produktyviausiems. Šiuo metu „Go“ kalbą palaiko trys debesyje pagrįstos IDE: „Cloud9“, „CodeEnv“ ir „Wide“.

„Cloud9“ yra daugiakalbė debesies pagrindu sukurta IDE, palaikanti „Go out of the box“. Jis jungiasi su „GitHub“, „Bitbucket“ ir „Google Cloud Platform“ saugyklomis, jame yra darbo vietų, kurias galite bendrinti ir klonuoti. Be kodų rengyklės su dideliu funkcijų rinkiniu ir internetine failų sistema, ji turi „MySQL“ ir kitas duomenų bazes, terminalų ir tiesioginius langus bei pritaikomus klaviatūros apkaustus, o „Vim“, „Emacs“ ir „Sublime Text“ režimai yra standartiniai. „Go“ automatinis užbaigimas ir derinimas vis dar yra eksperimentiniai, tačiau sintaksės paryškinimas, vykdymo skydelis, kontūro rodinys ir pynimas yra visiškai palaikomi.

„CodeEnv“ taip pat yra daugiakalbė debesies pagrindu sukurta IDE. Yra „Go“ pagrindinės aplinkos vaizdas privačiai aplinkai, taip pat viešas „Go“ aplinkos vaizdas. Kiekvieną aplinką sudaro failų sistema, paprastas kodo redaktorius su sintaksės paryškinimu ir terminalo langas. Šiuo metu yra aštuoni pagrindinio vaizdo variantai ir šeši galinio vaizdo variantai.

„Wide“ yra internetinė komandų IDE, parašyta „Go“ programavimo kalba ir „Go“. Jis naudoja „CodeMirror“ pagrįstą programavimo redaktorių su „gocode“ palaikoma sintaksės paryškinimu, automatiniu užbaigimu, kodo formatavimu ir bendradarbiavimu realiuoju laiku. Wide kaip priklausomybę nurodo LiteIDE.

Goglandas

Šiuo metu ankstyvos peržiūros būsenos „JetBrains Gogland“, atrodo, yra išsamiausia „Go IDE“, nors ji dar nebuvo išleista komerciškai. Integruotas derintuvas, aprėpties analizė ir bandymas palengvina jo atskyrimą nuo redaktorių, turinčių keletą įrankių integracijų.

Žemiau pateiktoje ekrano kopijoje, kurioje naudoju „Gogland“, norėdamas ištirti kai kuriuos „Go“ kalbos projekto šaltinio kodus, galite pamatyti keletą „Gogland“ redagavimo funkcijų, įskaitant projekto medį, tikrinimo užuominą (lemputę), išėjimo taško paryškinimą ir greitą naršymą naudojant dešinėje esančią naršymo juostą (kodo langelis su eilės numeriais iš eilės). Norėdami gauti daugiau ekrano kopijų, parodančių, ką Gogland gali padaryti, persiųsiu JetBrains funkcijų vadovą.

„Gogland“ naudoja tą pačią „JetBrains“ įskiepių ekosistemą kaip „IntelliJ IDEA“ ir „WebStorm“, ir joje jau yra daug susijusių funkcijų, paveldėtų iš šių produktų. Pvz., „Gogland“ galite naudoti dirbdami su HTML ir sąsajos kalbomis bei sistemomis, kaip ir „WebStorm“. „Gogland“ taip pat leidžia dirbti su SQL duomenų bazėmis, tokiomis kaip „IntelliJ IDEA“ ir „DataGrip“. Jei jums reikia derinti „Node.js“ palaikymą su „Go“ kodavimu arba, be „Git“ integracijos, reikia „Subversion“ palaikymo, greitai reikia pridėti papildinių.

„Visual Studio“ kodas

„Visual Studio Code“ su „vscode-go“ įskiepiu yra puikus „Go“ redaktorius, kuris veikia gerai ir turi gerą „Git“ integraciją. Visual Studio Code reikia atnaujinti ir paleisti iš naujo bent kartą per mėnesį, tačiau redaguojant jis retai jaučiasi lėtas. Žemiau esančioje ekrano kopijoje matome naršyklę kairėje, „Go Tools“ diegimą apačioje dešinėje ir kodo redagavimą viršuje dešinėje.

„Go“ įrankiai įgalina „vscode-go“ papildinį, kuris teikia daug redagavimo ir kodo tikrinimo funkcijų. Tai apima baigimo sąrašus (naudojant gocode), parašo pagalba (naudojant gogetdoc arba godefas pliusas godoc), fragmentai, greita informacija (naudojant gogetdoc arba godefas pliusas godoc), pereikite prie apibrėžimo (naudojant gogetdoc arba godefas pliusas godoc), raskite nuorodų (naudodami guru), failo schema (naudojant apybraiža), darbo srities simbolių paieška (naudojant simboliai), pervadinti (naudojant gorename), „build-on-save“ (naudojant eikit statyti ir eik išbandyti), pūkų taupymas (naudojant golintas arba gometalinteris), formatas (naudojant goreturnai arba goimportas arba gofmt), sugeneruokite vieneto testų skeletą (naudodami getestai), pridėkite importą (naudojant gopkgs) ir iš dalies įdiegtas derinimas (naudojant gilintis).

Tai yra daug naudingų funkcijų, nors ir ne tiek, kiek gausite „Gogland IDE“. „Vscode-go readme“ failo ekrano perdavimas gerai parodo, kaip veikia dauguma funkcijų.

9 debesis

Iš trijų „Go“ palaikančių debesies IDE šiuo metu atrodo įdomiausias „Cloud9“. Jis turi funkcionaliausią programavimo redaktorių iš trijų ir palaiko apie 17 kalbų, be „Go“. Nors „Go“ kalbos kodo užbaigimas pažymėtas eksperimentiniu būdu, supratau, kad jis veikė gana gerai ir nesukėlė daug vilčių rašyti.

„Cloud9“ redaktorius „Ace“ šiuo metu palaiko sintaksės paryškinimą daugiau nei 100 programavimo kalbų. Aukščiau pateiktas skaičius 17 skirtas kalboms, kurios taip pat turi kitą palaikymą, pvz., Kodo paleidimas, pynimas, išdėstymas, kodo užbaigimas ir derinimas.

„Cloud9“ darbo vietose šiuo metu veikia „Ubuntu 14.04“ ir „Go 1.7.3“. Galite atnaujinti „Go“ diegimą iš „Bash“ apvalkalo (žr. Ekrano kopijos apačią), taip pat paleisti „Go“ ir kitas „Bash“ programas.

Kaip matėme, jūs galite pasirinkti daug „Go“ programavimo aplinkos. Nors „Gogland“ pasirinkau kaip geriausią visų funkcijų „Go IDE“, „Visual Studio Code“ su „vscode-go“ kaip geriausią „Go“ redaktorių ir „Cloud9“ kaip geriausią „Go Cloud IDE“ man, yra daugiau nei 30 kitų galimybių. Atsižvelgdami į tai, koks asmeniškas gali būti programinės įrangos kūrimo aplinkos pasirinkimas, turėtumėte išbandyti keletą ir pamatyti, kurie geriausiai atitinka jūsų poreikius ir pageidavimus.