Golang
Há uma tabela grande, as consultas dela são lentas. O que você faria?
Tem experiência em suporte ou desenvolvimento de sistemas distribuídos?
Fala sobre a tua experiência de trabalho e o que estás a fazer.
Que família de agendadores é usada no Go?
Com que linguagens de programação trabalhou antes do Go e quando começou a programar?
Fale sobre os índices na base de dados e quais são as desvantagens de ter muitos deles.
Fala sobre o contexto em Go: para que é usado, como funciona o cancelamento?
Vim do Flutter e mudei para Go — porquê?
O que é mais importante para si no trabalho: tarefas formalizadas e claras numa grande empresa ou um alto grau de autonomia e criatividade numa pequena empresa? Que tarefas lhe interessam mais: aquelas com um alto grau de incerteza ou a escrita linear de código?
func (r *OrderRepository) GetActiveOrderIDs(ctx context.Context, offset, limit int) ([]uint32, error) { var ( res []uint32 args []interface{} ) query := `SELECT id FROM "order" WHERE is_terminated = false LIMIT $1 OFFSET $2;` args = append(args, limit, offset) rows, err := r.slave.Query(ctx, query, args...) if err != nil { return nil, err } for rows.Next() { var orderID uint32 if err = rows.Scan(&orderID); err != nil { return nil, err } res = append(res, orderID) } return res, nil }
Crie um procedimento e faça um SELECT dele.
Fala sobre canais em Go: o que são, o que está dentro, o que acontecerá com um canal com buffer de 5 elementos ao gravar 5 valores?
Projetar um sistema de mensagens escalável com suporte para 150 milhões de utilizadores, 75 milhões de DAU, 225 milhões de MAU, 1.2M leituras / 300k escritas QPS, 5 milhões de utilizadores simultâneos, 60 PB de novos dados por ano, crescimento de 30% ao ano, P99 <200 ms para leitura, <300 ms para escrita, SLA 99.95%. CONTEXT É necessário projetar um sistema de mensagens distribuído, semelhante ao WhatsApp, que suporte chats 1:1 e em grupo, garanta a entrega de mensagens, exiba estados online dos utilizadores e transmita ficheiros multimédia (fotos, vídeos, áudio). O sistema deve garantir alta disponibilidade e baixa latência, suportar alto paralelismo e escalar globalmente. REQUISITOS FUNCIONAIS - Suporte a chats pessoais (1:1) e em grupo com possibilidade de adicionar/remover participantes - Envio e receção de mensagens de texto e ficheiros multimédia Requisitos não funcionais: - Sem implementação explícita de mecanismo de encriptação end-to-end ao nível de serviços ou clientes, além de uma anotação geral. - Ausência de descrição explícita de sharding e replicação de bases de dados por chat_id ou user_id para escalabilidade e tolerância a falhas. - Sem componente ou mecanismo explícito para processamento de sincronização offline de mensagens e recibos de entrega. - Não está claro como é feita a balanceamento de carga entre bases de dados e serviços, especialmente em picos de carga. **Pontos críticos a serem considerados:** (A arquitetura mostrada na diagrama inclui Load Balancer, API Gateway, Message Queue, Service, Cache, Database, Object Storage e CDN)
package main import ( "fmt" "time" ) func main() { ch := make(chan int) go func() { ch <- 1 }() time.Sleep(time.Millisecond * 500) close(ch) for i := range ch { fmt.Println(i) } time.Sleep(time.Millisecond * 100) }
Qual é a diferença entre uma imagem e um contêiner?
Tens alguma pergunta para mim?
Qual é a diferença entre uma função e um método em Go? Qual é a diferença técnica em termos de gestão de memória?
O que será importante para ti ao escolher uma nova empresa?
Descreva o algoritmo para resolver o problema de contar substrings com todos os caracteres únicos
O que é o padrão Outbox e como é implementado?