Go Geliştiricisinin Araç Kutusu — Temel Araçlar ve Kütüphaneler

22 Ağustos 2026 · netologist · 16 dakika, 3331 kelime ·

Go ekosisteminde en yaygın kullanılan komut satırı araçları ve kütüphaneler hakkında kapsamlı, görüş içeren bir rehber — ne oldukları, neden var oldukları, nasıl kurulup gerçek bir projede nasıl kullanıldıkları.


İçindekiler

  1. Bu rehber nasıl okunur
  2. Bölüm 1 — CLI / Geliştirme Araçları
  3. Bölüm 2 — Kütüphaneler
  4. Proje tipine göre önerilen “başlangıç kiti”

Bu rehber nasıl okunur

Her madde aynı yapıyı takip eder:

Aşağıdaki CLI araçlarının çoğu proje bağımlılığı olarak değil, geliştirme (dev) aracı olarak kurulmalıdır. Modern ve idiomatik yaklaşım (Go 1.24+), araç sürümlerini geliştiricinin $GOPATH/bin dizinindeki her neyse ona güvenmek yerine repo başına sabitleyen özel bir tools.go/tools dizini, ya da daha da iyisi go.mod tool direktifidir (go get -tool).

# Modern (Go 1.24+) yöntemle bir dev aracını modül bazında sabitleme
go get -tool github.com/golangci/golangci-lint/cmd/golangci-lint@latest
go tool golangci-lint run

Bölüm 1 — CLI / Geliştirme Araçları

Derleme, Çalıştırma ve Canlı Yeniden Yükleme

air — Go uygulamaları için canlı yeniden yükleme

task — Task runner / Makefile alternatifi


Kod Kalitesi: Linting, Formatlama ve Statik Analiz

golangci-lint — Linter toplayıcısı

staticcheck — Derinlemesine statik analiz

goimports — Formatlama + import yönetimi


Test Araçları

gotestsum — İnsan dostu test çıktısı

ginkgo / gomega (ekstra bilgi)


Debugging ve Profiling

delve (dlv) — Go debugger’ı

pprof — Profiling (standart kütüphanenin içinde)


Veritabanı ve Migration Araçları

goose — Veritabanı migration’ları

sqlc — SQL’den tip güvenli Go kodu üretme


Kod Üretimi (API, GraphQL, SQL, Mock)

oapi-codegen — OpenAPI → Go

gqlgen — GraphQL sunucu üretici

buf — Protobuf araçları

mockery — Interface’ler için mock üretimi


Task Runner’lar ve Git Hook’ları

lefthook — Hızlı Git hook yöneticisi


Güvenlik ve Zafiyet Taraması

govulncheck — Resmi Go zafiyet tarayıcısı


Release ve Paketleme

goreleaser — Otomatik release pipeline’ı


Bölüm 2 — Kütüphaneler

Validasyon (Doğrulama)

go-playground/validator


Test ve Assertion

stretchr/testify


HTTP Router’lar ve Web Framework’leri

gin-gonic/gin

labstack/echo

go-chi/chi


Konfigürasyon ve CLI

spf13/cobra

spf13/viper

joho/godotenv


Loglama

uber-go/zap

rs/zerolog


Veritabanı Erişimi ve ORM

jmoiron/sqlx

go-gorm/gorm

jackc/pgx


Dependency Injection

google/wire


gRPC ve Protocol Buffers

grpc/grpc-go

google.golang.org/protobuf


Yardımcı (Utility) ve Generic Kütüphaneler

samber/lo

golang.org/x/sync


Hatalar, ID’ler, Zaman ve Diğerleri

google/uuid

pkg/errors (eski) → standart errors + fmt.Errorf("%w")

golang-jwt/jwt

robfig/cron


Observability (Gözlemlenebilirlik)

prometheus/client_golang

open-telemetry/opentelemetry-go


Mesajlaşma, Önbellekleme ve Arka Plan İşleri

redis/go-redis

hibiken/asynq

segmentio/kafka-go


Proje tipine göre önerilen “başlangıç kiti”

Proje tipiÖnerilen yığın (stack)
REST API servisichi veya gin + validator + zap/zerolog + sqlc veya sqlx/pgx + goose + testify + golangci-lint + air
gRPC mikroservisigrpc-go + buf + opentelemetry-go + wire + sqlc
CLI aracıcobra + viper + goreleaser
GraphQL APIgqlgen + sqlc/gorm + validator
Arka plan worker’ıasynq veya kafka-go + zap + cron
Tipinden bağımsız her repogolangci-lint, staticcheck, govulncheck, goimports, gotestsum, lefthook, testify

Bu listeyi güncel tutma üzerine bir not

Go araç ekosistemi hızlı hareket ediyor — go.mod tool direktifleri, slog ve net/http‘in routing iyileştirmeleri, standart kütüphanenin eskiden üçüncü parti paketler gerektiren şeyleri kendi bünyesine katmasına örnektir. Bir bağımlılığın hâlâ en iyi seçim olup olmadığını, ya da standart kütüphanenin onu yakalayıp yakalamadığını periyodik olarak yeniden değerlendirin.