Pergunta de entrevista para Desenvolvedor Full Stack

Quando você escolheria GraphQL em vez de REST para um serviço novo?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Escolha GraphQL quando vários clientes diferentes precisam de formatos diferentes dos mesmos dados conectados e você está cansado de trazer dado demais ou de entregar um endpoint por tela. Escolha REST quando a superfície é pequena, o cache HTTP importa, ou os consumidores são máquinas e não telas. O GraphQL não remove complexidade; ele a move do excesso de endpoints para profundidade de resolvers, limites de custo de query e cache que agora é seu.

Por que os entrevistadores perguntam isso

Isso verifica se você escolhe tecnologia por restrições ou por moda. O entrevistador quer ouvir um tradeoff real, principalmente em torno de cache e custo de query, porque esses são os dois lugares onde times de GraphQL se machucam seis meses depois. Um candidato que consegue defender os dois lados e então se decidir passa a impressão de ser seguro para decisões arquiteturais; um candidato que só lista benefícios do GraphQL não passa.

Como estruturar sua resposta

  • Diga a condição que faz o GraphQL valer a pena.
  • Diga a condição que faz o REST ser o padrão melhor.
  • Cite os custos operacionais que o GraphQL adiciona.
  • Feche com uma recomendação para o contexto que te deram.

Exemplo de resposta

Exemplo falado, em primeira pessoa

O meu fator decisivo é a diversidade de clientes. Se existe um cliente web só e os endpoints mapeiam direitinho para as telas, o REST é menos maquinário e você ganha cache HTTP, comportamento de CDN e depuração com curl de graça. Assim que você tem um app web, um app mobile e uma integração de parceiro querendo fatias diferentes do mesmo grafo, o REST vira ou cinquenta endpoints sob medida ou respostas gordas que usuários de mobile pagam no plano de dados. É aí que o GraphQL compensa. O que eu garanto que o time saiba de cara é o que vem junto. Você precisa de limites de profundidade e de custo de query ou uma única query aninhada martela o banco, você precisa de batching estilo dataloader ou os resolvers produzem N mais um queries por padrão, e o cache HTTP praticamente para de funcionar porque tudo é um POST em uma URL só, então você faz cache no nível de resolver ou de entidade. Em um produto de porte médio eu honestamente começaria com REST e adicionaria GraphQL só quando um segundo cliente bem diferente aparecesse.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • Como você impediria uma query maliciosa profundamente aninhada?
  • Como você lida com cache em GraphQL dado que tudo é um endpoint só?
  • Como você versiona um schema GraphQL sem quebrar os clientes?

Mais perguntas para Desenvolvedor Full Stack

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot