Golang
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount 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 }
Formalizace požadavků na systém matchmakingu: jak hledat zápas, co dělat, pokud soupeř není nalezen, jak validovat tahy, je potřeba časovač, jak aktualizovat hodnocení, je potřeba historie zápasů, co dělat při odpojení?
Jak byla vaše práce s Kafka organizována? Jak jste používali konzumenty, konzument-groups?
Měla by se v Redis objevit nová nomenklatura (nový produkt)?
Co je to zarovnání dat v Go?
Jak funguje plánovač?
Jakou dokumentaci píšete při vývoji nové služby?
Pokud jeden ze služeb, které používáš, vrátí chybu, co budeš dělat a jak to budeš řešit, pokud máš kanál?
Jaké úkoly jste plnili s databázemi?
Co je sharding a k čemu se používá? Jak vybrat klíč sharding pro tabulky taxi služby (řidiči, zákazníci, objednávky)?
Čím se liší materializovaný pohled od běžného pohledu?
Jaký příkaz se používá k vložení hodnoty do tabulky?
Jaké metody optimalizace dotazů do databází jste použili? Co jste sledovali v EXPLAIN ANALYZE a v plánu dotazu?
Proč je potřeba kombinace Load Balancer + API Gateway? Jakou roli hraje každá složka?
Jak je zajištěna konzistence dat v projektu?
Čím se liší pole od slice v Go?
Jak funguje sync.Mutex na pozadí?
S jakými metodologiemi vývoje jste pracovali? Které jsou nejpohodlnější?
Proč byla zvolena partitionace podle stavu, když historicky je více propuštěných než aktivních?
Museli jste někdy sám přidávat úkoly do backlogu, například když jste viděli selhávající test nebo zastaralou knihovnu?