Golang
Go'da hangi goroutine senkronizasyon primitivleri vardır?
Go'da hangi senkronizasyon araçlarını biliyorsun?
Go'da map hakkında anlat.
Servise gelenen belge güncellemeleri message Document { string Url = 1; // Belgenin URL'si, benzersiz tanımlayıcısı uint64 PubDate = 2; // belgenin bildirilen yayınlama zamanı uint64 FetchTime = 3; // bu belge güncellemesinin alınma zamanı, sürüm tanımlayıcısı olarak düşünülebilir. Çift (Url, FetchTime) benzersizdir. string Text = 4; // belgenin metni uint64 FirstFetchTime = 5; // başlangıçta yok, doldurulmalı } Belgeler herhangi bir sırayla gelebilir (güncellemelerin yapıldığı sırayla değil), ayrıca mesaj tekrarları da olabilir. Çıkışta, aynı mesajlar oluşturmak gerekiyor, ancak aşağıdaki kurallara göre düzeltilmiş alanlarla (aşağıda belirtilenler, aynı Url alanına sahip belge grubu için geçerlidir): Text ve FetchTime alanları, şu ana kadar alınan en büyük FetchTime'a sahip belgeyle aynı olmalı. PubDate alanı, en küçük FetchTime'a sahip mesajla aynı olmalı. FirstFetchTime alanı, en küçük FetchTime değerine eşit olmalı. Yani, her zaman, FetchTime'a göre sıralanmış ilk versiyondan alınan PubDate ve FirstFetchTime, ve en son versiyondan alınan Text kullanılır. Kodda bu arayüz şu şekilde uygulanabilir: type Processor interface { Process(doc *Document) (*Document, error) } Bu kod, mesajları bir kuyruktan (Kafka veya benzeri) okuyan ve sonucu da kuyrukta yazan bir serviste çalışacaktır. Eğer Process null dönerse, kuyrukta hiçbir şey yazılmaz.
Analitik ile süreçte nasıl bir değişiklik yaptınız?
En çok neyle çalıştınız? Hangi teknolojileri kullandınız?
Bir defer'de paniği yönetebilir misin?
Redis ve Postgres nasıl senkronize edilecek? Sonuçta, bunlar ayrışabilir.
Neden bu teknik olarak zor bir görev? Neden sadece 100 satırlık bir fonksiyon değil?
Trazlama (tracing) nedir? Nasıl yapılır?
Go ile ticari geliştirme konusunda toplam deneyiminiz nedir?
ana paket içe aktar ( "io" "log" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { go func() { resp, err := http.Get("[link]") if err != nil { log.Println("istek hatası:", err) return } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) w.Write(body) }() } func main() { http.HandleFunc("/proxy", handler) log.Fatal(http.ListenAndServe(":8080", nil)) }
Saga'nın hangi tarzı kullanıldı: koreografi mi yoksa orkestra mı?
Yeni özellikler, teknik borç ve hata düzeltmeleri arasında nasıl önceliklendirme yapıyorsunuz?
Panik yakalayamadığımızda, uygulama yine de kapanacak mı?
Bir çıkmazda kaldığın ve sorunu nasıl çözeceğini bilmediğin bir durumu hatırla
Defer nedir ve ne için kullanılır? Aynı fonksiyon içinde birden fazla defer çağrısı varsa, bunlar hangi sırayla çalıştırılır?
Hangi ürün metriklerini topluyorsunuz?
Defer, goroutine'un içinde değil de dışında olursa ne olur?
Özgeçmişe göre şu anda [kuruluş] şirketinde çalışıyorsunuz, doğru mu?