Question d'entretien pour Développeur full stack

Quand choisiriez-vous GraphQL plutôt que REST pour un nouveau service ?

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Prenez GraphQL quand plusieurs clients différents ont besoin de formes différentes des mêmes données connectées et que vous en avez assez de surcharger les réponses ou de livrer un endpoint par écran. Prenez REST quand la surface est petite, que le cache HTTP compte, ou que les consommateurs sont des machines plutôt que des écrans. GraphQL ne supprime pas la complexité ; il la déplace de la prolifération d'endpoints vers la profondeur des resolvers, les limites de coût des requêtes, et un cache dont vous êtes désormais responsable.

Pourquoi les recruteurs posent cette question

Ça vérifie si vous choisissez une technologie à partir de contraintes ou de la mode. Le recruteur veut entendre un vrai arbitrage, en particulier autour du cache et du coût des requêtes, parce que ce sont les deux endroits où les équipes GraphQL se font mal au bout de six mois. Un candidat qui sait défendre les deux camps puis trancher passe pour quelqu'un à qui on peut confier des décisions d'architecture ; un candidat qui ne liste que les avantages de GraphQL, non.

Comment structurer votre réponse

  • Énoncez la condition qui rend GraphQL rentable.
  • Énoncez la condition qui fait de REST le meilleur choix par défaut.
  • Nommez les coûts opérationnels que GraphQL ajoute.
  • Atterrissez sur une recommandation pour le contexte qu'on vous a donné.

Exemple de réponse

Exemple parlé, à la première personne

Mon facteur décisif, c'est la diversité des clients. S'il y a un seul client web et que les endpoints correspondent proprement aux écrans, REST demande moins de machinerie et vous avez le cache HTTP, le comportement CDN et le débogage avec curl gratuitement. Dès que vous avez une application web, une application mobile et une intégration partenaire qui veulent chacune des tranches différentes du même graphe, REST se transforme soit en cinquante endpoints sur mesure, soit en réponses obèses que les utilisateurs mobiles paient en données. C'est là que GraphQL est rentable. Ce dont je m'assure que l'équipe est prévenue, c'est de ce qui vient avec. Il vous faut des limites de profondeur et de coût des requêtes ou une seule requête imbriquée peut marteler la base, il vous faut du batching à la dataloader ou les resolvers produisent des N plus une requêtes par défaut, et le cache HTTP cesse à peu près de fonctionner puisque tout est un POST vers une seule URL, donc vous mettez en cache au niveau du resolver ou de l'entité. Sur un produit de taille moyenne, je démarrerais honnêtement en REST et n'ajouterais GraphQL que quand un deuxième client très différent apparaît.

Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.

Voir comment ça marche

Questions de relance à prévoir

  • Comment arrêteriez-vous une requête malveillante profondément imbriquée ?
  • Comment gérez-vous le cache en GraphQL sachant que tout passe par un seul endpoint ?
  • Comment versionnez-vous un schéma GraphQL sans casser les clients ?

Autres questions pour Développeur full stack

Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.

Prédire mes questions

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot