Ar kādām bibliotēkām rakstās metrikas Go?
Golang
Kādas ir metrikas? Ar kādiem rīkiem mēs rakstīsim šīs metrikas?
Kāda ir šī koda rakstīšanas jēga? Kādu biznesa tehnisko uzdevumu tas risina?
// Uzdevums 4 // Tipiskā CRUD pakalpojumā - kādā brīdī dažas metodes sāka darboties lēni un pakalpojums sāka laist. // Pakalpojums sastāv no: // * Application Load Balancer (L7) - saņem ienākošos pieprasījumus un TLS pabeigšanu // * Backend (rest, java/kotlin vai golang) - apstrādā ienākošos pieprasījumus un biznesa loģiku // * Database (postgres) - glabā un apstrādā SQL pieprasījumus // Kā pareizi rīkoties, lai saprastu problēmu cēloni un izstrādātu risinājumus situācijas uzlabošanai?
// Uzdevums 3 // Aprakstiet, kādu uzdevumu šis kods risina // Kādas problēmas ir šajā risinājumā? // Kā jūs pārveidotu šo kodu? var c int type Trace struct { // Daži lauki šeit } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 } }
// Uzdevums 3 // Aprakstiet, kādu uzdevumu šis kods risina // Kādas problēmas ir šajā risinājumā? // Kā jūs pārrakstītu šo kodu?
Ko darījāt darbā?
Kā darbojas sadalīšana PostgreSQL iekšienē?
Ko darīt ar datu bāzi un slodzes balansētāju, ja ir veiktspējas problēmas?
Kādā grafikā jūs redzējāt problēmu, izmantojot pprof?
Kā piekļūt pprof profilētājam uz ražošanas servera?
Kādus indeksus izmantojāt darbā? Ko praktiski piemērojāt? Wildberries?
Ko darām ar metriku pēc to savākšanas? Kāds ir rīcības plāns?
Kādus indeksus izmanto PostgreSQL?
// Jautājums 3 // Aprakstiet, kādu uzdevumu šis kods risina // Kādas problēmas ir šajā risinājumā? // Kā jūs pārveidotu šo kodu? var c int var mu sync.RWMutex type Trace struct { // Daži lauki šeit } 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 } }
Ko darīsiet, ja jūsu komandā katru dienu mainās prioritātes un parādās jaunas steidzamas uzdevumi?
Kādi ir problēmas ar globālo skaitītāju kodā? Kā to labot?
Kā padarīt Increaser universālu — ne saistītu ar skaitli 100?
Vai vari pastāstīt, kā tu projektēji un īstenoji REST un gRPC API platformas iekšējiem un ārējiem pakalpojumiem?
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] }