Sobes.tech

Golang

Con quali librerie si scrivono metriche in Go?

275

Quali metriche? Con quali strumenti registreremo queste metriche?

246

A cosa serve questo codice? Quale problema tecnico di business risolve?

231

// Compito 4 // In un servizio CRUD "tipico", a un certo punto alcuni metodi hanno iniziato a funzionare lentamente e il servizio ha iniziato a timeout. // Il servizio è composto da: // * Load Balancer dell'Applicazione (L7) - ricezione delle richieste in ingresso e terminazione TLS // * Backend (rest, java/kotlin o golang) - elaborazione delle richieste e logica di business // * Database (postgres) - memorizzazione ed elaborazione di query SQL // Come agire correttamente per capire la causa dei problemi e sviluppare soluzioni per migliorare la situazione?

207

// Compito 3 // Descrivere quale compito risolve questo codice // Quali problemi ci sono in questa soluzione? // Come riscriveresti questo codice?

180

Come funziona la partizione in PostgreSQL sotto il cofano?

164

Cosa fare con il database e il load balancer in caso di problemi di prestazioni?

162

In quale grafico hai visto il problema durante l'uso di pprof?

160

Come accedere al profiler pprof sul server di produzione?

159

// Compito 3 // Descrivere quale compito risolve questo codice // Quali problemi ci sono in questa soluzione? // Come riscriveresti questo codice? var c int type Trace struct { // Alcuni campi qui } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 } }

153

Quali indici hai usato al lavoro? Cosa hai applicato nella pratica? Su Wildberries?

148

Cosa farai quando le priorità nel tuo team cambiano ogni giorno e compaiono nuovi compiti urgenti?

145

Cosa facciamo con le metriche dopo la raccolta? Qual è il piano d'azione?

141

Quali problemi ci sono nel codice con il contatore globale? Come correggerlo?

141

Come rendere Increaser universale — non legato al numero 100?

136

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

130

// Problema 3 // Descrivi quale compito risolve questo codice // Quali problemi ci sono in questa soluzione? // Come riscriveresti questo codice? var c int var mu sync.RWMutex type Trace struct { // Alcuni campi qui } 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 } }

128

Puoi raccontare come hai progettato e implementato le API REST e gRPC per i servizi interni ed esterni della piattaforma?

123
/2