Qual é a diferença entre um índice B-tree e um índice hash no PostgreSQL? Que outros índices conheces?
Golang
Como implementar tecnicamente a especificação OpenAPI? O que é Swagger?
Fala sobre Docker: princípios básicos de funcionamento, construções multistage, comandos CLI
Que linters usas em Go e onde os executas?
// tarefa 2 // 1. OpenAPI + gRPC // (YAML) // info: // title: API de Livros // version: .. // paths: // /books: // get: // responses: // "200"
O que sabes sobre o pacote runtime? Quais métodos usaste?
Que outras primitivas de sincronização, além de mutex e WaitGroup, conheces? Casos de uso?
O que sabes sobre Transactional Outbox e Saga? Conta um caso prático.
// mkdir projeto // cd projeto // go mod init projeto // touch main.go // vim main.go // --criar código-- package main import "syscall" // func main() { // msg := []byte("Olá, Mundo!\n") // syscall.Write(1, msg) // } // --código finalizado-- // go build -o app // ./app // go test ./... // git nint // git add . // git commit -m "init"
Fale sobre o padrão Transactional Outbox — o que é e para que é usado?
Quais são os principais artefatos do DDD? De que partes ele é composto?
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
O que sabes sobre o agendador de goroutines em Go?
Fale sobre a arquitetura do projeto atual
Fala-me sobre o sistema de monitorização: recolhedores de métricas, alertas
Qual é a diferença entre Clean Architecture e DDD?
Qual é a diferença entre /books e /books/{id}?
Por que usaste a palavra-chave defer?
Como pode terminar uma goroutine? Quais são as formas?
func collectRTT(ctx context.Context, urls []string) (map[string]time.Duration, error) { pingMap := make(map[string]time.Duration, len(urls)) var mu sync.Mutex var wg sync.WaitGroup errCh := make(chan error, 1) for _, url := range urls { wg.Add(1) go func(u string) { defer wg.Done() dur, err := rtt(ctx, u) if err != nil { select { case errCh <- fmt.Errorf("falha ao obter RTT %s, %w", u, err): default: } return } mu.Lock() pingMap[u] = dur mu.Unlock() }(url) } wg.Wait() close(errCh) if err := <-errCh; err != nil { return nil, err } return pingMap, nil }