Etapa 1: Entenda o Problema e Estabeleça o Escopo do Design (5 minutos)
Nessa etapa, é importante perguntar questionamentos para clarificar os requisitos e entender completamente o problema. Além disso, é necessário identificar as características a serem construídas e priorizá-las, além de clarificar os requisitos não funcionais, como escalabilidade e performance. É também útil fazer cálculos rápidos para estimar a escala do sistema.
Etapa 2: Proponha um Design de Alto Nível e obtenha Concordância (20 minutos)
Nessa etapa, você deve desenvolver um design de alto nível de qualidade e chegar a um acordo com o entrevistador. Comece definindo parâmetros de entrada e saída de APIs, estabelecendo um contrato entre os usuários finais e os sistemas back-end. Além disso, crie um diagrama de design de alto nível, incluindo balanceadores de carga, serviços e camadas de armazenamento de dados.
Etapa 3: Design Deep Dive (15 minutos)
Nessa etapa, você mergulha mais profundamente no design, focando nos componentes-chave e nos trade-offs. Discuta as escolhas tecnológicas e as decisões de arquitetura, além de abordar a escalabilidade, o desempenho e outros requisitos não funcionais.
Etapa 4: Conclusão (5 minutos)
Nessa etapa, você resume o design e destaca os componentes-chave. Além disso, aborda quaisquer perguntas ou preocupações restantes do entrevistador.
Além disso, é importante seguir algumas diretrizes específicas para a seção de design deep dive, como:
* Articule claramente o problema
* Desenvolva múltiplas soluções
* Discuta os trade-offs para cada solução
* Use números para respaldar o design
* Escolha uma solução e discuta-a com o entrevistador
Lembre-se de priorizar os dois ou três principais problemas e evitar se aprofundar demasiado em detalhes.