Sobes.tech

Golang

Qual foi o maior volume de dados com que trabalhou e quantas solicitações de leitura/gravação houve?

158

Podes contar brevemente a tua experiência? Qual é a principal linguagem de programação que usas? Quantos anos de experiência tens em desenvolvimento industrial?

157

/* Existe uma aplicação com arquitetura de microserviços. Um microserviço pode ser abstraído através de uma interface Backend. Para aceder a uma instância de microserviço, pode usar o tipo BackendImpl, que já está implementado. Cada microserviço tem várias dezenas de instâncias em execução, cada uma acessível pelo seu próprio endereço addr. No entanto, as instâncias individuais do microserviço não são confiáveis: podem falhar, estar inacessíveis ou sobrecarregadas. Por isso, precisa implementar um tipo Balancer, que também implementa a interface Backend e realiza balanceamento de carga do lado do cliente entre as instâncias do microserviço, escolhendo a cada vez **a instância menos carregada**.

157

Por que decidiram usar LLM em vez de apenas lógica no código?

157

Em que o JWT se diferencia de armazenar sessões no servidor?

156

func Pipe(p Produtor, c Consumidor) error { // TODO buf := make([]any, 0, MaxItems) cookies := make([]int, 0) flush := func() error { if len(buf) == 0 { return nil } if err := c.Process(buf); err != nil { return err } for _, cookie := range cookies { if err := p.Commit(cookie); err != nil { return err } } buf = buf[:0] cookies = cookies[:0] return nil } for { items, cookie, err := p.Next() if err != nil { flush() return err }

153

Quanto memória é inicialmente alocada para o buffer?

153

Qual é a principal linguagem de programação que usas? Usas C++ ou Python?

153

Por que a chamada a backend.Invoke foi feita fora do mutex?

152

O balanceador deve entender que o backend responde com erros, e ao ultrapassar um limite durante um determinado tempo, excluí-lo do balanceamento (Circuit Breaker)

150

O que acontecerá se o Consumer.Process retornar um erro — os dados do buffer não serão perdidos?

150

Dada uma string S, é necessário contar o número de substrings nesta string que contêm todos os caracteres desta string pelo menos uma vez. Exemplos: "abca" -> 3 // abc, bca, abca "aa" -> 3 // aa, a, a, "ffg" -> 2 // ffg, fg

149

Quais linguagens de programação, além de Go, você usa para si ou no desenvolvimento comercial?

147

Qual é o número máximo de solicitações por segundo que você atualmente suporta sob alta carga?

147

Esta é uma cadeia de caracteres. Encontrar a quantidade de pares de índices i e j (i <= j), entre os quais, inclusive, não há caracteres repetidos. Para a cadeia "aba" a resposta é 5: [0, 0] ("a") [0, 1] ("ab") [1, 1] ("b") [1, 2] ("ba") [2, 2] ("a") Para a cadeia "acbb" a resposta é ?:

145

Quais critérios você usará para escolher um empregador? O que é mais importante para você?

143

Qual é a linguagem de programação com a qual você trabalha? Por que surgiram dificuldades com a sintaxe?

143

Está disposto a mudar para outra linguagem de programação, se necessário ou por desejo pessoal?

142

// TODO backends []*BackendImpl index int mu sync.Mutex func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { b.mu.Lock() index := b.index if b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) b.mu.Lock() defer b.mu.Unlock() b.index += 1 return resp, err } // addr contém ip:port de uma instância específica func NewBackend(addr string) *BackendImpl // addrs contêm os endereços de todas as instâncias balanceadas func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs)) for _, addr := range addrs { backends = append(backends, NewBackend(addr)) } return &Balancer{ backends: backends, } }

142
/11