Question d'entretien pour Développeur frontend

Les utilisateurs signalent que l'application ralentit plus ils la laissent ouverte longtemps. Comment traqueriez-vous ça ?

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

Réponse rapide

Ce motif indique une fuite ou une croissance non bornée. Prenez des instantanés du tas dans les DevTools à deux moments après le même parcours utilisateur, comparez les tailles retenues et regardez ce qui retient les noeuds DOM détachés. Les causes habituelles sont des écouteurs et abonnements jamais retirés, des minuteurs qui continuent après le démontage, des caches qui n'évincent jamais, et des closures capturant de gros objets. Corrigez en démontant tout ce qu'un composant a créé.

Pourquoi les recruteurs posent cette question

Le recruteur veut un débogueur méthodique, pas quelqu'un qui devine. Les problèmes de mémoire ne se corrigent pas en lisant du code seulement, donc il vérifie si vous connaissez l'outillage : instantanés du tas, chronologies d'allocation, noeuds détachés et moniteur de performance. Ça sonde aussi la discipline de cycle de vie, puisque la plupart des fuites dans les applications monopage viennent de quelque chose mis en place au montage sans nettoyage correspondant.

Comment structurer votre réponse

  • Confirmez le symptôme par une mesure de mémoire, pas par une intuition.
  • Décrivez la comparaison de trois instantanés sur un parcours répété.
  • Nommez les suspects habituels que vous vérifiez dans le code.
  • Expliquez le motif de correction : chaque abonnement a son démontage.

Exemple de réponse

Exemple parlé, à la première personne

Je commencerais par confirmer que c'est bien la mémoire et pas autre chose, donc je laisserais le moniteur de performance ouvert et je répéterais le parcours décrit par les utilisateurs, en surveillant le tas ainsi que le nombre d'écouteurs et de noeuds. S'ils montent et ne redescendent jamais après une collecte forcée, c'est une fuite. Ensuite je prends un instantané du tas, je fais le parcours dix fois, j'en prends un autre, et je compare par taille retenue. Les noeuds DOM détachés sont le signe qui trahit, et le chemin de rétention me dit ce qui les retient. En pratique, c'est presque toujours quelque chose mis en place sans démontage correspondant : un écouteur de resize ou de scroll sur window, un abonnement à une socket, un interval, ou un observer qui survit au composant. J'en ai trouvé un où une bibliothèque de graphiques attachait un écouteur par rendu et n'en retirait qu'un au démontage, donc le compte grimpait à chaque navigation. Le motif de correction est ennuyeux mais efficace : tout ce qui est créé dans un effet renvoie son nettoyage, et tout cache reçoit une limite de taille au lieu de croître pour toujours.

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

  • Qu'est-ce qu'un noeud DOM détaché et comment trouvez-vous ce qui le retient ?
  • Comment empêcheriez-vous cette classe de bug en revue de code ?
  • Comment distinguez-vous une fuite d'un cache simplement volumineux ?

Autres questions pour Développeur frontend

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