Technologia

Go
(Golang)

Szybki, prosty, skalowalny. Język Google do mikroserwisów, API i systemów o wysokim obciążeniu.

Czym jest Go?

Go (Golang) to kompilowany język programowania stworzony przez Google w 2009 roku. Został zaprojektowany z myślą o prostocie, wydajności i współbieżności. Go kompiluje się do pojedynczego binarnego pliku — zero zależności, instant deploy.

Go jest standardem w infrastrukturze (Docker, Kubernetes, Terraform — wszystkie napisane w Go) i idealnym wyborem do budowy mikroserwisów, API i systemów real-time.

Przykłady kodu

Struktury i metody

Go package main type User struct { ID string `json:"id"` Name string `json:"name"` Email string `json:"email"` Age int `json:"age"` } func (u User) IsAdult() bool { return u.Age >= 18 } func (u User) Display() string { return fmt.Sprintf("%s (%d)", u.Name, u.Age) }

HTTP Server

Go + Chi Router package main import ( "encoding/json" "net/http" "github.com/go-chi/chi/v5" ) func main() { r := chi.NewRouter() r.Get("/api/users", handleGetUsers) r.Post("/api/users", handleCreateUser) http.ListenAndServe(":8080", r) } func handleGetUsers(w http.ResponseWriter, r *http.Request) { users, err := db.GetAllUsers(r.Context()) if err != nil { http.Error(w, err.Error(), 500) return } json.NewEncoder(w).Encode(users) }

Goroutines — współbieżność

Go func fetchAll(urls []string) []Result { ch := make(chan Result, len(urls)) for _, url := range urls { go func(u string) { resp, err := http.Get(u) ch <- Result{URL: u, Resp: resp, Err: err} }(url) } results := make([]Result, 0, len(urls)) for i := 0; i < len(urls); i++ { results = append(results, <-ch) } return results }

Ocena kompetencji

Wydajność
96%
Współbieżność
99%
Prostota
92%
Deploy
98%
Ekosystem
75%
Łatwość nauki
82%

Co potrafi Go

Mikroserwisy

Szybkie, lekkie serwisy. Goroutines obsługują tysiące requestów jednocześnie.

REST / gRPC API

Chi, Gin, Echo (REST). gRPC + Protobuf dla komunikacji między serwisami.

CLI tools

Cobra, Viper. Kompilacja do jednego binarnego pliku. Zero zależności runtime.

Infrastructure

Docker, Kubernetes, Terraform — wszystkie napisane w Go. Standard w DevOps.

Real-time

WebSockets, event streaming, Kafka consumers. Niskie latency, wysoka przepustowość.

Cloud native

Małe Docker images (~10MB). Szybki cold start. Idealny do Cloud Run, Lambda.

Kiedy wybrać Go?

Idealny gdy: budujesz mikroserwisy, potrzebujesz wysokiej wydajności i współbieżności, tworzysz CLI tools, infrastrukturę, systemy real-time, API o wysokim RPS.

Nie najlepszy gdy: budujesz frontend (lepiej TypeScript), potrzebujesz ORM i rapid prototyping (lepiej Python/Django), budujesz aplikację mobilną (lepiej Flutter).