O que é uma string em Go? Qual é a sua estrutura e características?
Golang
Fale sobre a nova implementação de map em Go (Swiss Tables). Quais os métodos de resolução de colisões existentes?
// Precisa de modificar a função ap para que o 6 esteja incluído na fatia exibida e que a fatia esteja ordenada // Importante - a função ap não devolve nada package main import ( "fmt" ) func main() { v := []int{3, 4, 1, 2, 5} ap(v) fmt.Println(v) // o resultado esperado deve ser - [3 4 1 2 5 6] } func ap(arr []int) { arr = append(arr, 10) arr[5] = 6 }
O que é uma goroutine? Em que consiste a sua leveza?
Que métodos de otimização de consultas a bases de dados utilizou? O que observou no EXPLAIN ANALYZE e no plano de consulta?
Que tipos de dados em Go podem aceitar o valor nil por padrão?
Como ocorre a transmissão de dados através de um canal não bufferizado? Ele tem um buffer?
Pergunta geral: preparação para a entrevista e fontes de perguntas
O que é a troca de contexto das goroutines? Quem a realiza?
De onde vem a memória para as variáveis? O que é um alocador de memória?
O que bloqueia o mutex num canal: uma goroutine ou uma área de memória?
O que é análise de escape? Como ela determina onde a variável será colocada (pilha ou heap)?
O que acontece ao fechar um canal não inicializado?
Para que serve um canal numa transmissão sem buffer, se os dados vão de pilha em pilha? Qual é o papel do canal?
Como reduzir a frequência de chamadas do garbage collector? Quais métodos de otimização conhece?
Que tarefas realizou com Kafka? Como configurou as garantias de entrega (exactly-once)?
Fale sobre sua experiência de trabalho e sua pilha tecnológica
Como funciona um mutex num canal com buffer? O que ele protege?
Que tipo de multitarefa o agendador Go utiliza? Quais são os dois tipos de multitarefa existentes?
Qual é a vantagem das Swiss Tables em comparação com a implementação antiga de hash table? Quantos bits ocupa o código hash na implementação antiga e na nova?