Golang-opas: Luettelo parhaista Golang-ohjelmointikehyksistä, -IDE:istä ja -työkaluista

Googlen Go ohjelmointikieli (Golang) on yleistynyt käyttöönotostaan lähtien valtavirran käyttäjien keskuudessa. Joulukuussa 2016 tehdyssä tutkimuksessa 89 % 3595 vastaajasta väitti ohjelmoivansa Go-kielellä työssä tai sen ulkopuolella.

Lisäksi Go on ohjelmointikielistä korkeimmalla sijalla asiantuntemuksen ja mieltymyksen suhteen. Tänä heinäkuussa 2017 Go on 10. sijalla Tioben Vuoden ohjelmointikielissä, ja se hyppäsi viime vuoden 55. sijalta.

On selvää, että Go houkuttelee monia eri alojen ohjelmoijia ja ohjelmistokehityksen ulkoistamisen ammattilaisia. Ja on turvallista sanoa, että tämä johtuu Go:n helppokäyttöisyydestä.

Kompiloituna, avoimen lähdekoodin ohjelmointikielenä Go:n avulla kehittäjien on helppo rakentaa yksinkertaisia, luotettavia ja tehokkaita ohjelmistoja. Se on konservatiivisempien kielten, kuten C:n ja C++:n, innovaation ja evoluution tuote.

Gon avulla koodin tyypittelyn määrä on vähentynyt, ja vankkojen sovellusrajapintojen kirjoittaminen suorituskykyä uhraamatta on tullut helpommaksi. Go on suunniteltu skaalautuvuutta ja samanaikaisuutta varten, ja se mahdollistaa optimoinnit. Kääntäjä voi suorittaa kaikki koodin tarkastustyöt ennen suoritusaikaa.

Olemme koonneet listan Golangin parhaista kehyksistä, IDE-ohjelmista ja työkaluista pikaista käyttöä varten. Laita se kirjanmerkkeihin selaimeesi, jotta voit palata siihen aina, kun työskentelet Go:n parissa!

Frameworks for Golang

Web-kehykset auttavat kehittäjiä rakentamaan sovelluksia mahdollisimman helposti ja nopeasti. Go on vielä suhteellisen uusi, joten on tärkeää käyttää kehyksiä, joilla on riittävä dokumentaatio.

Tässä on 9 kehystä, joiden avulla voit rakentaa projekteja Go-kielellä.

Revel

Korkean tuottavuuden kehyksenä Go-kielelle Revel sisältää Hot Code Reload -työkalun, jonka avulla voit rakentaa projektin uudelleen jokaisen tiedostomuutoksen yhteydessä. Se sisältää myös laajan valikoiman kattavia ja suorituskykyisiä ominaisuuksia, joten sinun ei tarvitse etsiä ulkoisia kirjastoja integroitavaksi kehykseen.

Beego

Beego on täysimittainen MVC-kehys, jolla on oma lokikirjasto, ORM ja web-kehykset. Sinun ei tarvitse etsiä ja asentaa kolmannen osapuolen kirjastoja. Siinä on sisäänrakennettu työkalu nimeltä Bee Tool, joka tarkkailee koodimuutoksia ja suorittaa tehtäviä, kun muutoksia havaitaan.

Beego säästää paljon tunteja, etenkin projektin alussa, kun selvität kirjauskehystä tai sovelluksen rakennetta.

Martini

Sinatran innoittamana Martini on erittäin kevyt mutta tehokas kehys. Se on kehitetty modulaaristen verkkosovellusten ja -palveluiden kirjoittamiseen Golangilla.

Se tarjoaa ei-tunkeutuvan suunnittelun, joka on nopea ja helppokäyttöinen ja sisältää laajan valikoiman käsittelijöitä ja väliohjelmistoja. Se pystyy suorittamaan perusreitityksen, poikkeuskäsittelyn ja oletusdokumenttien tarjoilun AngularJS-sovelluksille HTML5-tilassa.

Martinin paras ominaisuus on sen heijastuksen käyttö, jonka avulla kehittäjät voivat dynaamisesti lisätä tietoja käsittelijätoimintoihin ja lisätä uusia palveluita. Martini on myös täysin yhteensopiva http.HandlerFunc-rajapinnan kanssa. Huonona puolena on kuitenkin se, että Martini-kehystä ei enää ylläpidetä.

Gin Gonic

