İçeriğe geç

Go Programlama Dili ile Neler Yapılır? | 2025 Rehberi4 dk okuma

Go Programlama , sade sözdizimi, yüksek performansı ve güçlü eşzamanlılık modeliyle modern yazılım geliştirme dünyasında hızla popülerlik kazanmış bir dil. Bu yazıda Go ile neler yapılabileceğini örnek kodlarla birlikte detaylı bir şekilde inceleyeceğiz.

Web Sunucuları ve API Geliştirme

Go’nun standart kütüphanesiyle bir web sunucusu kurmak oldukça kolaydır. Aşağıdaki örnek, 8080 portunda çalışan basit bir HTTP sunucusudur:

package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Merhaba Dünya!")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

Daha büyük projelerde Gin gibi framework’ler kullanılarak RESTful API’ler geliştirilebilir. JSON işleme, routing ve middleware entegrasyonu gibi işlemler bu framework’lerle oldukça verimli hale gelir.

Komut Satırı Uygulamaları (CLI)

Go’nun bağımsız binary üretme özelliği sayesinde sistem araçları ve komut satırı uygulamaları geliştirmek oldukça yaygındır. Örneğin bir klasördeki tüm dosyaları listeleyen basit bir CLI aracı:

package main

import (
    "fmt"
    "os"
    "path/filepath"
)

func main() {
    root := "."
    filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
        if err == nil && !info.IsDir() {
            fmt.Println(path)
        }
        return nil
    })
}

CLI uygulamaları için Cobra gibi kütüphanelerle daha gelişmiş komut yapıları oluşturulabilir.

Ağ Programlama

Go ile TCP sunucuları yazmak oldukça basittir. Aşağıdaki örnek, gelen bağlantılara yanıt veren bir TCP sunucusudur:

package main

import (
    "fmt"
    "net"
)

func main() {
    ln, _ := net.Listen("tcp", ":8080")
    for {
        conn, _ := ln.Accept()
        fmt.Fprintln(conn, "Merhaba TCP!")
        conn.Close()
    }
}

Bu tarz uygulamalar proxy sunucuları, chat sistemleri veya özel protokoller için kullanılabilir.

Paralel Programlama (Concurrency)

Go’nun eşzamanlılık modeli goroutine ve channel yapıları üzerine kuruludur. Aşağıdaki örnek, iki işlemi paralel olarak çalıştırır:

package main

import (
    "fmt"
    "time"
)

func say(s string) {
    for i := 0; i < 5; i++ {
        fmt.Println(s)
        time.Sleep(100 * time.Millisecond)
    }
}

func main() {
    go say("Merhaba")
    say("Dünya")
}

Bu yapı sayesinde yüksek performanslı ve eşzamanlı uygulamalar yazmak mümkündür.

Veri İşleme ve Otomasyon

Go ile büyük veri setlerini işlemek oldukça verimlidir. Örneğin bir CSV dosyasını okuyup filtreleyen basit bir uygulama:

package main

import (
    "encoding/csv"
    "fmt"
    "os"
)

func main() {
    file, _ := os.Open("veriler.csv")
    reader := csv.NewReader(file)
    records, _ := reader.ReadAll()

    for _, record := range records {
        if record[2] == "Türkiye" {
            fmt.Println(record)
        }
    }
}

Bu tarz uygulamalar log analizi, raporlama ve veri temizleme gibi görevlerde kullanılır.

Veritabanı Uygulamaları

Go ile MySQL gibi veritabanlarına bağlanmak oldukça kolaydır. Aşağıdaki örnek, bir kullanıcı tablosunu sorgular:

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
    "fmt"
)

func main() {
    db, _ := sql.Open("mysql", "user:pass@tcp(localhost:3306)/dbname")
    rows, _ := db.Query("SELECT id, name FROM users")
    defer rows.Close()

    for rows.Next() {
        var id int
        var name string
        rows.Scan(&id, &name)
        fmt.Println(id, name)
    }
}

ORM kullanmak isterseniz GORM gibi araçlar veri modelleme ve ilişkileri yönetme konusunda yardımcı olur.

Web Scraping ve Bot Geliştirme

Go ile web sitelerinden veri çekmek için Colly gibi kütüphaneler kullanılır. Aşağıdaki örnek, bir sayfadaki başlıkları toplar:

import "github.com/gocolly/colly"

func main() {
    c := colly.NewCollector()
    c.OnHTML("h1", func(e *colly.HTMLElement) {
        fmt.Println(e.Text)
    })
    c.Visit("https://example.com")
}

Bu tarz botlar fiyat takibi, içerik arşivleme veya haber analizi gibi alanlarda kullanılır.

Sonuç: Go Programlama ile Neler Yapılır?

Go, sade yapısı ve güçlü özellikleriyle hem yeni başlayanlar hem de profesyonel geliştiriciler için etkili bir araçtır. Web geliştirmeden sistem araçlarına, veri işleme görevlerinden mikroservis mimarilerine kadar geniş bir yelpazede kullanılabilir. Eğer hızlı, güvenilir ve kolay dağıtılabilir uygulamalar geliştirmek istiyorsanız, Go kesinlikle değerlendirmeniz gereken bir dil.

Çağrı
Kategori:Yazılım

İlk Yorumu Siz Yapın

Bir yanıt yazın

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