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?
Proiectează un worker pentru procesarea asincronă a operațiunilor financiare
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?
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ă?
Spune-mi despre procese și metodologie
Ce este defer în Go? Ce va afișa codul? Cum să faci ca să afișeze 4,5,6 în loc de 1,2,3?
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?
Ce arată comanda EXPLAIN și ce date furnizează?
Spune-mi mai multe despre sistemul de puncte — ce se întâmpla la nivelul superior?
Cum se conectează un profiler în Go? Cum se realizează profile?
Ai în prezent priorități sau planuri de dezvoltare?
Există vreo diferență în timpul de execuție dacă comparăm aceeași funcție pe un array sortat și unul nesortat? Ce este predicția ramurilor și pipeline-ul procesorului?