Gin Gonic on web-kehys, jolla on Martinin kaltainen API, mutta paljon parempi suorituskyky. Jos olet käyttänyt Martinia aiemmin, Gin Gonic on sinulle tuttu. Muuten Ginin opetteluun menee vain 10 minuuttia. Se on niin helppoa!

Gin Gonic on minimalistinen kehys, joka sisältää vain tärkeimmät kirjastot ja ominaisuudet. Tämä tekee siitä täydellisen suorituskykyisten REST API:iden kehittämiseen. Lisäksi se on 40 kertaa nopeampi kuin Martini.

Voit lisätä väliohjelmistoja, sisäkkäisiä ryhmiä, JSON-validoinnin ja renderöinnin, mutta se säilyttää silti optimaalisen suorituskykynsä. Gin Gonic käyttää httprouteria, Go:n nopeinta HTTP-reititintä.

Buffalo

Uusien verkkosovellusten rakentaminen Go:lla on nopeaa ja yksinkertaista Buffalon avulla. Kun aloitat uuden projektin, Buffalossa on jo kaikki valmiina – front-end-kehityksestä back-end-kehitykseen.

Se sisältää Hot Reloading -ominaisuuden, mikä tarkoittaa, että dev-komento tarkkailee .go- ja .html-tiedostojasi automaattisesti. Sen jälkeen se rakentaa binäärisi uudelleen ja käynnistää sen uudelleen puolestasi. Suorita vain dev-komento, ja näet muutosten siirtyvän eläviksi suoraan silmiesi edessä!

Buffalo on enemmän kuin pelkkä kehys – se on kokonaisvaltainen web-kehityksen ekosysteemi, jonka avulla pääset suoraan rakentamaan sovellustasi.

Goji

Goji on kevyt ja nopea web-kehys, jonka tärkeimpänä prioriteettina on sommiteltuvuus ja yksinkertaisuus. Aivan kuten net/http.ServeMux, Goji on minimalistinen HTTP-pyyntöjen multiplekseri. Se sisältää Einhorn-tuen, joka mahdollistaa websocket-tuen Gojissa.

Lisäominaisuuksiin kuuluvat URL-mallit, uudelleenkonfiguroitava väliohjelmistopino, armollinen sammutus ja paljon muuta. Gojia voidaan käyttää tuotannossa, ja se on palvellut miljardeja pyyntöjä useissa organisaatioissa.

Tiger Tonic

Tiger Tonic on Dropwizardista inspiroitunut Go-kehys JSON-verkkopalveluiden kehittämiseen ja suorituskykyisten REST API:iden rakentamiseen. Pysyäkseen uskollisena Golangin periaatteille Tiger Tonic pyrkii pitämään ominaisuudet ortogonaalisina.

Tiger Tonicin huono puoli on sen riittämättömyys suurten back-end-sovellusten rakentamisessa.

Gocraft

Toiseksi tehokkaaksi, mutta minimalistiseksi kehykseksi Gocraft tarjoaa nopean ja skaalautuvan reititystoiminnan. Se lisää reitityksen net/http-pakettiin standardikirjastosta.

Gocraft on Go:n mux- ja middleware-paketti, jossa on casting- ja reflection-ominaisuudet, jotta voit kirjoittaa koodisi staattisesti. Voit myös lisätä valinnaisen toiminnallisuuden sisäänrakennetulla väliohjelmistolla tai kirjoittaa oman.

Koska suorituskyky on aina yksi kehittäjien tärkeimmistä huolenaiheista, Gocraft on hyvä valinta kehittäjille. Backend-verkkosovellusten kirjoittaminen Gocraft-kehyksen avulla on erittäin helppoa.

Mango

Vaikka Mango ei olekaan luojansa Paul Bellamyn aktiivisessa ylläpidossa, monet Go:n käyttäjät käyttävät sitä edelleen. Mangon hieno puoli on sen modulaarisuus. Voit valita erilaisista kirjastoista, jotka haluat sisällyttää projektiisi.

Mangon avulla voit rakentaa HTTP-toiminnallisuuden uudelleenkäytettäviä moduuleja mahdollisimman nopeasti ja helposti. Se kokoaa luettelon väliohjelmistosta ja sovelluksesta yhdeksi http-palvelinobjektiksi, jotta koodisi pysyy itsenäisenä.

Integroitu kehitysympäristö (IDE) Golangille

IDE:t Golangille ovat Go-kielen ohella kasvattamassa suosiotaan. Vaikka monet kehittäjät käyttävät edelleen mieluummin tekstieditoreita, monet käyttävät mieluummin myös IDE-ohjelmia.

