Jak začít s jazykem Go

(publikováno 23.02.2021) 2 Go, Tipy & triky

Vše co potřebuje vědět ten, kdo chce začít s Golangem. Jazykem, ve kterém je napsán Docker nebo Kubernetes. Instalace, nastavení editoru, zdroje a materiály pro začátečníky a další tipy.

Jak začít s jazykem Go

Pro lepší vyhledávání frází se používá Golang, oficiální název zní ale pouze Go. Jazyk vyvíjí Google a podílel se na něm také Ken Thompson. Jedná se o multiplatformní, staticky typovaný, kompilovaný open-source jazyk. Lze kompilovat pro Windows, Linux, MacOS, ale také Android, iOS a mnoho dalších. Výslednou zkompilovanou binárku lze spustit bez dodatečných knihoven a závislostí. Výhody Go a seznam firem, které jej používají krásně shrnuje článek na brainhub.eu.

Nespornou výhodou je také fakt, že Go je zde přes 10 let a přesto je pořád ve verzi 1.x. Všechen vývoj je tedy zpětně kompatibilní a kód napsán v roce 2010 bude pořád fungovat. Další výhodou Go je standardní knihovna, která je rozsáhlá a instalace dalších knihoven jednoduchá. Go je objektově orientovaný, ale trochu jiným způsobem.

Nepodporuje dědičnost ani generika, zato implementace interfaců je implicitní. Začátečníci v Go si musí uvědomit, že je nutné změnit návyky oproti čistě objektově orientovaným jazykům (C#, Java, ...). O jazyku Go jsem již psal. Použil jsem je na stáži ve Finsku a v Advent of Code 2020.

Go se stálě vyvíjí a od verze 1.18 generika již podporuje: https://go.dev/doc/tutorial/generics

Instalace

Instalovat Go lze na Windows, Linux i Mac pomocí instalátoru nebo stažení a rozbalení archívu. Pro nainstalování nejnovější verze stačí následovat jednoduchý 3 krokový manuál na stránce golang.org/doc/install. Případně lze také vše instalovat pomocí asdf o kterém jsem již psal.

V případě Go na Linuxu se instaluje nejčastěji do složky /usr/local/go. Ta se pak přidá do PATH. Jenže většina balíčků ať už z VS Code nebo při instalaci z příkažové řádky se instalují do Home složky. Proto je potřeba do PATH přidat obě lokace. Lze to jednoduše vyřešit takto

# Toto jsem přidal do souboru ~/.profile případně ~/.bash_profile pokud existuje
PATH=$PATH:/usr/local/go/bin
PATH=${PATH}:$HOME/go/bin

Pozor na starší návody! Ve verzi 1.11 - 1.12 byla přidána podpora modulů, díky kterým projekty nemusí být umístěny v $GOPATH, lze definovat přesnou verzi knihoven apod. Pokud naleznete návod staršího data než srpen 2018, může radit něco, co lze v nových verzích dělat mnohem lépe, právě díky modulům. I když i starší návod bude fungovat, Go je zpětně kompatibilní.

Editor a IDE

Dříve rozšíření pro Go do VS Code vyvíjela komunita okolo Go a Microsoftu. Později ale repozitář přesunuli pod Google a od té doby je VS Code oficiální IDE pro Go, a vše udržuje sám Go Team v Google. Lze si o tom přečíst i na jejich blogu. Pro získání plnohodnotného IDE stačí nainstalovat Go rozšíření a postupovat podle Quick startu, krátkého 3 krokového návodu.

Ještě na začátku roku 2021 gopls nebyl implicitně zapnutý. Proto je potřeba do nastavení vložit řádek níže. V nejnovějších verzích rozšíření by to už nemělo být potřeba. Pro debuggování a krokování programu je potřeba ještě nainstalovat Delve. Ten je možné nainstalovat přímo z command palety ve VS Code nebo pomocí go get github.com/go-delve/delve/cmd/dlv. Výborný článek popisující celý proces od instalace až po krokování je na TheGreatCodeAdventure.com.

// Vložit do nastavení VS Code pro starší verze rozšíření
"go.useLanguageServer": true,

V dotazníku z roku 2019 jednoznačně vede VS Code jako nejpoužívanější editor pro Go vývoj. Velmi populární je také GoLand, který je ale placený.

Tutoriály a materiály

Kvalitní materiál pro začátečníky je přímo na stránkách tour.golang.org. Postupně jsou vysvětlovány základy Go s názornými příklady, které lze spouštět přímo v interaktivním okně. Není tedy nutné si Go instalovat, aby si programátor mohl vše vyzkoušet. Dobrý zdroj je také na stránkách GoIn5Minutes.com, kde jsou krátká videa popisující a vysvětlující nějaké téma.

Dalším zdrojem rad může být také Gophers Slack, kde je komunita více než 50 000 Gopherů z celého světa. A samozřejmě také můj blog a Advent of Code 2020.


Zkušenosti s Go, tipy na materiály a další můžete sdílet v komentářích.

K tomuto článku již není možné přidávat další komentáře

Komentáře

Zdravím,

můžete mi pomoct s nastavením VS Code a environments, pls ?

Mám Debian, VS code, ale v terminálu mi nefunguje ani DLV, ani ve VS Code spustit jednoduchý kód.
Něco mám asi blbbě nastavené.
Golang se akorát začínám učit....
Předem díky.

M.

Chtělo by to podrobnější popis chyby. Ale co jsem vypozoroval.
- Pokud je instalován Go jinak než podle oficiálního návodu (např přes sudo apt) tak to můžeš způsobit problémy.
- Pokud Go není v PATH podle návodu, opět to nebude fungovat.
- Je potřeba do PATH přidat i $HOME/go/bin v ~/.profile - přidal jsem do článku.