Junior — Middle
Yazılım sistemlerinde bağlam kavramının nasıl uygulandığını açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde bağlam kavramı, context paketi aracılığıyla uygulanır ve bu, çalışan durumu, zaman aşımı, iptaller ve zaman sınırları hakkında bilgileri goroutine'ler ve fonksiyonlar arasında iletmeye olanak tanır.
Bağlam, özellikle ağ veya uzun süren görevlerde operasyonların yaşam döngüsünü kontrol etmek için kullanılır. Örneğin, müşteri isteği iptal ederse veya zaman aşımı geçerse, işlemleri iptal etmeye yardımcı olur.
Kullanım örneği:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
select {
case <-doSomeWork(ctx):
fmt.Println("İş tamamlandı")
case <-ctx.Done():
fmt.Println("İptal veya zaman aşımı:", ctx.Err())
}
Burada, ctx fonksiyonlara iletilir ve bu fonksiyonlar ctx.Done()'yu kontrol ederek işi zamanında iptal edebilir. Bu, daha yönetilebilir ve duyarlı kod yazmaya yardımcı olur.