Golang
Por qual motivo estás a considerar a mudança? O projeto passa a suporte ou há outras razões?
type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex N int K time.Duration } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { if len(b.backends) == 0 { return nil, fmt.Errorf("Número de backends no slice 0") } b.mu.Lock() index := b.index for b.backends[index].banned { b.index = (b.index + 1) % len(b.backends) index = b.index } b.index = (b.index + 1) % len(b.backends) b.mu.Unlock() backend := b.backends[index] resp, err := backend.Backend.Invoke(ctx, req) if err != nil && backend.countErrors < b.N { backend.mu.Lock() backend.countErrors += 1 if backend.countErrors == b.N { backend.banned = true go func() { time.Sleep(b.K) backend.mu.Lock() defer backend.mu.Unlock() backend.banned = false backend.countErrors = 0 }() } backend.mu.Unlock() } return resp, err } // addrs contêm os endereços de todas as instâncias balanceadas func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImplF, len(addrs)) for _, addr := range addrs { implF := BackendImplF{ Backend: NewBackend(addr), } backends = append(backends, &implF) } }
Qual metodologia utiliza: Scrum, Kanban ou uma mistura?
Existiram tarefas que você realmente não quis fazer? Como lidou com tarefas desagradáveis?
Qual é a diferença entre um canal bufferizado e não bufferizado em Go?
Como funcionam as operações atômicas?
Como se chama esta métrica que relaciona cliques e impressões?
O que é um índice B-tree?
Erro: # command-line-arguments 2486763/main.go:34:9: indefinido: sync 2486763/main.go:35:9: indefinido: sync 2486763/main.go:45:32: indefinido: fmt.Errorf
Que dados não devem ser colocados em cache?
pacote principal importar "tempo" func trabalhador() canal de int { ch := make(chan int) go func() { tempo.Sleep(3 * tempo.Segundo) ch <- 42 }() return ch } func main() { timeStart := time.Now() _, _ = <-trabalhador(), <-trabalhador() println(int(time.Since(timeStart).Seconds())) // }
Fale sobre o pool de objetos: o que é e como funciona?
O modelo com tags JSON (por exemplo, RegisterUserRequest) é um modelo de domínio? Como separar corretamente DTO e entidade de domínio?
Que bases de dados e brokers de mensagens você usa na sua stack?
Pode usar um índice composto (A, B, C) ao filtrar apenas pela coluna B?
Fala-me sobre CTE (Expressão de Tabela Comum).
Escreva uma consulta que selecione os nomes dos funcionários que conhecem SQL e pelo menos uma outra linguagem. Considere que um funcionário é um nome único.
Qual é a sintaxe das transações em Go/SQL?
Quais são os planos para o próximo ano — o que aprender, dominar?
Por que saiu da [empresa]? Qual foi a motivação?