Golang
Zásady návrhu API
Ako ste zabezpečili konzistentnosť údajov v projekte? Boli prípady odchýlok?
Čo sa stane s aktuálnymi požiadavkami bez Graceful Shutdown pri ukončení procesu?
Prečo teraz v hľadaní? A čo presne pritiahlo na tejto pozícii?
Osobne som testoval, že Postgres preusporadúva stĺpce a optimalizátor mu nezáleží na poradí, v akom napíšete dotaz — sám ho preusporiada tak, ako je potrebné. Čo si o tom myslíš?
Čo sa zobrazí pri spustení programu: 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) // Simulácia práce }() } wg.Wait() fmt.Println(len(counter)) }
Uveďte úrovne izolácie transakcií v Postgres. Prečo sú prísnejšie úrovne izolácie pomalšie? Od ktorej úrovne vzniká konkurencia za údaje?
Povedz mi o Garbage Collector v Go, kako deluje.
Povedz mi o sync.Atomic: na čo sa používa, musel si ho použiť v práci?
Čo vracal vyhľadávací servis?
Na koľkých hostiteľoch bežal servis a koľko inštancií sa spustilo?
Ako ste pracovali s WebSocketom? Na úrovni infraštrukture alebo len kódu? Aké technológie ste použili? Boli problémy s pripojením na úrovni infraštruktúry?
Môžete stručne opísať, z akých služieb systém pozostával a ako medzi sebou komunikovali?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) // pridajte transakciju if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount // chrániť 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 }
Čo píšete v Go — mikroservisy alebo služby?
Aký mechanizmus existuje v Go: dedičstvo alebo kompozícia?
Ako by sme mohli externé spracovanie chýb, ktoré sa v úlohách vyskytujú, ak by sme to chceli urobiť?
Ako pripojiť profiler v Go? Ako robiť profily?
Máte momentálne priority alebo plány rozvoja?
Koľko dát ste mali? Aké je RPS v Kafka?