Korzystanie z Go (Golang)
Przegląd
Go (często nazywany Golang) to statycznie typowana, kompilowana język programowania stworzony przez Google i udostępniony jako open source. Charakteryzuje się prostą składnią, bardzo szybkim kompilowaniem, doskonałą obsługą współbieżności (dzięki lekkim goroutine i mechanizmowi komunikacji channel) oraz wydajnym, wbudowanym mechanizmem garbage collection. Go jest ceniony za budowę wydajnych usług sieciowych, systemów rozproszonych, mikroserwisów oraz narzędzi CLI, stając się jednym z głównych wyborów w nowoczesnych aplikacjach chmurowych i backendowych.
Wsparcie Go w ServBay
ServBay to zintegrowane, lokalne środowisko do tworzenia aplikacji webowych dla macOS i Windows, oferujące płynne i potężne wsparcie dla programistów Go. Dzięki ServBay możesz niezwykle łatwo instalować, zarządzać oraz przełączać się pomiędzy różnymi wersjami Go bez żmudnej ręcznej konfiguracji zmiennych środowiskowych (np. GOROOT, GOPATH), co bardzo upraszcza proces inicjalizacji i utrzymania środowiska Go.
ServBay zawiera kompletny zestaw narzędzi Go i obsługuje szeroki zakres wersji – od historycznych po najnowsze stabilne, tak aby sprostać wymaganiom Twoich projektów:
- Go 1.11
- Go 1.12
- Go 1.13
- Go 1.14
- Go 1.15
- Go 1.16
- Go 1.17
- Go 1.18
- Go 1.19
- Go 1.20
- Go 1.21
- Go 1.22
- Go 1.23
- Go 1.24 (oraz kolejne wersje wraz z aktualizacjami ServBay)
Wsparcie dla Go Modules
Środowisko ServBay domyślnie włącza oraz rekomenduje zarządzanie zależnościami poprzez Go Modules – oficjalne rozwiązanie zalecane od wersji 1.11. W terminalu ServBay możesz bezpośrednio korzystać z komend typu go mod (np. go mod init, go get, go mod tidy) do kontrolowania zależności projektu, nie martwiąc się o tradycyjne ustawienia $GOPATH.
Wymagania wstępne
- ServBay zainstalowany i uruchomiony na macOS.
- Podstawowa znajomość programowania w Go.
- Umiejętność użycia podstawowych poleceń w terminalu.
Instalacja Go
Instalacja środowiska Go poprzez intuicyjny panel GUI ServBay jest bardzo prosta:
- Uruchom aplikację ServBay.
- W lewym pasku nawigacyjnym wybierz opcję
Pakiety. - Na rozwijanej liście pakietów znajdź kategorię
Go. - Rozwiń kategorię
Go, aby zobaczyć dostępne wersje do instalacji. - Wybierz potrzebną wersję Go (zalecane najnowsze stabilne, np. Go 1.24) i kliknij przycisk
Instalujobok wybranej wersji. - ServBay automatycznie pobierze i zakończy instalację wybranego Go – czas zależy od prędkości Twojego internetu.

