Golang
Que bases de dados utilizou no seu trabalho?
Fale sobre o último erro (incidente em produção) — como foi encontrado, como foi resolvido, quem resolveu
Quando a validação for concluída — registamos isso na base de dados ou enviamos para o Kafka?
Se um programa Go está em execução no Windows, o net poller é uma camada sobre o quê?
Que testes escreveram?
Escreva uma função que verifique se uma string é um palíndromo. - Um palíndromo é uma sequência de caracteres que é lida da mesma forma em ambos os sentidos. - Deve verificar apenas os caracteres do alfabeto a-zA-Zа-А-я, sem considerar diferenças de maiúsculas e minúsculas.
Como foi feita a separação do sistema segundo DDD? Como chegou à conclusão de que era necessário dividir em domínios?
É possível chamar explicitamente a limpeza de lixo em Go?
Você trabalhou com DevOps ou apenas desenvolvimento?
Como bloquear uma linha na base de dados para uma atualização atômica?
O serviço lia dados do Kafka, enriquecia-os com dados do Redis — e depois, o que fazia?
Existem outras formas, além dos canais, de organizar o trabalho com goroutines?
O que acontecerá com o limitador de taxa Token Bucket no cenário: 1 pedido no início do segundo, 99 no final, e depois mais 100 no segundo seguinte?
O que é o padrão Outbox?
Como prefere receber as tarefas — decompondo-as ou de forma abstrata?
O tracing já foi feito — o que exatamente você fez?
Como são implementados os operadores condicionais (if) ao nível de assembler por baixo do capô?
a := []int{1} // *T &1111000 len cap fmt.Println(len(a), cap(a)) // 1 1 b := append(a, 2) // *T &1111001 fmt.Println(len(b), cap(b)) // 2 2 b[0] = 0 fmt.Println(a) // [1] fmt.Println(b) // [0 2] c := append(b, 3) // [0 2 3] len = 3, cap = 4 // *T &1111011 ? d := append(c, 4) // [0 2 3 4] // len = 4, cap = 4 // *T &1111011 ? c[0] = 100 fmt.Println(b) // fmt.Println(c) // fmt.Println(d) //
Já trabalhou com tarefas descritas ao nível do negócio sem uma análise detalhada?
O que dizer ao entrevistador (se perguntarem) "Eu usaria um pool de workers com um número fixo de workers, um canal para tarefas e sync.WaitGroup. Os workers farão as requisições, e o timeout e o cancelamento serão controlados através do contexto. Reunirei os resultados em um buffer, protegido por um mutex (ou através de um canal separado)." Agora é a sua vez Escreva o código neste chat. Eu verificarei e darei feedback. Se não souber por onde começar, peça uma dica. Boa sorte!