Golang
Ce format de lucru iei în considerare?
Ce se întâmplă cu solicitările actuale fără Graceful Shutdown la încheierea procesului?
Poți să dai ultimul exemplu de sarcină de care te-ai bucurat?
Cum a fost stabilit limitul de rată? Pe ce s-a bazat și unde a fost implementat? Ce s-a folosit tehnic?
Cum să scrii cereri HTTP paralele în Golang?
Personal, am testat că Postgres reordonează coloanele și optimizatorul nu contează în ce ordine scrii interogarea — el o va restructura după cum este necesar. Ce părere ai?
Ce va fi afișat la rularea programului: func main() { counter := make([]int, 0, 1000) var wg sync.WaitGroup for i := 0; i < 1000; i++ { wg.Add(1) go func() { defer wg.Done() counter = append(counter, i) time.Sleep(10 * time.Millisecond) // Simulare de lucru }() } wg.Wait() fmt.Println(len(counter)) }
Enumerați nivelurile de izolare ale tranzacțiilor în Postgres. De ce nivelurile de izolare mai stricte funcționează mai lent? Începând cu ce nivel apare concurența pentru date?
Vorbește-mi despre Garbage Collector-ul în Go, cum funcționează.
Unde locuiți în prezent și ce format de lucru luați în considerare?
Ce ai îmbunătățit la tine în ultimele șase luni până la un an? Ce ai învățat în afara muncii?
Cum influențează indicii citirea și scrierea — accelerează sau încetinesc?
Vorbește-mi despre sync.Atomic: pentru ce se folosește, a fost nevoie să-l folosești la muncă?
Cum se rezolvă dacă un filtru cu prioritate mare este prea larg și consumă întreg bugetul?
Ce returna serviciul de căutare?
Pe câți hosts a funcționat serviciul și câte instanțe au fost lansate?
Cum ai lucrat cu WebSocket? La nivelul infrastructurii sau doar cod? Ce tehnologii ai folosit? Au fost probleme de conectare la nivelul infrastructurii?
Cum a fost organizată reținerea soft hold a soldurilor cu verificarea finală la confirmarea rezervării?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) // adăugați tranzacție if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount // protejați SELECT FOR UPDATE partner.Hold -= amount partner.Balance += amount if err := r.save(advertiser); err != nil { return err } if err := r.save(partner); err != nil { return err } r.totalPayouts++ return nil }
În ce direcție vrei să te dezvolți — în partea tehnică sau mai mult în management?