Sobes.tech

Golang

S jakými knihovnami se v Go píší metriky?

211

Na co je tento kód napsán? Jaký obchodně-technický problém řeší?

206

Jaké metriky? Jakými nástroji budeme tyto metriky zapisovat?

188

// Úkol 4 // U "typickém" CRUD servisu - v určitém okamžiku některé metody začaly fungovat pomalu a služba začala timeoutovat. // Služba se skládá z: // * Application Load Balancer (L7) - příjem příchozích požadavků a ukončení TLS // * Backend (rest, java/kotlin nebo golang) - zpracování příchozích požadavků a obchodní logika // * Databáze (postgres) - ukládání a zpracování SQL dotazů // Jak správně postupovat, abyste pochopili příčinu problémů a vyvinuli řešení ke zlepšení situace?

177

// Úloha 3 // Popište, jaký úkol tento kód řeší // Jaké problémy jsou v tomto řešení? // Jak byste přepsali tento kód?

165

// Úloha 3 // Popište, jaký úkol tento kód řeší // Jaké problémy jsou v tomto řešení? // Jak byste tento kód přepsali? var c int type Trace struct { // Některá pole zde } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 } }

143

Na jaké indexy jste se v práci odkazoval? Co jste v praxi používal? Na Wildberries?

139

Co uděláte, když se ve vašem týmu každý den mění priority a objevují se nové naléhavé úkoly?

136

Co dělat s databází a load balancerem při problémech s výkonem?

135

Jak funguje rozdělení v PostgreSQL pod kapotou?

135

Jaké indexy používáš v PostgreSQL?

132

Jaké problémy jsou v kódu s globálním čítačem? Jak je opravit?

129

Jak se dostat k profileru pprof na produkčním serveru?

129

Na jakém grafu jste viděli problém při používání pprof?

128

Jak udělat Increaser univerzálním — nezávislým na čísle 100?

126

// Otázka 3 // Popište, jaký úkol tento kód řeší // Jaké problémy jsou v tomto řešení? // Jak byste tento kód přepsali? var c int var mu sync.RWMutex type Trace struct { // Některá pole zde } 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 } }

120

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] }

114

Může se Increaser stát implementací Sender? Čím se logicky liší Increaser od Senderu?

109

Můžeš popsat, jak jsi navrhl a implementoval REST a gRPC API pro interní a externí služby platformy?

108
/2