Průvodce Golangem:
Programovací jazyk Go společnosti Google (Golang) se od svého uvedení těší stále větší oblibě mezi běžnými uživateli. V průzkumu z prosince 2016 89 % z 3 595 respondentů uvedlo, že v jazyce Go programují v práci nebo mimo ni.
Dále se Go řadí na nejvyšší příčky mezi programovacími jazyky z hlediska odbornosti a preferencí. Letos v červenci 2017 se Go umístilo na 10. místě v žebříčku programovacích jazyků roku společnosti Tiobe, čímž poskočilo z loňského 55. místa.
Je zřejmé, že Go přitahuje mnoho programátorů z různých oborů a odborníků na outsourcing vývoje softwaru. A dá se říci, že je to díky snadnému používání jazyka Go.
Jako kompilovaný programovací jazyk s otevřeným zdrojovým kódem umožňuje Go vývojářům snadno vytvářet jednoduchý, spolehlivý a efektivní software. Je výsledkem inovací a vývoje konzervativnějších jazyků, jako jsou C a C++.
S jazykem Go se snížilo množství typování kódu a zjednodušilo se psaní robustních rozhraní API bez obětování jeho výkonu. Jazyk Go je navržen pro škálovatelnost a souběžnost a umožňuje optimalizace. Překladač může provést veškerou kontrolu kódu před spuštěním.
Pro rychlou orientaci jsme sestavili seznam nejlepších frameworků, IDE a nástrojů pro Golang. Uložte si jej do záložek v prohlížeči, abyste se k němu mohli vrátit, kdykoli budete pracovat s jazykem Go!
Frameworky pro Golang
Webové frameworky pomáhají vývojářům vytvářet aplikace co nejsnáze a nejrychleji. Jazyk Go je stále relativně nový, proto je důležité používat frameworky s dostatečnou dokumentací.
Představujeme vám 9 frameworků, které vám pomohou při vytváření projektů v jazyce Go.
Revel
Jako vysoce produktivní framework pro jazyk Go obsahuje Revel nástroj Hot Code Reload, který vám umožní znovu sestavit projekt při každé změně souboru. Obsahuje také širokou škálu komplexních a vysoce výkonných funkcí, takže nemusíte hledat externí knihovny pro integraci do frameworku.
Beego
Beego je plnohodnotný MVC framework s vlastní knihovnou logování, ORM a webovými frameworky. Nemusíte hledat a instalovat knihovny třetích stran. Obsahuje vestavěný nástroj Bee Tool, který hlídá změny kódu a při zjištění změn spouští úlohy.
Beego vám ušetří spoustu hodin, zejména na začátku projektu, kdy řešíte framework pro logování nebo strukturu aplikace.
Martini
Martini je extrémně lehký, ale výkonný framework inspirovaný Sinatrou. Byla vyvinuta pro psaní modulárních webových aplikací a služeb v jazyce Golang.
Je vybaven neintruzivním designem, který se rychle a snadno používá, a obsahuje širokou škálu obslužných programů a middlewaru. Je schopen provádět základní směrování, zpracování výjimek a výchozí obsluhu dokumentů pro aplikace AngularJS v režimu HTML5.
Nejlepší vlastností Martini je použití reflexe, která vývojářům umožňuje dynamicky vkládat data do funkcí obsluhy a přidávat nové služby. Martini je také plně kompatibilní s rozhraním http.HandlerFunc. Nevýhodou však je, že framework Martini již není udržován.
Gin Gonic
Gin Gonic je webový framework s API podobným Martini, ale s mnohem lepším výkonem. Pokud jste již dříve používali Martini, pak budete Gin Gonic znát. V opačném případě vám naučení Ginu zabere pouhých 10 minut. Je to tak snadné!
Gin Gonic je minimalistický framework, který obsahuje jen ty nejnutnější knihovny a funkce. Díky tomu je ideální pro vývoj vysoce výkonných rozhraní REST API. Navíc je 40krát rychlejší než Martini.
Můžete přidat middleware, vnořené skupiny, validaci JSON a vykreslování, ale stále si zachovává optimální výkon. Gin Gonic používá httprouter, nejrychlejší HTTP router pro Go.
Buffalo
Vytváření nových webových aplikací s Go je s Buffalem rychlé a jednoduché. Když začínáte s novým projektem, Buffalo už má pro vás vše připraveno – od vývoje front-endu až po back-end.
Je vybaveno funkcí Hot Reloading, což znamená, že příkaz dev bude automaticky hlídat vaše soubory .go a .html. Poté za vás binární soubor znovu sestaví a spustí. Stačí spustit příkaz dev a uvidíte, že se změny projeví přímo před vašima očima!“
Buffalo je víc než jen framework – je to ucelený ekosystém pro vývoj webových aplikací, který vám umožní rovnou se pustit do tvorby aplikace.
Goji
Goji je lehký a rychlý webový framework, jehož hlavní prioritou je skladnost a jednoduchost. Podobně jako net/http.ServeMux je Goji minimalistický multiplexer požadavků HTTP. Obsahuje podporu Einhornu, díky které můžete mít v Goji podporu websocketů.
Další funkce zahrnují vzory URL, rekonfigurovatelný middleware stack, graceful shutdown a další. Goji lze používat ve výrobě a v několika organizacích obsloužil miliardy požadavků.
Tiger Tonic
Inspirovaný Dropwizardem, Tiger Tonic je framework Go pro vývoj webových služeb JSON a vytváření vysoce výkonných rozhraní REST API. Aby zůstal věrný principům Golangu, snaží se Tiger Tonic zachovat ortogonální funkce.
Nevýhodou Tiger Tonic je jeho nedostatečnost, pokud jde o budování velkých, back-endových aplikací.
Gocraft
Další výkonný, ale minimalistický framework, Gocraft, nabízí rychlý a škálovatelný výkon směrování. Přidává směrování do balíčku net/http ze standardní knihovny.
Gocraft je mux a middleware balíček pro Go, který obsahuje funkce castingu a reflexe, takže můžete psát kód staticky. Můžete také přidat volitelnou funkci pomocí vestavěného middlewaru nebo si napsat vlastní.
Protože výkon je pro vývojáře vždy jedním z hlavních problémů, je Gocraft skvělou volbou pro vývojáře. Psaní backendových webových aplikací pomocí frameworku Gocraft je velmi snadné.
Mango
Ačkoli Mango není svým tvůrcem Paulem Bellamym aktivně udržováno, mnoho uživatelů Go jej stále používá. Skvělou vlastností Manga je jeho modularita. Můžete si vybrat z řady knihoven, které do svého projektu zahrnete.
Mango umožňuje co nejrychleji a nejsnadněji vytvářet opakovaně použitelné moduly funkcí HTTP. Zkompiluje seznam middlewaru a aplikací do jediného objektu http serveru, aby váš kód zůstal samostatný.
Integrované vývojové prostředí (IDE) pro jazyk Golang
IDE pro jazyk Golang získávají spolu s jazykem Go na popularitě. Přestože mnoho vývojářů stále dává přednost používání textových editorů, mnozí dávají přednost také IDE.
Pracujete-li na rozsáhlém projektu s rozsáhlou kódovou základnou, může vám IDE pomoci uspořádat kód a snadno se v něm orientovat. Kromě toho vám IDE pomohou kód testovat a odpovídajícím způsobem upravovat.
Tady jsou nejlepší IDE, která skvěle fungují s Golangem.
Gogland
Společnost JetBrains, která se zabývá vývojem softwaru, vydala další spolehlivé IDE, tentokrát však pro Golang. Gogland je komerční IDE, které poskytuje robustní ergonomické prostředí pro vývojáře Go. Nabízí také pomoc při kódování, debugger a integrovaný terminál.
Protože Gogland vytvořila zavedená společnost, má rozsáhlý ekosystém zásuvných modulů IntelliJ, kde můžete získat další nástroje, pokud budete potřebovat další.
Visual Studio Code
Visual Studio Code, vytvořené společností Microsoft, je plnohodnotné open-source IDE a editor kódu, který podporuje širokou škálu programovacích jazyků. Nabízí inteligentní dokončování s funkcí IntelliSense, ladění pomocí bodů přerušení, zásobníků volání a interaktivní konzole, integrovanou integraci se systémem Git a hierarchický průzkumník složek a souborů.
Jako další populární IDE má Visual Studio Code podpůrnou komunitu vývojářů Go, kteří pravidelně přispívají. S Visual Studio Code můžete rozšiřovat funkce pomocí řady dostupných zásuvných modulů.
LiteIDE
LiteIDE patří mezi první open-source IDE zaměřené na Golang, které vzniklo před více než 5 lety. Jako aplikace C++ Qt s jedinečným vzhledem LiteIDE nabízí správu kódu, konfigurovatelné příkazy pro sestavení, debugger gdb a Delve, automatické dokončování a tematizaci pomocí WordApi, systém založený na typech MIME a další. Poskytuje také podporu JSON a Golang.
Wide
Wide je webové IDE pro programátory Golang. Je navrženo pro společný vývoj a nejlépe funguje pro týmy a agentury zabývající se vývojem webových stránek. Mezi funkce Wide patří zvýrazňování kódu, ladění, integrace se systémem Git a další.
Protože Wide vytvořil a spravuje čínský vývojář, většina jeho dokumentace a podpory je v čínštině.
Atom se zásuvným modulem go-plus
Pokud již používáte Atom, můžete své zkušenosti s úpravou kódu v jazyce Golang vylepšit pomocí open-source balíčku go-plus. S balíčkem go-plus získáte okamžitou zpětnou vazbu v reálném čase o chybách syntaxe a sestavení.
Balíček go-plus nabízí téměř veškerou podporu jazyka Golang v Atomu. Lze jej také použít pro nástroje, sestavovací toky, lintery, nástroje prověřování a pokrytí.
Go-plus také obsahuje různé úryvky kódu a funkce, jako je automatické doplňování pomocí gocode, formátování kódu pomocí gofmt, goreturns nebo goimports a další.
Eclipse s GoClipse
Protože je Eclipse široce populární IDE, bylo pro něj vytvořeno mnoho zásuvných modulů. GoClipse je zásuvný modul Eclipse pro Golang, který nabízí editaci zdrojového kódu Go s konfigurovatelným zvýrazňováním syntaxe a automatickým odsazováním a doplňováním závorek.
GoClipse slouží také jako průvodce a sestavovatel projektu, který okamžitě hlásí chyby syntaxe a sestavení. Mezi další funkce GoClipse patří funkce pro ladění a asistent kódu.
Sublime Text s GoSublime
Sublime Text je další propracovaný textový editor s velkou komunitou přispěvatelů a vývojářů. Proto byla pro toto IDE vytvořena široká škála zásuvných modulů.
GoSublime je zásuvný modul Golang pro Sublime Text 3, který nabízí doplňování kódu z Gocode, kontrolu linek/syntaxe při zapojování kódu, automatické přidávání a odebírání importů balíčků a další funkce.
Vim se zásuvným modulem vim-go
Vim je bezplatné IDE s otevřeným zdrojovým kódem, které lze přizpůsobit a nakonfigurovat pomocí různých zásuvných modulů. Pokud programujete v jazyce Golang, můžete používat Vim se zásuvným modulem vim-go, který vytvořil Fatih Arslan. Vim-go automaticky nainstaluje všechny potřebné binární soubory pro zajištění hladké integrace Vimu pro Golang.
Vim-go je výkonná sada zásuvných modulů pro psaní a vývoj v jazyce Go. Mezi jeho funkce patří pokročilá analýza zdrojového kódu, přidávání a odebírání importních cest, podpora více třetích řádků, definice goto, rychlé spouštění souborů a mnoho dalšího.
Vim-go je vysoce přizpůsobitelný, jednotlivé funkce lze povolit nebo zakázat podle potřeby.
Komodo
Komodo je plnohodnotné IDE pro jazyk Go, které podporuje i další programovací jazyky, například Node.js, Python, Ruby, Perl a další. S tímto IDE pro jazyk Go můžete snadno psát čistý kód. Mezi jeho funkce patří pokročilý editor kódu, inteligentní doplňování kódu, kontrola syntaxe, kontrola verzí a testování jednotek a funkce Go Code Intelligence, která umožňuje procházení kódu a napovídání kódu.
Skvělé na Komodo je, že skvěle funguje při týmové spolupráci, protože dokument může upravovat více vývojářů současně. Komodo lze nainstalovat na počítače Mac, Windows nebo Linux s jedinou licencí.
IntelliJ IDEA s pluginem podpory jazyka Go (golang.org)
IntelliJ IDEA (stejná společnost jako JetBrains) je IDE, které lze používat s jazykem Golang prostřednictvím pluginu podpory jazyka Go. Pokud chcete používat IntelliJ IDEA s jazykem Golang, musíte si nainstalovat tento zásuvný modul, i když s omezenými funkcemi na rozdíl od Goglandu.
Nástroje pro Golang
Nástroje pro Golang lze použít pro celou řadu projektů a webových aplikací. Vývojáři mohou díky těmto užitečným nástrojům psát kód a vytvářet aplikace co nejrychleji a nejsnadněji.
Přinášíme vám seznam nejlepších nástrojů pro jazyk Golang.
Apicompat
Apicompat je nový nástroj pro jazyk Go, který pomáhá vývojářům odhalit zpětné, nekompatibilní změny a exportované deklarace.
S Apicompatem se můžete vyhnout falešně pozitivním výsledkům. Ne každou zpětně nekompatibilní změnu však Apicompat dokáže odhalit. Prohození parametrů argumentů a další změny musí autor knihovny ještě zvážit.
Checkstyle
Inspirován Java Checkstyle, Checkstyle pro Golang vypisuje návrhy stylu kódování. Umožňuje také vývojářům kontrolovat počet řádků/funkcí a řádků/parametrů souboru, které pak může uživatel nastavit.
Depth
Depth je další užitečný nástroj pro Golang, který pomáhá webovým vývojářům vyhledávat a vizualizovat stromy závislostí zdrojového kódu Go. Lze jej používat jako samostatnou aplikaci příkazového řádku nebo jako konkrétní balíček v rámci vlastního projektu. Přizpůsobení můžete přidat jednoduchým nastavením příslušných příznaků na stromu před rozdělením.
Go-Swagger
Tento soubor nástrojů obsahuje širokou škálu vlastností a funkcí. Go-Swagger je implementací Swagger 2.0 a dokáže serializovat a deserializovat specifikace swagger. Je to minimalistická, ale výkonná reprezentace vašeho RESTful API.
S Go-Swaggerem můžete swagger specifikaci dokumentu, validovat proti jsonschema a dalším dodatečným pravidlům. Mezi další funkce patří generování kódu, generování API na základě specifikace swagger, generování dokumentu specifikace na základě kódu, rozšířené formáty řetězců a další.
Go Meta Linter
Potřebujete-li současně spouštět nástroje Go lint a normalizovat jejich výstup, přesně to pro vás může udělat Go Meta Linter. Go Meta Linter je určen k použití s textovým editorem nebo integrací s IDE, jako je zásuvný modul Sublime Linter, balíček Atom go-plus, kontrolní nástroj Emacs Flycheck, Vim/Neovim a Go for Visual Studio Code. Podporuje také širokou škálu linterů a konfiguračních souborů, například JSON.
Go-callvis
Go-callvis je webový vývojový nástroj, který umožňuje vizualizovat graf volání programu Go pomocí bodového formátu Graphviz. Tento nástroj je užitečný zejména při vytváření rozsáhlých projektů se složitými kódovými základnami. Je také užitečný, když chcete pochopit strukturu kódu jiného vývojáře nebo přestavět cizí projekt.
Pomocí go-callvis mohou vývojáři zaměřit konkrétní balíček v rámci programu; seskupit funkce podle balíčku a metody podle typu; a omezit balíčky na vlastní prefixy cest a ignorovat ty, které je obsahují.
Gonative
Gonative je jednoduchý nástroj Golang, který umožňuje vytvářet řetězce nástrojů Go s nativními knihovnami, které lze křížově kompilovat a zároveň využívat verze balíčků stdlib s podporou Cgo.
Gonative stáhne binární distribuce pro jednotlivé platformy a zkopíruje jejich knihovny na příslušná místa. Zároveň Gonative nastaví správný čas modifikace, aby nedocházelo ke zbytečným rebuildům.
Naneštěstí Gonative zůstává na Windows netestován. Navíc není k dispozici žádná podpora pro Linux/arm.
Grapes
Grapes je lehký nástroj Golang určený pro snadnou distribuci příkazů přes ssh. Jeho autorem a aktivním správcem je Yaron Sumel.
Grapes bude brzy podporovat plnou validaci hostitelských klíčů, takže na to by si vývojáři měli dát pozor.
Gosimple
Skvělé na tomto Golang linteru je, že se zaměřuje na zjednodušení zdrojového kódu Go. Gosimple se vždy zaměřuje na nejnovější verzi Go, takže vyžaduje Go verze 1.6 nebo novější.
Pokud vyjde nová verze Go, gosimple navrhne nejjednodušší a nejsnadnější metody, aby se vyhnul složitým konstrukcím.
Go Vendor
Go Vendor je nástroj Golang, který pracuje se standardní složkou Vendor. Umožňuje vývojářům kopírovat existující závislosti z $GOPATH pomocí funkce govendor add/update. Můžete také přímo tahat nové závislosti nebo aktualizovat stávající závislosti pomocí govendor fetch a přesouvat starší systémy pomocí govendor migrate.
Zabalení
Pokud přicházíte z prostředí JS/Node, musíte se naučit některé nové koncepty programování, jako jsou coroutines, kanály, striktní typování s kompilací, rozhraní, struktury, ukazatele a některé další rozdíly. Ale jakmile se do toho dostanete, Golang se vám bude používat snadněji a rychleji
.