Sobes.tech

Golang

O que são goroutines?

Junior
444

O que é uma condição de corrida e como combatê-la em Go?

Middle
345

Qual é a diferença entre a aplicação e as características da linguagem de programação Go em comparação com Python?

Junior — Middle
304

Qual é o papel e a finalidade do contexto na linguagem de programação Go?

Junior — Middle
295

Como é que se podem gerir as goroutines e todas elas são executadas num único thread?

Middle
277

Qual era a tua equipa, quantas pessoas?

Senior
275

O que significa a coluna load average na ferramenta top?

Middle
274

O que é o modelo GMP do agendador Go?

Middle
273

Por que é necessário o TCP se podemos simplesmente reenviar os pacotes IP na ausência de resposta?

Middle
255

Fale sobre a notação assintótica Big O: o que é, quais os tipos existem e para que são usados

Middle
251

Como é implementado o modelo de concorrência na linguagem Golang?

Junior — Middle
247

Que métodos e abordagens você usa para verificar a funcionalidade do seu código?

Junior — Middle
245

O que pode contar sobre a sua experiência na integração de diferentes sistemas ou serviços?

Junior — Middle
236

Como usar estruturas embutidas para simular herança em Go?

Middle
235

Qual é a diferença entre um canal com buffer e um canal sem buffer?

Middle
228

// Existe uma interface Backend com o método Execute // É necessário escrever um balanceador de carga // O balanceador satisfaz a interface Backend // A tarefa do balanceador é aceitar uma requisição e delegá-la a um dos backends disponíveis // O balanceador contém em si uma coleção de backends // Ao executar uma requisição, o balanceador escolhe um dos backends de acordo com algum algoritmo // // Algoritmo Least Connection, verificação de saúde e recuperação automática, segurança thread-safe via atomic, transmissão de contexto para cancelamento, limiar de erros para desconectar um backend // Request representa a requisição de entrada para o Backend. type Request struct { // Payload – dados arbitrários da requisição. Payload []byte } // Response representa a resposta do Backend. type Response struct { // Payload – dados arbitrários da resposta. Payload []byte } // Backend – interface que define o método para executar uma requisição type Backend interface { Execute(ctx context.Context, req Request) (Response, error) } type Balancer struct { backends []Backend } func NewBalancer(backends []Backend) *Balancer { return &Balancer{backends: backends} } func (b *Balancer) Execute(ctx context.Context, req Request) (Response, error) { // todo: implementar lógica do balanceador return Response{}, nil } type TestBackend struct { }

Senior
226
/12