Sobes.tech

Golang

Go'da hangi goroutine senkronizasyon primitivleri vardır?

Middle+
СБЕРСБЕР
59

Go'da hangi senkronizasyon araçlarını biliyorsun?

Middle+
WildberriesWildberries
59

Go'da map hakkında anlat.

Middle
RWB
59

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.

Senior
VKVK
59

Analitik ile süreçte nasıl bir değişiklik yaptınız?

Senior
AvitoAvito
59

En çok neyle çalıştınız? Hangi teknolojileri kullandınız?

Middle+
OZONOZON
59

Bir defer'de paniği yönetebilir misin?

Senior
МВидео/эльдорадо
59

Redis ve Postgres nasıl senkronize edilecek? Sonuçta, bunlar ayrışabilir.

Senior
МВидеоМВидео
59

Neden bu teknik olarak zor bir görev? Neden sadece 100 satırlık bir fonksiyon değil?

Senior
VK Live
59

Trazlama (tracing) nedir? Nasıl yapılır?

Senior
I-teco
59

Go ile ticari geliştirme konusunda toplam deneyiminiz nedir?

Senior
IBS
59

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)) }

Middle+
MAX LTD Group
59

Saga'nın hangi tarzı kullanıldı: koreografi mi yoksa orkestra mı?

Senior
А7
59

Yeni özellikler, teknik borç ve hata düzeltmeleri arasında nasıl önceliklendirme yapıyorsunuz?

Senior
НООСФЕРА
59

Panik yakalayamadığımızda, uygulama yine de kapanacak mı?

Middle+
МВидео/эльдорадо
59

Bir çıkmazda kaldığın ve sorunu nasıl çözeceğini bilmediğin bir durumu hatırla

Senior
I-teco
59

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?

Middle
Effective Technologies
59

Hangi ürün metriklerini topluyorsunuz?

Middle+
КуперКупер
59

Defer, goroutine'un içinde değil de dışında olursa ne olur?

Senior
X5 techX5 tech
59

Özgeçmişe göre şu anda [kuruluş] şirketinde çalışıyorsunuz, doğru mu?

Middle
РедСофт
59
/411