Golang útmutató: A List of Top Golang Frameworks, IDEs & Tools
A Google Go programozási nyelve (Golang) bevezetése óta egyre nagyobb népszerűségnek örvend a mainstream felhasználók körében. Egy 2016. decemberi felmérésben a 3595 válaszadó 89%-a állította, hogy Go nyelven programoz a munkahelyén vagy azon kívül.
A Go ráadásul a programozási nyelvek között a szakértelem és a preferencia tekintetében a legmagasabb helyen áll. Idén júliusban, 2017-ben a Go a 10. helyen áll a Tiobe Év programozási nyelve rangsorában, megugorva a tavalyi 55. helyről.
A Go nyilvánvalóan sok programozót vonz a különböző szakterületekről és a szoftverfejlesztés kiszervezésével foglalkozó szakemberek közül. És nyugodtan mondhatjuk, hogy ez a Go könnyű használatának köszönhető.
A Go fordított, nyílt forráskódú programozási nyelvként megkönnyíti a fejlesztők számára az egyszerű, megbízható és hatékony szoftverek készítését. Az olyan konzervatívabb nyelvek, mint a C és a C++ innovációjának és evolúciójának terméke.
A Go segítségével csökkent a kódtipizálás mennyisége, és egyszerűbbé vált a robusztus API-k írása a teljesítmény feláldozása nélkül. A skálázhatóságra és párhuzamosságra tervezett Go lehetővé teszi az optimalizálásokat. A fordító a futásidő előtt elvégezheti az összes kódellenőrzési munkát.
Összeállítottunk egy listát a legjobb keretrendszerekről, IDE-kről és eszközökről a Golanghoz a gyors tájékozódás érdekében. Tegye könyvjelzőbe a böngészőjében, hogy bármikor visszatérhessen, amikor Go-val dolgozik!
Keretrendszerek a Golanghoz
A webes keretrendszerek segítenek a fejlesztőknek a lehető legkönnyebben és leggyorsabban elkészíteni az alkalmazásokat. A Go még viszonylag új, ezért fontos, hogy megfelelő dokumentációval rendelkező keretrendszereket használjunk.
Itt van 9 olyan keretrendszer, amely segíthet a Go nyelvet használó projektek készítésében.
Revel
A Revel, mint a Go nagy termelékenységű keretrendszere, tartalmaz egy Hot Code Reload eszközt, amellyel minden fájlváltoztatáskor újraépítheti a projektet. Emellett számos átfogó és nagy teljesítményű funkciót tartalmaz, így nem kell külső könyvtárakat keresni a keretrendszerbe való integráláshoz.
Beego
A Beego egy teljes értékű MVC keretrendszer saját logkönyvtárral, ORM-mel és webes keretrendszerekkel. Nem kell harmadik féltől származó könyvtárakat keresnie és telepítenie. Rendelkezik egy Bee Tool nevű beépített eszközzel, amely figyeli a kódváltozásokat, és a változások észlelésekor feladatokat futtat.
A Beego rengeteg órát takarít meg, különösen a projekt elején, amikor a naplózási keretrendszert vagy az alkalmazás szerkezetét kell kitalálni.
Martini
A Sinatra által inspirált Martini egy rendkívül könnyű, de nagy teljesítményű keretrendszer. Moduláris webes alkalmazások és szolgáltatások írására fejlesztették ki Golang nyelven.
Nem tolakodó dizájnnal rendelkezik, amely gyorsan és egyszerűen használható, és kezelők és middleware-ek széles skáláját tartalmazza. Képes alapvető útválasztást, kivételkezelést és alapértelmezett dokumentumkiszolgálást végezni az AngularJS alkalmazások számára HTML5 módban.
A Martini legjobb tulajdonsága a reflexió használata, amely lehetővé teszi a fejlesztők számára, hogy dinamikusan illesszenek be adatokat a kezelőfüggvényekbe és adjanak hozzá új szolgáltatásokat. A Martini teljes mértékben kompatibilis a http.HandlerFunc interfésszel is. Hátránya azonban, hogy a Martini keretrendszert már nem karbantartják.
Gin Gonic
A Gonic egy Martini-szerű API-val rendelkező, de sokkal jobb teljesítményű webes keretrendszer. Ha használtál már Martini-t, akkor a Gin Gonic-ot is ismered. Egyébként a Gin megtanulása mindössze 10 percet vesz igénybe. Ilyen egyszerű!
A Gin Gonic egy minimalista keretrendszer, amely csak a legszükségesebb könyvtárakat és funkciókat tartalmazza. Ez teszi tökéletessé a nagy teljesítményű REST API-k fejlesztéséhez. Ráadásul 40-szer gyorsabb, mint a Martini.
Ezzel kiegészítheti a middleware-t, az egymásba ágyazott csoportokat, a JSON-érvényesítést és a renderelést, mégis megtartja optimális teljesítményét. A Gin Gonic a httprouter-t használja, a Go leggyorsabb HTTP routerét.
Buffalo
A Buffalo segítségével gyorsan és egyszerűen készíthet új webes alkalmazásokat Go segítségével. Amikor új projektet indít, a Buffalo már mindent készenlétben tart – a front-endtől a back-end fejlesztésig.
Ez Hot Reloading funkcióval rendelkezik, ami azt jelenti, hogy a dev parancs automatikusan figyeli a .go és .html fájlokat. Ezután újraépíti és újraindítja a binárisodat helyetted. Csak futtasd a dev parancsot, és máris láthatod, ahogy a változások a szemed előtt élesednek!
A Buffalo több mint egy keretrendszer – ez egy holisztikus webfejlesztési ökoszisztéma, amely lehetővé teszi, hogy azonnal nekiláss az alkalmazásod építésének.
Goji
A Goji egy könnyű és gyors webes keretrendszer, amelynek a komponálhatóság és az egyszerűség a fő prioritása. A net/http.ServeMux-hoz hasonlóan a Goji egy minimalista HTTP kérésmultiplexer. Tartalmaz Einhorn támogatást, ami lehetővé teszi, hogy a Goji websocket támogatással rendelkezzen.
A további funkciók közé tartoznak az URL minták, az átkonfigurálható middleware stack, a graceful shutdown és még sok más. A Goji termelésben is használható, és már több milliárd kérést szolgált ki több szervezetnél.
Tiger Tonic
A Dropwizard által inspirált Tiger Tonic egy Go keretrendszer JSON webszolgáltatások fejlesztésére és nagy teljesítményű REST API-k építésére. Hogy hű maradjon a Golang elveihez, a Tiger Tonic arra törekszik, hogy a funkciók ortogonálisak maradjanak.
A Tiger Tonic hátránya, hogy nem megfelelő, ha nagy, back-end alkalmazások építéséről van szó.
Gocraft
A másik nagy teljesítményű, de minimalista keretrendszer, a Gocraft gyors és skálázható routing teljesítményt kínál. A net/http csomagot a standard könyvtárból származó útválasztással egészíti ki.
A Gocraft egy Go mux és middleware csomag, amely casting és reflection képességekkel rendelkezik, így a kódot statikusan tipizálhatjuk. A beépített middleware segítségével opcionális funkcionalitást is hozzáadhatsz, vagy írhatsz sajátot.
Mivel a teljesítmény mindig az egyik legfontosabb szempont a fejlesztők számára, a Gocraft remek választás a fejlesztők számára. A Gocraft keretrendszerrel nagyon könnyű backend webes alkalmazásokat írni.
Mango
Noha a Mangót már nem karbantartja aktívan a készítője, Paul Bellamy, még mindig sok Go felhasználó használja. A Mango nagyszerű tulajdonsága a modularitása. Számos könyvtár közül választhatsz, amelyeket beépíthetsz a projektedbe.
A Mangóval a lehető leggyorsabban és legegyszerűbben építhetsz újrafelhasználható modulokat a HTTP funkcionalitásból. A köztes szoftverek és alkalmazások listáját egyetlen http-kiszolgáló objektumba állítja össze, hogy a kódja önálló maradjon.
Integrált fejlesztőkörnyezet (IDE) a Golanghoz
A Golanghoz készült IDE-k egyre népszerűbbek, a Go nyelvvel együtt. Bár sok fejlesztő még mindig inkább a szövegszerkesztőket használja, sokan az IDE-ket is előnyben részesítik.
Ha egy nagyszabású, kiterjedt kódbázissal rendelkező projekten dolgozik, egy IDE segíthet a kód rendszerezésében és a könnyebb navigálásban. Továbbá az IDE-k segíthetnek a kód tesztelésében és a megfelelő szerkesztésben.
Itt vannak a legjobb IDE-k, amelyek nagyszerűen működnek a Golanggal.
Gogland
A JetBrains szoftverfejlesztő cég egy újabb megbízható IDE-t adott ki, de ezúttal a Golanghoz. A Gogland egy kereskedelmi IDE, amely robusztus, ergonomikus környezetet biztosít a Go fejlesztők számára. Kódolási segítséggel, hibakeresővel és integrált terminállal is rendelkezik.
Mivel a Goglandot egy elismert cég hozta létre, kiterjedt IntelliJ plugin ökoszisztémával rendelkezik, ahol további eszközöket szerezhet be, ha továbbiakra van szüksége.
Visual Studio Code
A Microsoft által létrehozott Visual Studio Code egy teljes körű, nyílt forráskódú IDE és kódszerkesztő, amely számos programozási nyelvet támogat. Rendelkezik intelligens kitöltéssel az IntelliSense segítségével; hibakereséssel töréspontok, híváshalmazok és interaktív konzol segítségével; beépített Git-integrációval; hierarchikus mappa- és fájlkeresővel.
Mint egy másik népszerű IDE, a Visual Studio Code-nak is van egy támogató Go fejlesztői közössége, akik rendszeresen hozzájárulnak. A Visual Studio Code segítségével a funkciókat az elérhető bővítmények sokaságával bővítheti.
LiteIDE
A LiteIDE az első Golang-központú, nyílt forráskódú IDE-k közé tartozik, amelyet több mint 5 évvel ezelőtt hoztak létre. Egyedi megjelenésű C++ Qt alkalmazásként a LiteIDE kódkezelést, konfigurálható build parancsokat, gdb és Delve hibakeresőt, automatikus kitöltést és tematizálást kínál a WordApi segítségével, MIME típus alapú rendszert és még sok mást. JSON és Golang támogatást is nyújt.
Wide
A Wide egy webalapú IDE a Golang programozók számára. Kollaboratív fejlesztésre tervezték, és csapatok és webfejlesztő ügynökségek számára működik a legjobban. A Wide funkciói közé tartozik a kódkiemelés, a hibakeresés, a Git integráció és még sok más.
Mivel a Wide-t egy kínai fejlesztő készítette és karbantartja, a dokumentáció és a támogatás nagy része kínai nyelvű.
Atom with go-plus plugin
Ha már használja az Atomot, a Golangban a kódszerkesztés élménye javítható a go-plus nevű nyílt forráskódú csomaggal. A go-plus segítségével azonnali, valós idejű visszajelzést kaphatsz a szintaxisodról és a build hibákról.
A go-plus csomag szinte az összes Golang támogatást kínálja az Atomban. Használható eszközökhöz, build flow-khoz, linterekhez, vet- és coverage eszközökhöz is.
A go-plus különböző kódrészleteket és funkciókat is tartalmaz, például automatikus kitöltést a gocode-dal, kódformázást a gofmt, goreturns vagy goimports segítségével, és így tovább.
Eclipse a GoClipse-vel
Mivel az Eclipse egy széles körben népszerű IDE, számos plugin készült hozzá. A GoClipse egy Eclipse plugin a Golanghoz, amely Go forráskód-szerkesztést kínál konfigurálható szintaxis-kiemeléssel, automatikus behúzással és zárójel-kiegészítéssel.
A GoClipse projektvarázslóként és -építőként is szolgál, amely azonnal jelzi a szintaxis- és építési hibákat. A GoClipse további jellemzői közé tartozik a hibakeresési funkció és a kódsegéd.
Sublime Text with GoSublime
A GoSublime Text egy másik kifinomult szövegszerkesztő, amelynek nagy támogatói és fejlesztői közössége van. Mint ilyen, sokféle bővítményt hoztak létre ehhez az IDE-hez.
A GoSublime egy Golang plugin a Sublime Text 3-hoz, amely kódkiegészítést kínál a Gocode-ból, lint/szintaxis ellenőrzést a kód vezetése közben, csomagimportok automatikus hozzáadását és eltávolítását és még sok mást.
Vim with vim-go plugin
A Vim egy ingyenes, nyílt forráskódú IDE, amelyet különböző pluginokkal lehet testre szabni és konfigurálni. Ha Golang programozó vagy, használhatod a Vim-et a Fatih Arslan által készített vim-go pluginnal. A Vim-go automatikusan telepíti az összes szükséges bináris programot, hogy a Golang számára zökkenőmentes Vim integrációt biztosítson.
A Vim-go egy hatékony plugin csomag a Go írásához és fejlesztéséhez. Funkciói közé tartozik a fejlett forráskód-elemzés, importálási útvonalak hozzáadása és eltávolítása, több 3rd liner támogatása, goto definíció, gyors fájlvégrehajtás és még sok más.
A Vim-go nagymértékben testreszabható, az egyes funkciókat igény szerint lehet engedélyezni vagy letiltani.
Komodo
A Komodo egy teljes funkcionalitású Go nyelvi IDE, amely más programozási nyelveket is támogat, például Node.js, Python, Ruby, Perl stb. Ezzel a Go IDE-vel könnyedén írhat tiszta kódot. Funkciói közé tartozik egy fejlett kódszerkesztő, intelligens kódkiegészítés, szintaxisellenőrzés, verzióvezérlés és egységtesztelés, valamint egy Go Code Intelligence, amely lehetővé teszi a kódböngészést és a kódsegítséget.
A Komodo nagyszerű tulajdonsága, hogy nagyszerűen működik a csapatmunkában, mivel egyszerre több fejlesztő is szerkeszthet egy dokumentumot. A Komodo telepíthető Macre, Windowsra vagy Linuxra egyetlen licenccel.
IntelliJ IDEA with Go Language (golang.org) Support Plugin
Az IntelliJ IDEA (ugyanaz a cég, mint a JetBrains) egy IDE, amely a Go nyelvtámogató plugin segítségével használható a Golanggal. Ha az IntelliJ IDEA-t a Golanggal szeretné használni, akkor telepítenie kell ezt a plugint, bár a Goglanddal szemben korlátozott funkciókkal.
Tools for Golang
A Golang eszközei a legkülönbözőbb projektekhez és webes alkalmazásokhoz használhatók. A fejlesztők ezekkel a hasznos eszközökkel a lehető leggyorsabban és legegyszerűbben írhatnak kódot és építhetnek alkalmazásokat.
Itt egy lista a legjobb Golang eszközökről.
Apicompat
Apicompat egy új Go nyelvi eszköz, amely segít a fejlesztőknek a visszafelé történő, inkompatibilis változások és exportált deklarációk felismerésében.
Az Apicompat segítségével elkerülhetők a hamis pozitív eredmények. Az Apicompat azonban nem minden visszafelé inkompatibilis változtatást képes felismerni. Az argumentumparaméterek cseréjét és más változtatásokat továbbra is a könyvtár szerzőjének kell figyelembe vennie.
Checkstyle
A Java Checkstyle által inspirált Checkstyle for Golang kiírja a kódolási stílusjavaslatokat. Emellett lehetővé teszi a fejlesztők számára a fájl sor/funkció és sor/param számának ellenőrzését, amelyet a felhasználó beállíthat.
Depth
A Depth egy másik hasznos Golang eszköz, amely segít a webfejlesztőknek a Go forráskód függőségi fáinak lekérdezésében és megjelenítésében. Használható önálló parancssoros alkalmazásként vagy egy adott csomagként a saját projekten belül. Testreszabásokat adhatsz hozzá, egyszerűen a megfelelő zászlók beállításával a fán a feloldás előtt.
Go-Swagger
Ez az eszközkészlet sokféle jellemzőt és funkciót tartalmaz. A Go-Swagger a Swagger 2.0 implementációja, és képes a swagger specifikációk szerializálására és deserializálására. Ez egy minimalista, mégis hatékony reprezentációja a RESTful API-nak.
A Go-Swagger segítségével swagger spec dokumentumot, jsonschema ellen validálhat, és egyéb extra szabályokat is megadhat. További funkciók közé tartozik a kódgenerálás, az API generálása a swagger specek alapján, a spec dokumentum generálása a kód alapján, a kiterjesztett karakterláncformátumok és még sok más.
Go Meta Linter
Ha Go lint eszközöket kell futtatnia és kimenetüket egyidejűleg normalizálni, a Go Meta Linter pontosan ezt tudja elvégezni az Ön számára. A Go Meta Linter egy szövegszerkesztővel vagy egy IDE integrációval használható, mint például a Sublime Linter plugin, az Atom go-plus csomag, az Emacs Flycheck checker, a Vim/Neovim és a Go for Visual Studio Code. Támogatja továbbá a linterek és konfigurációs fájlok széles skáláját, például a JSON-t.
Go-callvis
A Go-callvis egy webes fejlesztőeszköz, amely lehetővé teszi, hogy a Go program hívásgráfját a Graphviz pontformátumával vizualizáljuk. Ez az eszköz különösen hasznos, ha nagyméretű, összetett kódbázisú projekteket építünk. Akkor is hasznos, ha egy másik fejlesztő kódszerkezetét szeretné megérteni, vagy ha valaki más projektjét szeretné újraépíteni.
A go-callvis segítségével a fejlesztők konkrét csomagokra fókuszálhatnak egy programon belül; a függvényeket csomag szerint, a metódusokat pedig típus szerint csoportosíthatják; a csomagokat pedig egyéni útvonal-előtagokra korlátozhatják, az ezeket tartalmazó csomagokat pedig figyelmen kívül hagyhatják.
Gonative
A Gonative egy egyszerű Golang eszköz, amely lehetővé teszi a Go eszközláncok készítését natív libs-ekkel, amelyek keresztkompilálhatók, miközben az stdlib csomagok Cgo-képes verzióit is felhasználják.
A Gonative letölti az egyes platformokhoz tartozó bináris disztribúciókat, és a könyvtáraikat a megfelelő helyekre másolja. Ugyanakkor a Gonative beállítja a megfelelő mod időt, hogy elkerülje a felesleges újraépítéseket.
A Gonative sajnos Windowson még nem tesztelt. Ezen kívül nincs Linux/arm támogatás.
Grapes
A Grapes egy könnyű Golang eszköz, amelyet arra terveztek, hogy a parancsokat ssh-n keresztül könnyen terjessze. Yaron Sumel írta és aktívan karbantartja.
A Grapes hamarosan támogatni fogja a teljes host kulcsérvényesítést, így erre a fejlesztőknek érdemes odafigyelniük.
Gosimple
Az a nagyszerű ebben a Golang linterben, hogy a Go forráskód egyszerűsítésére koncentrál. A Gosimple mindig a legújabb Go verziót célozza meg, tehát Go 1.6-os vagy újabb verziót igényel.
Ha van egy új Go kiadás, a gosimple a legegyszerűbb és legegyszerűbb módszereket fogja javasolni a bonyolult konstrukciók elkerülése érdekében.
Go Vendor
A gosimple a Golang eszköz, amely a szabványos Vendor mappával dolgozik. Lehetővé teszi a fejlesztők számára, hogy a meglévő függőségeket a $GOPATH-ból govendor add/update segítségével átmásolják. Emellett közvetlenül húzhat új függőségeket vagy frissítheti a meglévő függőségeket a govendor fetch segítségével, és áthelyezheti a régi rendszereket a govendor migrate segítségével.
Wrapping It Up
Ha JS/Node háttérből érkezik, meg kell tanulnia néhány új programozási fogalmat, mint például a coroutines, a channels, a szigorú tipizálás a fordítással, az interfészek, a structs, a pointerek és néhány más különbség. De ha egyszer belerázódsz, a Golangot könnyebbnek és gyorsabbnak fogod találni.