İçeriğe geç

Go Nedir?

yapay-zeka-is-gelecegi

Go, Google tarafından 2007 yılında geliştirilmeye başlanan ve 2009’da açık kaynak olarak yayımlanan, statik tipli, derlemeli ve yüksek performanslı bir programlama dilidir. Golang olarak da bilinir.

Go’nun Temel Özellikleri:

  • Statik Tip: Hata yakalamayı derleme aşamasında yapar.
  • Garbage Collection: Bellek yönetimini otomatikleştirir.
  • Basitlik: Temiz ve kolay okunabilir bir sözdizimi sunar.
  • Paralel Programlama: Goroutine desteği ile hafif ve verimli eşzamanlı işlemler sağlar.
  • Hızlı Derleme: Makine koduna derlenir, böylece hızlı çalışır.

Go Dili Nasıl Doğmuştur?

Go dili, Robert Griesemer, Rob Pike ve Ken Thompson tarafından Google’ın altyapı problemlerine çözüm üretmek amacıyla geliştirilmiştir. Google, özellikle C++ ve Java’nın büyük projelerde yavaş derlenmesi, karmaşık olması ve paralel işlem desteğinin yetersiz kalması gibi sebeplerle daha modern bir dil tasarlamaya karar verdi.

Go dili, C’nin performans avantajlarını ve Python’un sadeliğini bir araya getirmeyi hedeflemiştir.

Go Dili Nerelerde Kullanılıyor?

Go dili aşağıdaki alanlarda yaygın olarak kullanılmaktadır:

  1. Web Geliştirme ve RESTful API’ler
    • Go, güçlü HTTP kütüphaneleri sayesinde yüksek performanslı API’ler geliştirmek için kullanılır.
    • Popüler Frameworkler: Gin, Echo, Fiber.
  2. Ağ Programlama
    • Hafif eşzamanlı yapısı (Goroutines) sayesinde yüksek trafikli ağ uygulamalarında tercih edilir.
    • Örnek: Cloudflare, Go kullanarak ağ hizmetlerini optimize etmiştir.
  3. Dağıtık Sistemler ve Cloud Native Uygulamalar
    • Docker ve Kubernetes gibi en önemli bulut teknolojileri Go dili ile yazılmıştır.
    • Google Cloud Platform (GCP), Go’yu yoğun bir şekilde kullanır.
  4. CLI (Command Line Interface) Uygulamaları
    • Go’nun tek dosya halinde derlenebilir olması, komut satırı araçları geliştirmek için idealdir.
    • Örnek: Hugo (Statik site jeneratörü).
  5. Mikro Hizmetler (Microservices)
    • Hafif yapısı, bağımsız çalışan servisler geliştirmek için uygundur.
    • Netflix, Uber, Dropbox, SoundCloud gibi şirketler mikro hizmetlerinde Go kullanmaktadır.
  6. Veri İşleme ve Büyük Ölçekli Sistemler
    • Paralel işleme yetenekleri sayesinde büyük veri işleme sistemlerinde performans sağlar.
    • Örnek: InfluxDB, Prometheus gibi veri tabanları Go ile yazılmıştır.

Go Neden Hızlı?

  1. Derlemeli Olması
    • Go, C gibi makine koduna derlenen bir dildir, bu da yorumlanan dillere (Python, Node.js gibi) göre daha hızlı çalışmasını sağlar.
  2. Garbage Collector (Çöp Toplayıcı) Optimizasyonu
    • Modern Garbage Collector (GC) sayesinde bellek yönetimini etkili bir şekilde yapar.
  3. Hafif ve Hızlı Eşzamanlı İşlemler (Goroutines)
    • Thread’lerden çok daha hafif olan Goroutine’ler sayesinde düşük maliyetli eşzamanlı işlemler sağlar.
  4. Minimalist Standart Kütüphane
    • Go, geniş ama hafif bir standart kütüphaneye sahiptir. Gereksiz bağımlılıklar olmadan hafif ve optimize çalışır.

Go Kurulumu

Eğer sisteminizde Go yüklü değilse, önce yüklemeniz gerekiyor. Go’yu indirip yüklemek için:

📌 Go Resmi Sitesi:
🔗 https://go.dev/dl/

Daha sonra terminalde veya komut istemcisinde Go’nun kurulu olup olmadığını kontrol edin:

go version

Eğer çıktı olarak Go’nun sürüm numarasını görüyorsanız (örneğin go version go1.23.6 linux/amd64), Go düzgün yüklenmiş demektir.

Go ile RESTful API Nasıl Yazılır?

Go dili ile hızlı ve ölçeklenebilir RESTful API geliştirmek için net/http paketi kullanılabileceği gibi, Gin veya Fiber gibi framework’ler de tercih edilebilir.

1. Basit Bir REST API Örneği (net/http Kullanarak)

Aşağıdaki örnek, Go’nun standart kütüphanesi ile bir RESTful API nasıl yazılacağını gösterir.

package main

import (
"encoding/json"
"net/http"
)

// Veri modeli
type Message struct {
Message string `json:"message"`
}

// Ana fonksiyon
func main() {
http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(Message{Message: "Merhaba, Go API!"})
})

http.ListenAndServe(":8080", nil)
}
  • http.HandleFunc ile bir endpoint tanımladık.
  • json.NewEncoder ile JSON formatında çıktı verdik.
  • http.ListenAndServe(“:8080”, nil) ile sunucuyu çalıştırdık.
go run main.go

Bu kodu çalıştırdıktan sonra http://localhost:8080/hello adresine istek atarak çıktıyı görebilirsiniz.

2. Gin Framework ile RESTful API

Gin, performans açısından optimize edilmiş bir HTTP framework’üdür. Aşağıdaki örnek, Gin kullanarak bir API oluşturmayı gösterir:

1. Gin’i yükleyin:

go get -u github.com/gin-gonic/gin

2. API Kodunu Yazalım:

package main

import (
"net/http"

"github.com/gin-gonic/gin"
)

func main() {
r := gin.Default()

r.GET("/hello", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": "Merhaba, Go API!"})
})

r.Run(":8080") // Sunucuyu başlat
}

gin.Default() ile bir router oluşturduk.

  • r.GET() ile /hello endpoint’ini tanımladık.
  • c.JSON() ile JSON formatında çıktı verdik.
  • r.Run(“:8080”) ile sunucuyu başlattık.
go run main.go

Gin’in Avantajları:

  • Daha temiz ve okunabilir kod.
  • Daha az boilerplate (gereksiz kod).
  • Yüksek performans.

Go Öğrenmek İçin Resmi Dökümantasyon ve Eğitimler

Go dilini öğrenmek için aşağıdaki kaynakları kullanabilirsiniz:

Resmi Dökümantasyon ve Kaynaklar

  1. Go’nun Resmi Web Sitesi
    https://go.dev/
    • Dilin en güncel sürümü ve dökümantasyonları burada bulunur.
  2. Go Dökümantasyon (Resmi Kılavuzlar)
    https://pkg.go.dev/std
    • Standart kütüphane belgeleri.
  3. Go by Example
    https://gobyexample.com/
    • Temel Go konularını adım adım gösteren interaktif bir rehber.
  4. Go Tour (Resmi İnteraktif Öğrenme Platformu)
    https://tour.golang.org/
    • Go’yu tarayıcınızda kod yazarak öğrenebilirsiniz.
  5. Go’nun Açık Kaynak Kodu
    https://github.com/golang/go
    • Go’nun kaynak kodlarına göz atabilirsiniz.

Bu kaynaklar sayesinde Go’yu en iyi şekilde öğrenebilir ve projelerinizde kullanabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

5 + 3 =