Golang
Opowiedz mi o sync.Atomic: do czego służy, czy musiałeś go używać w pracy?
Jak rozwiązać, jeśli filtr o wysokim priorytecie jest zbyt szeroki i pochłania cały budżet?
Co zwracała usługa wyszukiwania?
Na ilu hostach działała usługa i ile instancji było uruchomionych?
Jak pochodna jest związana z polem?
Jak pracowałeś z WebSocket? Na poziomie konfiguracji infrastruktury czy tylko kod? Jakie technologie używałeś? Czy wystąpiły problemy z połączeniem na poziomie infrastruktury?
Jak zorganizowano miękką rezerwację sald (soft hold) z końcową weryfikacją przy potwierdzeniu rezerwacji?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) // dodać transakcję if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount // zabezpieczyć 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 }
W jakim kierunku chcesz się rozwijać — w stronę techniczną czy bardziej w zarządzanie?
Opowiedz więcej o systemie punktów — co się działo na najwyższym poziomie?
Który mechanizm jest w Go: dziedziczenie czy kompozycja?
Jak podłączyć profilator w Go? Jak robić profile?
Czy porównanie tej samej funkcji na posortowanej i nieposortowanej tablicy będzie miało różnicę w czasie wykonania? Czym jest przewidywanie gałęzi i potok procesora?
Czy przeprowadzano testy obciążeniowe? Jakie było obciążenie?
Jakie komponenty staną się wąskim gardłem podczas skalowania z 1000 do 10000-20000 RPS?
Jak obliczano RPS — po prostu sumowałeś obciążenie wszystkich dźwigni, czy jak?
Co robiłeś z nieprawidłowymi wiadomościami po ręcznej obróbce? Jak to wyglądało technicznie?
Czy w usługach była duża logika, czy po prostu przekazywały dane?
Czym różni się DELETE od TRUNCATE?
Czy teraz pracujesz?