Aké knižnice sa používajú na písanie metrík v Go?
Golang
Na čo je tento kód napísaný? Aký obchodno-technický problém rieši?
Aké metriky? Akými nástrojmi budeme tieto metriky zapisovať?
// Úloha 4 // V "typickom" CRUD servise - v určitom momente niektoré metódy začali fungovať pomaly a služba začala timeoutovať. // Služba pozostáva z: // * Application Load Balancer (L7) - príjem prichádzajúcich požiadaviek a ukončenie TLS // * Backend (rest, java/kotlin alebo golang) - spracovanie prichádzajúcich požiadaviek a obchodná logika // * Databáza (postgres) - ukladanie a spracovanie SQL dopytov // Ako správne postupovať, aby ste pochopili príčinu problémov a vyvinuli riešenia na zlepšenie situácie?
// Úloha 3 // Opíšte, akú úlohu rieši tento kód // Aké problémy sú v tomto riešení? // Ako by ste prepisali tento kód?
Čo si robil v práci?
// Úloha 3 // Opíšte, akú úlohu tento kód rieši // Aké problémy sú v tomto riešení? // Ako by ste tento kód prepísali? var c int type Trace struct { // Niektoré polia tu } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 } }
Na aké indexy ste sa odvolávali v práci? Čo ste v praxi používali? Na Wildberries?
Čo urobíte, keď sa v vašom tíme každý deň menia priority a objavujú sa nové naliehavé úlohy?
Čo robiť s databázou a load balancerom pri problémoch s výkonom?
Ako funguje partíciovanie v PostgreSQL pod kapotou?
Aké indexy používate v PostgreSQL?
Aké problémy sú v kóde s globálnym čítačom? Ako ich opraviť?
Ako sa dostať k profileru pprof na produkčnom serveri?
Na ktorom grafe ste videli problém pri používaní pprof?
Ako spraviť Increaser univerzálnym — nie viazaným na číslo 100?
// Otázka 3 // Opíšte, akú úlohu tento kód rieši // Aké problémy sú v tomto riešení? // Ako by ste tento kód prepísali? var c int var mu sync.RWMutex type Trace struct { // Niektoré polia tu } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { mu.Lock() defer mu.Unlock() c++ if c == 100 { go func() { sender.Send(tr) }() c = 0 } }
func normalize2(str []rune) []rune { result := str[:0] for val := range str { if val != ' ' { result = append(re) } } l, r := 0, 0 isSpace := false for i := 0, i < len(str); i++ { val := string(str[i]) if val == " " { if isSpace { continue } else { str[r] = val r++ isSpace = true } } else { str[r] = val r++ isSpace = false } } return str[:r] }
Môže sa Increaser stať implementáciou Sendera? V čom sa logicky líši Increaser od Sender?
Môžete opísať, ako ste navrhli a implementovali REST a gRPC API pre interné a externé služby platformy?