Jos työskentelet laajamittaisen projektin parissa, jossa on laaja koodipohja, IDE voi auttaa sinua järjestämään koodisi ja navigoimaan siinä helposti. Lisäksi IDE:t voivat auttaa sinua testaamaan koodisi ja muokkaamaan niitä sen mukaisesti.

Tässä ovat parhaat IDE:t, jotka toimivat loistavasti Golangin kanssa.

Gogland

Ohjelmistokehitysyritys JetBrains on julkaissut toisen luotettavan IDE:n, mutta tällä kertaa Golangille. Gogland on kaupallinen IDE, joka tarjoaa vankan ergonomisen ympäristön Go-kehittäjille. Siinä on myös koodausapua, debuggeri ja integroitu terminaali.

Koska Goglandin on luonut vakiintunut yritys, sillä on laaja IntelliJ-lisäosien ekosysteemi, josta voit hankkia lisätyökaluja, jos tarvitset lisää.

Visual Studio Code

Microsoftin luoma Visual Studio Code on monipuolinen, avoimen lähdekoodin IDE- ja koodieditori, joka tukee useita eri ohjelmointikieliä. Siinä on älykäs täydentäminen IntelliSense-ohjelmalla, virheenkorjaus katkaisupisteiden, kutsupinojen ja interaktiivisen konsolin avulla, sisäänrakennettu Git-integraatio sekä hierarkkinen kansio- ja tiedostoetsintä.

Toisena suosittuna IDE:nä Visual Studio Codella on Go-kehittäjien kannustava yhteisö, joka osallistuu säännöllisesti. Visual Studio Codella voit laajentaa toiminnallisuuksia saatavilla olevien liitännäisohjelmien avulla.

LiteIDE

LiteIDE on ensimmäisiä Golang-keskeisiä, avoimen lähdekoodin IDE-ohjelmia, joka luotiin yli viisi vuotta sitten. Ainutlaatuisen ulkoasun omaavana C++ Qt-sovelluksena LiteIDE tarjoaa koodinhallinnan, konfiguroitavat build-komennot, gdb- ja Delve-debuggerin, automaattisen täydennyksen ja teemoittelun WordApi:n avulla, MIME-tyyppipohjaisen järjestelmän ja paljon muuta. Se tarjoaa myös JSON- ja Golang-tuen.

Wide

Wide on web-pohjainen IDE Golang-ohjelmoijille. Se on suunniteltu yhteistoiminnalliseen kehitykseen ja sopii parhaiten tiimeille ja web-kehitystoimistoille. Widen ominaisuuksiin kuuluvat koodin korostus, virheenkorjaus, Git-integraatio ja paljon muuta.

Koska Widen on luonut ja sitä ylläpitää kiinalainen kehittäjä, suurin osa sen dokumentaatiosta ja tuesta on kiinankielistä.

Atom ja go-plus-lisäosa

Jos käytät jo Atomia, koodinmuokkauskokemustasi Golangissa voi parantaa avoimen lähdekoodin paketilla, jota kutsutaan go-plusiksi. Go-plusin avulla saat välitöntä, reaaliaikaista palautetta syntaksi- ja rakennusvirheistä.

Go-plus-paketti tarjoaa lähes kaiken Golang-tuen Atomissa. Sitä voidaan käyttää myös työkaluihin, build-virtoihin, lintereihin, vet- ja coverage-työkaluihin.

Go-plus sisältää myös erilaisia koodinpätkiä ja -ominaisuuksia, kuten automaattinen täydennys gocodella, koodin muotoilu gofmt:llä, goreturns:llä tai goimports:lla ja paljon muuta.

Eclipse GoClipsen kanssa

Koska Eclipse on laajalti suosittu IDE, sille on luotu lukuisia lisäosia. GoClipse on Eclipse-lisäosa Golangille, joka tarjoaa Go-lähdekoodin muokkauksen konfiguroitavalla syntaksin korostuksella sekä automaattisella sisennyksellä ja sulkujen täydentämisellä.

GoClipse toimii myös projektin ohjattavana ja rakentajana, joka ilmoittaa syntaksi- ja rakennusvirheet välittömästi. GoClipsen lisäominaisuuksiin kuuluvat virheenkorjaustoiminnot ja koodiavustajat.

Sublime Text with GoSublime

Sublime Text on toinen hienostunut tekstieditori, jolla on suuri yhteisö avustajia ja kehittäjiä. Sen vuoksi tälle IDE:lle on luotu monenlaisia liitännäisiä.

