Sobes.tech

Golang

Com que bibliotecas se escrevem métricas em Go?

253

Que métricas? Com que ferramentas vamos a registrar essas métricas?

224

Para que é que este código foi escrito? Que problema técnico de negócio resolve?

219

// Tarefa 4 // Num serviço CRUD "típico", em algum momento, alguns métodos começaram a funcionar lentamente e o serviço começou a dar timeout. // O serviço consiste em: // * Balanceador de carga de aplicação (L7) - recepção de pedidos entrantes e terminação TLS // * Backend (rest, java/kotlin ou golang) - processamento de pedidos e lógica de negócio // * Base de dados (postgres) - armazenamento e processamento de consultas SQL // Como agir corretamente para entender a causa dos problemas e desenvolver soluções para melhorar a situação?

206

// Tarefa 3 // Descreva qual tarefa este código resolve // Quais problemas existem nesta solução? // Como você reescreveria este código?

171

O que fazer com a base de dados e o load balancer em caso de problemas de desempenho?

160

Como aceder ao perfilador pprof no servidor de produção?

158

Como funciona a partição no PostgreSQL por baixo do capô?

157

// Tarefa 3 // Descrever qual tarefa este código resolve // Quais problemas existem nesta solução? // Como reescreveria este código? var c int type Trace struct { // Alguns campos aqui } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 } }

150

Que índices utilizou no trabalho? O que aplicou na prática? Na Wildberries?

145

Em qual gráfico você viu o problema ao usar pprof?

139

O que fará quando as prioridades na sua equipa mudarem todos os dias e surgirem novas tarefas urgentes?

138

Como tornar o Increaser universal — não ligado ao número 100?

135

Quais problemas existem no código com o contador global? Como corrigir?

132

// Questão 3 // Descrever qual a tarefa que este código resolve // Quais os problemas nesta solução? // Como reescreveria este código? var c int var mu sync.RWMutex type Trace struct { // Alguns campos aqui } 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 } }

126

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

122

Podes contar como projetaste e implementaste a API REST e gRPC para os serviços internos e externos da plataforma?

119

O Increaser pode tornar-se uma implementação do Sender? Em que difere logicamente o Increaser do Sender?

118
/2