Po zakończeniu instalacji status wersji zmieni się na „zainstalowana”; możesz zainstalować inne wersje lub przełączać się między nimi według potrzeb.
Korzystanie z Go
Po udanej instalacji Go możesz bezpośrednio korzystać z komend go w systemowym terminalu.
Aby sprawdzić, czy Go jest zainstalowane i która wersja jest aktywna, wpisz:
bash
go version1
Powinieneś zobaczyć w terminalu coś podobnego, pokazującego aktualnie zarządzaną przez ServBay wersję Go:
go version go1.24.1 darwin/arm641
Budowa oraz uruchamianie prostego webowego projektu Go
Wykonajmy przykładowy serwer HTTP w Go i skompilujmy oraz uruchommy go w środowisku ServBay.
Stwórz katalog projektu: Zalecamy utworzenie nowego katalogu w domyślnym katalogu www ServBay
/Applications/ServBay/wwwdla swojego projektu Go. W tym przykładzie stworzymy foldergo-servbay-demo.bashcd /Applications/ServBay/www mkdir go-servbay-demo cd go-servbay-demo1
2
3Inicjalizuj Go Modules: W katalogu projektu (
go-servbay-demo) zainicjuj Go Modules poleceniemgo mod init. Jako identyfikator możesz użyć nazwy folderu.bashgo mod init go-servbay-demo1Komenda utworzy plik
go.moddo śledzenia zależności w projekcie.Napisz kod Go: Utwórz plik źródłowy
main.goi wklej poniższy kod:gopackage main import ( "fmt" "log" "net/http" "os" ) func handler(w http.ResponseWriter, r *http.Request) { hostname, _ := os.Hostname() fmt.Fprintf(w, "Hello from Go on ServBay!\nHostname: %s\nPath: %s\n", hostname, r.URL.Path) } func main() { http.HandleFunc("/", handler) port := "8080" // Definicja portu nasłuchiwania dla serwera log.Printf("Go web server starting on port %s...", port) log.Printf("Access it at http://localhost:%s", port) // Uruchom serwer HTTP err := http.ListenAndServe(":"+port, nil) if err != nil { log.Fatalf("Error starting server: %s\n", err) } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27Ten kod przedstawia prosty serwer HTTP nasłuchujący na porcie 8080. Na każde żądanie zwraca komunikat "Hello from Go on ServBay!" wraz z nazwą hosta i ścieżką żądania.
Uruchom aplikację Go: Upewnij się, że jesteś w katalogu projektu (
/Applications/ServBay/www/go-servbay-demo) w terminalu ServBay, następnie skompiluj i uruchom aplikację komendą:bashgo run main.go1Jeśli wszystko przebiegło pomyślnie, zobaczysz w terminalu logi informujące o starcie serwera:
2024/05/20 15:00:00 Go web server starting on port 8080... 2024/05/20 15:00:00 Access it at http://localhost:80801
2Odwiedź aplikację: Otwórz przeglądarkę i wpisz
http://localhost:8080. Powinieneś zobaczyć odpowiedź w stylu "Hello from Go on ServBay! Hostname: your-mac-hostname Path: /".
Konfiguracja reverse proxy w ServBay (zalecane)
Choć można testować aplikację pod localhost:8080, dla wygodnego rozwoju warto użyć własnej domeny (np. go-app.servbay.demo) oraz skorzystać z reverse proxy przez serwer WWW ServBay (Caddy, Apache lub Nginx). Pozwala to korzystać ze standardowych portów HTTP/HTTPS, zautomatyzowanego SSL i łatwej integracji z innymi usługami.
- Utwórz stronę w ServBay:
- Otwórz ServBay GUI i przejdź do sekcji
Strony. - Kliknij przycisk
Dodaj stronę. - Domena: wpisz np.
go-app.servbay.demo. - Typ strony: wybierz Reverse Proxy.
- Adres IP: wpisz
127.0.0.1. - Port: wpisz
8080.
- Otwórz ServBay GUI i przejdź do sekcji

Zapisz i przeładuj konfigurację: Zatwierdź zmiany w GUI oraz uruchom ponownie (lub przeładuj) webserwer (Caddy/Nginx), aby nowa konfiguracja zaczęła działać.
Odwiedź aplikację przez domenę: Aplikacja Go będzie dostępna pod adresem
https://go-app.servbay.demo. Serwer WWW ServBay obsłuży żądania i przekaże je do Twojego programu Go.

Zarządzanie wersjami Go
ServBay umożliwia wyjątkowo łatwe zarządzanie oraz przełączanie się między różnymi wersjami Go.
- Przełączanie wersji: W GUI ServBay, sekcja
Pakiety->Go, zobaczysz zainstalowane wersje. W menu po lewej otwórzUstawienia, by wybrać domyślną wersję Go. - Weryfikacja: Po przełączeniu wersji, otwórz ponownie terminal i wpisz
go version– sprawdź czy wersja odpowiada Twojemu wyborowi.
Plik .servbay.config: zarządzanie wersją Go w projekcie
Oprócz globalnej zmiany wersji Go, ServBay umożliwia bardziej precyzyjne sterowanie wersją przez prosty plik .servbay.config w katalogu głównym projektu.
Jak to działa:
Gdy w zintegrowanym terminalu ServBay użyjesz komendy cd, przechodząc do folderu zawierającego plik .servbay.config, ServBay automatycznie go wykryje i odczyta. Zgodnie z ustawieniem (np. GO_VERSION) tymczasowo dostosuje środowisko terminala, aby komendy Go wskazywały wybraną wersję.
Format konfiguracji:
.servbay.config to prosty plik tekstowy z parą klucz-wartość. By określić wersję Go dla projektu, dodaj np.:
ini
# Przykład pliku .servbay.config
# Określa użycie Go w wersji 1.22 dla bieżącego projektu
GO_VERSION=1.22
# Możliwe równocześnie wskazanie wersji innych narzędzi
# PHP_VERSION=8.3
# NODE_VERSION=20
# PYTHON_VERSION=3.11
# ... inne opcje ...
# GOPROXY=https://goproxy.cn,direct1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Zalety:
- Automatyczne przełączanie wersji: Bez ręcznej zmiany wersji globalnie – po wejściu do folderu projektowego automatycznie używana jest właściwa wersja Go.
- Izolacja projektów: Każdy projekt jest budowany i uruchamiany w wybranym przez siebie środowisku Go, więc nie dochodzi do konfliktów wersji.
- Współpraca w zespole: Po wrzuceniu pliku
.servbay.configdo repozytorium (np. Git), każdy członek zespołu ma identyczne środowisko bazowe Go po sklonowaniu projektu.
Przykłady zastosowania:
Załóżmy, że masz dwa projekty:
project-awymaga Go 1.12project-bkorzysta z najnowszego Go 1.22
W katalogach głównych obu projektów dodaj pliki .servbay.config:
/Applications/ServBay/www/project-a/.servbay.config:iniGO_VERSION=1.121/Applications/ServBay/www/project-b/.servbay.config:iniGO_VERSION=1.221
Po przejściu do /Applications/ServBay/www/project-a i wpisaniu go version w terminalu zobaczysz Go 1.12.x, a przy przejściu do /Applications/ServBay/www/project-b – Go 1.22.x.

Uwaga: .servbay.config wpływa głównie na podstawową wersję Go rozpoznawaną przez ServBay. Zależności projektu zalecamy kontrolować za pomocą Go Modules (go.mod).
Najczęstsze pytania (FAQ)
Q: Komenda
gow terminalu ServBay zgłasza „command not found”?A: Upewnij się, że środowisko terminala ma poprawnie ustawione PATH ServBay oraz w GUI ServBay w sekcji Pakiety -> Go jest zainstalowana przynajmniej jedna wersja Go i wybrana jako domyślna.
Q: Jak zaktualizować Go do najnowszej wersji w ServBay?
A: Regularnie sprawdzaj sekcję Pakiety -> Go w GUI ServBay. Jeśli pojawi się nowsza wersja na liście, możesz ją zainstalować jednym kliknięciem. Po instalacji zmień domyślną wersję w GUI.
Q: Problemy z siecią lub wolne pobieranie zależności przy użyciu Go Modules?
A: Domyślnie Go Modules pobiera zależności z
proxy.golang.org. Jeśli jesteś w Chinach lub masz ograniczony dostęp do sieci, możesz skonfigurować zmienną środowiskowąGOPROXYna szybki mirror, np.https://goproxy.cnczyhttps://goproxy.io. Możesz ustawić to globalnie w ServBay lub w pliku.servbay.config(np.GOPROXY=https://goproxy.cn,direct).Q: Serwer Go zgłasza „address already in use” (port zajęty)?
A: Błąd oznacza, że port (np. 8080) jest już używany przez inną aplikację. Możesz zmienić port na niezajęty (np. 8081, 9000) w kodzie Go lub odnaleźć i zatrzymać proces blokujący port. W macOS skorzystaj z
lsof -i :<port_number>(np.lsof -i :8080), aby znaleźć PID procesu, a następnie zakończ go poleceniemkill <PID>.Q: Jaka jest różnica między plikiem
.servbay.configa globalną zmianą wersji Go? Którego używać?A: Przełączenie globalnej wersji (poprzez GUI ServBay) zmienia domyślne środowisko dla całego systemu. Plik
.servbay.configpozwala na nadpisanie wersji Go tylko wewnątrz folderu projektu i w aktualnej sesji terminala. Zalecamy użycie.servbay.configdla zarządzania wersją Go zależnie od projektu – pozwala na niezależność, powtarzalność i brak konfliktów między projektami. Zmiana globalna sprawdza się, gdy chcesz ustawić najczęściej wykorzystywaną wersję Glo.
Podsumowanie
ServBay dostarcza programistom Go na macOS wyjątkowo wydajne i przyjazne lokalne środowisko do pracy. Dzięki przejrzystemu GUI łatwo zainstalujesz i będziesz zarządzać wieloma wersjami Go, a plik .servbay.config pozwoli na kontrolę wersji na poziomie projektu. Z użyciem Go Modules do obsługi zależności oraz wbudowanych funkcji reverse proxy i hostingu aplikacji webowych, możesz szybko budować, uruchamiać i testować swoje projekty Go. ServBay znacząco redukuje złożoność konfiguracji i pozwala skupić się na samym tworzeniu kodu w Go.
