class Go’ya Merhaba (1. Bölüm) extends Post

@created_at( "2025-03-11 21:13" ) @tag( "go" ) @tag( "golang" )
*** Go (veya Golang), Google tarafından geliştirilen, sistem programlamaya yakın performansıyla yüksek seviyeli dillerin kullanım kolaylığını birleştiren, açık kaynaklı bir programlama dilidir. Projenizde hem basitlik hem de hız istiyorsanız tam size göre. “Acaba Go mu, Java mı?” diye düşünüyorsanız, Go’nun minimal sözdizimi ve hızlı derlemesi sizi fena halde cezbedebilir! Ayrıca Go, concurrency (eşzamanlılık) desteğiyle çok çekirdekli sistemlerin nimetlerinden kolayca yararlanmanızı sağlar. Bu, performans açısından ‘dopingli koşu’ gibidir. Önceden belki “Thread’ları nasıl yöneteceğim? Ortalık karışacak mı?” diye korkuyor olabilirsiniz. Go ile `goroutine` adını verdiğimiz hafif iş parçacıkları ve `channel` yapısıyla bu iş çok daha kolay. Yani hem hızlı hem de pratik. Ek olarak yazılım güvenliği konusunda da Go dilinde dikkat etmeniz gereken noktalar, değişken kullanımları ve modül yönetimi gibi konularda bilinçli yaklaşmak önemli. “Security her şeyden önce gelir!” mottosuyla ilerlemekte fayda var. Hadi gelin, teoriyi yeterince övdük; sırada pratiğe bakmak var. --- ### 1.1 Go Kurulumu 1. **Go’yu İndirin**: Resmi sitesinden (golang.org) işletim sisteminize uygun versiyonu indirin. 2. **Ortam Değişkeni**: - Kurulum sonrasında `GOPATH`, `GOROOT` gibi değişkenler otomatik tanımlanmış olabilir. - Eğer elle ayarlamanız gerekirse, örneğin `GOPATH`’i proje klasörünüe (/Users/kullanici/go) yönlendirebilirsiniz. 3. **Kontrol**: Kurulumun sorunsuz olup olmadığını test etmek için terminalde/komut satırında:
go version
komutunu verin. Versiyon numarasını görüyorsanız yola devam! --- ### 1.2 İlk Go Programı 1. Bir proje klasörü açın, örnek: `mkdir hello_go && cd hello_go`. 2. `main.go` adında bir dosya oluşturun ve içine şu kodu ekleyin:
package main

import "fmt"

func main() {
    fmt.Println("Merhaba Dünya, burası Go!")
}
3. Terminalden **build** edin veya doğrudan çalıştırın:
go run main.go
veya
go build main.go
   ./main
Ekranda `Merhaba Dünya, burası Go!` yazısını görmeniz lazım. --- ### 1.3 Go’da Temel Sözdizimi ve Örnekler 1. **Değişken Tanımlama**:
// Uzun yol
   var x int = 42
   
   // Kısa yol
   y := 42
- Go’da `:=` ile değişken tipini otomatik çıkartır. 2. **Döngüler**:
for i := 0; i < 5; i++ {
       fmt.Println(i)
   }
3. **Koşullar (if/else)**:
if x := 10; x < 20 {
       fmt.Println("x, 20'den küçük")
   } else {
       fmt.Println("x, 20 ya da daha büyük")
   }
4. **Fonksiyonlar**:
package main

   import "fmt"

   func topla(a int, b int) int {
       return a + b
   }

   func main() {
       sonuc := topla(3, 5)
       fmt.Println("Toplam:", sonuc)
   }
--- ### 1.4 Sonraki Bölümlerde Neler Olacak? 1. **Değişkenler, Veri Tipleri ve Temel Operatörler** 2. **Fonksiyonlar, Metodlar ve İlerlemeli Örnekler** 3. **Paket Yönetimi, Go Mod (go.mod) ve Proje Yapısı** 4. **Eşzamanlılık (goroutine, channel) ve Senkronizasyon** 5. **Web Programlama (net/http, REST API Geliştirme)** 6. **Veritabanı Bağlantısı (SQL, NoSQL örnekleri)** 7. **Hata Yönetimi (error handling) ve Özel Durumlar** 8. **İleri Düzey Concurrency Örnekleri (Worker Pool, Context Kullanımı)** 9. **Güvenlik ve En İyi Uygulamalar (input doğrulama, şifreleme, JWT, vb.)** 10. **Dağıtım (Deployment), CI/CD ve Pratik İpuçları** --- Böylelikle, Go maceramıza en temelde ufak bir giriş yaptık. Bir sonraki bölümde veri tiplerine ve fonksiyon yapısına derinlemesine dalacağız!