Guia prático de entrevista de System Design
System Design significa planear um sistema de software grande — como todas as peças se encaixam para atender muitos utilizadores. Nesta aula praticamos, passo a passo, como abordar uma pergunta de entrevista sobre o tema. Vamos aprender a definir requisitos (o que o sistema precisa fazer), escopo (o
System Design é como planear uma cidade inteira: ruas que carregam o tráfego, depósitos que guardam coisas, semáforos que mantêm o fluxo organizado, e equipas de manutenção que resolvem problemas — tudo para que a cidade continue funcionando bem mesmo no horário de pico, quando todo mundo está na rua ao mesmo tempo.
- Requisitos e escopo
- A habilidade central desta aula: antes de projetar um sistema, você esclarece o que ele precisa fazer (requisitos), o que está e o que não está incluído (escopo), quais premissas você está a assumir, e como estruturar uma resposta clara. É como anotar o pedido completo em um restaurante antes de começar a cozinhar.
- Trade-off
- Uma escolha consciente entre duas opções, em que cada uma tem uma vantagem mas também um preço. Não existe resposta perfeita — você escolhe o que se encaixa e explica ao entrevistador o que ganha e o que abre mão. Como escolher entre uma rota rápida e cara, e uma barata e lenta.
- Métrica operacional
- Um número que você pode medir para saber se uma decisão realmente funciona quando o sistema está no ar e a atender utilizadores reais (produção). Por exemplo: latency (quanto tempo leva para uma resposta voltar), error rate (a proporção de requisições que falham), queue lag (quantas tarefas estão a esperar na fila), cache hit ratio (com que frequência encontramos a resposta pronta em um armazenamento temporário rápido), e mais.