GoSublime on Golang-liitännäinen Sublime Text 3:lle, joka tarjoaa koodin täydentämisen Gocodesta, linttien/syntaksin tarkistuksen koodia johdettaessa, pakettituonnin automaattisen lisäämisen ja poistamisen ja paljon muuta.

Vim vim-go -liitännäisen kanssa

Vim on ilmainen, avoimen lähdekoodin IDE-ohjelmointikehitysympäristö (IDE), joka on mahdollista räätälöidä ja konfiguroida erilaisilla laajennuksilla. Jos olet Golang-ohjelmoija, voit käyttää Vimiä Fatih Arslanin luoman vim-go -lisäosan kanssa. Vim-go asentaa automaattisesti kaikki tarvittavat binäärit tarjotakseen sujuvan Vim-integraation Golangille.

Vim-go on tehokas lisäosapaketti Go:n kirjoittamiseen ja kehittämiseen. Sen ominaisuuksiin kuuluvat edistynyt lähdekoodianalyysi, tuontipolkujen lisääminen ja poistaminen, usean kolmannen linjan tuki, goto-määrittely, nopeat tiedostojen suoritukset ja paljon muuta.

Vim-go on hyvin muokattavissa, ja siinä on yksittäisiä ominaisuuksia, jotka voidaan ottaa käyttöön tai poistaa käytöstä tarpeen mukaan.

Komodo

Komodo on täysimittainen Go-kielen IDE, joka tukee myös muita ohjelmointikieliä, kuten Node.js:ää, Pythonia, Rubya ja Perliä. Tämän Go IDE:n avulla voit kirjoittaa puhdasta koodia helposti. Sen ominaisuuksiin kuuluvat edistynyt koodieditori, älykäs koodin täydentäminen, syntaksin tarkistus, versionhallinta ja yksikkötestaus sekä Go Code Intelligence, joka mahdollistaa koodin selaamisen ja koodivihjeiden antamisen.

Komodon hieno puoli on se, että se sopii erinomaisesti tiimityöskentelyyn, koska useat kehittäjät voivat muokata asiakirjaa samanaikaisesti. Komodo voidaan asentaa Macille, Windowsille tai Linuxille yhdellä lisenssillä.

IntelliJ IDEA with Go Language (golang.org) Support Plugin

IntelliJ IDEA (sama yritys kuin JetBrains) on IDE, jota voidaan käyttää Golangin kanssa Go-kielen tukiliitännän avulla. Jos haluat käyttää IntelliJ IDEAa Golangin kanssa, sinun on asennettava tämä lisäosa, vaikkakin rajoitetuin ominaisuuksin verrattuna Goglandiin.

Työkalut Golangille

Golang-työkaluja voidaan käyttää monenlaisiin projekteihin ja verkkosovelluksiin. Kehittäjät voivat kirjoittaa koodia ja rakentaa sovelluksia mahdollisimman nopeasti ja helposti näiden hyödyllisten työkalujen avulla.

Tässä on luettelo parhaista Golang-työkaluista.

Apicompat

Apicompat on uusi Go-kielen työkalu, joka auttaa kehittäjiä havaitsemaan taaksepäin suuntautuvat, epäyhteensopivat muutokset ja vietyjä julistuksia.

Apicompatin avulla voit välttää vääriä positiivisia tuloksia. Apicompat ei kuitenkaan voi havaita kaikkia taaksepäin yhteensopimattomia muutoksia. Argumenttiparametrien vaihtaminen ja muut muutokset on edelleen kirjaston tekijän otettava huomioon.

Checkstyle

Inspiroituneena Java Checkstylesta, Checkstyle for Golang tulostaa koodaustyyliehdotuksia. Sen avulla kehittäjät voivat myös tarkistaa tiedoston rivin/toiminnon ja rivin/paramin määrän, jonka käyttäjä voi määrittää.

Depth

Depth on toinen hyödyllinen Golang-työkalu, joka auttaa web-kehittäjiä hakemaan ja visualisoimaan Go-lähdekoodin riippuvuuspuita. Sitä voi käyttää itsenäisenä komentorivisovelluksena tai tietynlaisena pakettina omassa projektissa. Voit lisätä räätälöintejä yksinkertaisesti asettamalla sopivat liput puuhun ennen ratkaisua.

Go-Swagger

