Enjoy 20% off all plans by following us on social media. Check out other promotions!
Guia de Design de Sistemas de Front End

Introdução ao Design de Sistemas Front-End

Aprenda técnicas úteis e como abordar as principais perguntas de design de sistemas front-end, escritas por ex-entrevistadores de empresas de tecnologia renomadas FAANG.

Ao contrário das perguntas de codificação e questionários, as entrevistas de design de sistemas são do estilo aberto, onde não há respostas certas. Você recebe um problema ou cenário vago e espera-se que trabalhe com o entrevistador para responder à pergunta, desenvolvendo um design de software adequado em um quadro branco ou em algum aplicativo de desenho colaborativo, caso a entrevista seja virtual. É semelhante ao processo em certas empresas, onde os engenheiros escrevem documentos técnicos de design para esboçar as abordagens possíveis de um projeto em que estão trabalhando, explicar decisões técnicas e discutir compensações com os colegas, exceto que você precisa fazer isso em um período de 30 a 60 minutos.

As entrevistas de design de sistemas geralmente são realizadas com candidatos que têm alguns anos de experiência de trabalho (não recém-formados) e seu desempenho na entrevista de design de sistemas tem uma influência significativa no nível de cargo que lhe será oferecido. Na maioria das vezes, falhar na entrevista de design de sistemas resultará em uma rejeição geral. É realmente importante ter um desempenho excepcional em suas entrevistas de design de sistemas!

No entanto, devido à natureza aberta das entrevistas de design de sistemas, é muito mais difícil praticar para elas em comparação com as entrevistas de codificação. Muitos candidatos também não têm experiência real na construção de vários sistemas, e é difícil se basear em experiências ao responder perguntas de entrevistas de design de sistemas. Além disso, existem poucos recursos disponíveis para o design de sistemas front-end. A maioria dos recursos existentes de design de sistemas é direcionada a Engenheiros de Software em geral e, portanto, foca em sistemas distribuídos.

Os recursos de design de sistemas da GreatFrontEnd são talvez os mais abrangentes que você pode encontrar e ajudarão você a lidar com as entrevistas de design de sistemas front-end com facilidade!

Design de Sistemas Front-End vs. Back-End

Nas entrevistas tradicionais de design de sistemas para Engenheiros de Software, os candidatos serão solicitados a descrever a arquitetura de um sistema distribuído, geralmente envolvendo servidores web, balanceadores de carga, caches, bancos de dados, microsserviços, filas de tarefas, etc. Para Engenheiros Front-End, as entrevistas de design de sistemas são um pouco diferentes, com mais ênfase no que acontece no cliente e no design da API entre o cliente e o servidor, em vez do que acontece no back-end.

ProporçãoBack EndFront End
Coletar requisitosObrigatórioObrigatório
Arquitetura/design de alto nívelServiços em nuvem distribuídosAplicação/Componente
Estimativa rápidaObrigatórioNão obrigatório
Componentes do sistemaServiços em nuvem (por exemplo, balanceador de carga, servidor de aplicação, banco de dados, armazenamento de arquivos, caches, filas de mensagens, CDN)Módulos de aplicação (Modelo, Visualização, Controlador)
Modelo de dadosEsquema SQLEstado da aplicação
Tipo de APIs entre os componentesRede (qualquer protocolo)Rede (HTTP, WebSocket), funções JavaScript
Áreas de focoEscalabilidade, Confiabilidade, DisponibilidadeDesempenho, Experiência do Usuário, Acessibilidade, Internacionalização
Menos importante (pode ser tratado como uma caixa-preta)ClienteServidor

Leia mais sobre as diferenças entre as entrevistas de Design de Sistema de Front End e Back End no blog de Zhenghao em (https://www.zhenghao.io/posts/system-design-interviews)

Por exemplo, uma pergunta clássica é pedir para projetar uma interface de feed do Twitter, que pode ser feita tanto em entrevistas de sistemas de back end quanto de front end.

  • Back end: Estimativa de capacidade, projeto dos esquemas do banco de dados, como garantir que os serviços possam escalar com o tráfego, como gerar o feed do Twitter de um usuário?
  • Front end: Como você implementa as interações com um tweet, como implementar paginação no feed e como os usuários podem criar novos tweets?

Como você pode ver, o foco das entrevistas de design de sistemas de front end pode ser muito diferente das de back end, e respondê-las bem requer uma abordagem diferente.

O que você aprenderá neste guia

Nosso guia de Design de Sistema de Front End está estruturado em duas partes. Primeiro, você obterá uma compreensão mais profunda do que se trata uma entrevista de design de sistema e, em seguida, mergulhará em alguns estudos de caso de design de sistema de front end usando o framework RADIO.