Conduza uma entrevista de system design
Use um roteiro repetível para transformar um enunciado vago em um projeto que você consegue defender.
- Dividir uma entrevista de 45 minutos em fases claras.
- Separar os requisitos funcionais dos não funcionais.
- Explicar por que cada componente deve corresponder a um requisito.
Uma entrevista de system design começa com um enunciado propositalmente vago, como “Projete um encurtador de URL”. Raramente existe uma única resposta certa. O entrevistador está observando como você lida com a ambiguidade, faz suposições razoáveis, comunica trade-offs e conduz a conversa até um projeto que funcione. Um roteiro repetível evita que você pule direto para caixas e setas.
Um roteiro que você pode reutilizar
- Esclareça os requisitos. Requisitos funcionais dizem o que o sistema faz (“usuários podem criar links curtos”). Requisitos não funcionais dizem quão bem ele precisa fazer isso: escala, latência, disponibilidade, consistência, durabilidade.
- Estime a escala. Requisições por segundo, armazenamento e largura de banda, aproximados - só o suficiente para orientar as decisões.
- Defina a API e o modelo de dados. Os principais endpoints e as principais entidades, com seus padrões de acesso.
- Esboce o projeto de alto nível. Clientes, balanceadores de carga, serviços, bancos de dados, caches e filas.
- Aprofunde. Escolha as partes mais difíceis (muitas vezes para onde o entrevistador leva você) e entre nos detalhes: gargalos, modos de falha, limites de escala.
- Feche. Resuma os trade-offs, o que pode falhar e o que você construiria em seguida.
Uma divisão de 45 minutos, como ponto de partida: requisitos 5 minutos, estimativa 5, API e modelo de dados 5, projeto de alto nível 10, aprofundamento 15, fechamento 5.
A divisão do tempo é um guia, não um roteiro fixo. Alguns entrevistadores pulam a estimativa; outros passam todo o aprofundamento em um único componente. O que importa é que você conduza a conversa, confirme com o entrevistador a cada transição (“Esse projeto de alto nível parece razoável antes de eu aprofundar?”) e se adapte quando ele mudar o rumo.
Prática: classifique os requisitos
Experimente
Até 15 XPFuncional ou não funcional?
Pediram para você projetar um encurtador de URL. Separe o que você descobriu: o que o sistema faz e quão bem ele precisa fazer isso.
“Os usuários podem criar um link curto.”
“Os redirecionamentos terminam em menos de 100 ms no p99.”
“Os links podem expirar.”
“O serviço tem 99,9% de disponibilidade.”
“Não dá para adivinhar os códigos curtos.”
“Os usuários podem escolher um alias personalizado.”
Prática: comece uma entrevista
Experimente
Até 15 XPOs primeiros dez minutos
Os primeiros minutos dão o tom de toda a entrevista. Escolha o que você diria, depois recomece e tente outro caminho.
- EntrevistadorProjete um encurtador de URL.
O que você responde?
Principais conclusões
Esclareça os requisitos antes de desenhar qualquer coisa.
Requisitos funcionais são funcionalidades; requisitos não funcionais são qualidades como escala, latência e disponibilidade.
Conduza a conversa, diga suas suposições e confirme com o entrevistador entre as fases.
Quiz da aula
6 perguntas · aprovação com 5 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…