Tämä työkalupakki sisältää monenlaisia ominaisuuksia ja toimintoja. Go-Swagger on Swagger 2.0:n toteutus, ja se voi serialisoida ja deserialisoida swagger-määrityksiä. Se on minimalistinen mutta tehokas esitys RESTful API:sta.

Go-Swaggerin avulla voit swagger-speksejä dokumentoida, validoida jsonschemaa vastaan ja muita lisäsääntöjä. Muita ominaisuuksia ovat koodin generointi, API:n generointi swagger-spekseihin perustuen, spec-dokumentin generointi koodin perusteella, laajennetut merkkijonomuodot ja paljon muuta.

Go Meta Linter

Jos sinun täytyy ajaa Go lint -työkaluja ja normalisoida niiden tulosteet samanaikaisesti, Go Meta Linter voi tehdä juuri sen sinulle. Go Meta Linter on tarkoitettu käytettäväksi tekstieditorin tai IDE-integraation kanssa, kuten Sublime Linter plugin, Atom go-plus-paketti, Emacs Flycheck checker, Vim/Neovim ja Go for Visual Studio Code. Se tukee myös monenlaisia lintereitä ja konfiguraatiotiedostoja, kuten JSONia.

Go-callvis

Go-callvis on web-kehitystyökalu, jonka avulla voit visualisoida Go -ohjelmasi kutsugraafin Graphvizin pisteformaatilla. Tämä työkalu on erityisen hyödyllinen, kun rakennetaan suuria projekteja, joissa on monimutkaisia koodipohjia. Se on hyödyllinen myös silloin, kun haluat ymmärtää toisen kehittäjän koodirakennetta tai rakentaa uudelleen jonkun toisen projektin.

Go-callvisin avulla kehittäjät voivat keskittyä tiettyihin paketteihin ohjelmassa, ryhmitellä funktioita paketin mukaan ja metodeja tyypin mukaan sekä rajoittaa paketit mukautettuihin polkuesimerkkeihin ja jättää huomioimatta ne, jotka sisältävät niitä.

Gonative

Gonative on yksinkertainen Golang-työkalu, jonka avulla voit rakentaa Go-työkaluketjuja natiiveilla libs-paketeilla, jotka voidaan kääntää ristiin ja samalla hyödyntää stdlib-pakettien Cgo-käyttöönotettuja versioita.

Gonative lataa kunkin alustan binäärijakelut ja kopioi niiden kirjastot oikeille paikoilleen. Samalla Gonative asettaa oikean mod-ajan välttääkseen tarpeettomat uudelleenrakentamiset.

Valitettavasti Gonativea ei ole vielä testattu Windowsissa. Lisäksi Linux/arm-tukea ei ole tarjolla.

Grapes

Grapes on kevyt Golang-työkalu, joka on suunniteltu jakamaan komentoja ssh:n kautta helposti. Sen on kirjoittanut ja sitä ylläpitää aktiivisesti Yaron Sumel.

Grapes tukee pian täydellistä isäntäavaimen validointia, joten sitä kehittäjien kannattaa pitää silmällä.

Gosimple

Hienoa tässä Golang-linterissä on se, että se keskittyy Go-lähdekoodin yksinkertaistamiseen. Gosimple tähtää aina uusimpaan Go versioon, joten se vaatii Go version 1.6 tai uudemman.

Jos tulee uusi Go -versio, gosimple ehdottaa helpoimpia ja yksinkertaisimpia menetelmiä monimutkaisten konstruktioiden välttämiseksi.

Go Vendor

Go Vendor on Golang-työkalu, joka toimii vakiomuotoisen Vendor-kansion kanssa. Sen avulla kehittäjät voivat kopioida olemassa olevia riippuvuuksia $GOPATH:sta govendor add/update -toiminnolla. Voit myös suoraan vetää uusia riippuvuuksia tai päivittää olemassa olevia riippuvuuksia govendor fetch -ohjelmalla ja siirtää vanhoja järjestelmiä govendor migrate -ohjelmalla.

Wrapping It Up

Jos tulet JS/Node-taustalta, sinun on opeteltava joitain uusia ohjelmointikäsitteitä, kuten korutiineja, kanavia, tiukkaa tyypittelyä käännöksen kera, rajapintoja, struktuureja, osoittimia ja joitain muita eroja. Mutta kun pääset vauhtiin, löydät Golangin helpommaksi ja nopeammaksi käyttää.

Kun pääset vauhtiin, löydät Golangin helpommaksi ja nopeammaksi käyttää.Kiitos.

Vastaa

Sähköpostiosoitettasi ei julkaista.