Question d'entretien pour Ingénieur logiciel

Comment décidez-vous quoi mettre en cache, et comment gérez-vous l'invalidation ?

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

Réponse rapide

Mettez en cache les données lues bien plus souvent qu'elles ne changent et coûteuses à produire. Pour l'invalidation, préférez une durée de vie courte pour tout ce qui peut être légèrement périmé, et une invalidation explicite à l'écriture pour tout ce qui ne le peut pas. Indexez le cache sur tout ce qui fait varier le résultat, y compris le locataire et les permissions, et traitez le cache comme jetable : le système doit rester correct quand il est vide.

Pourquoi les recruteurs posent cette question

Le cache est l'endroit d'où viennent à la fois les bugs de justesse et les pannes, donc le recruteur sonde le jugement plutôt que la connaissance des commandes Redis. Il veut le ratio lecture sur écriture comme critère de sélection, une stratégie d'invalidation explicite, la conscience que les clés de cache peuvent faire fuiter des données entre utilisateurs, et la discipline de traiter le cache comme une optimisation dont le système peut se passer.

Comment structurer votre réponse

  • Donnez le critère : beaucoup lu, coûteux, tolérablement périmé.
  • Choisissez entre une durée de vie courte et une invalidation à l'écriture.
  • Alertez sur les clés de cache qui font fuiter des données entre utilisateurs.
  • Énoncez que le système doit fonctionner avec un cache froid.

Exemple de réponse

Exemple parlé, à la première personne

Je cherche trois propriétés : bien plus lu qu'écrit, coûteux à calculer, et tolérant à être légèrement périmé. Si ça rate la dernière, comme un solde de compte, je préfère que ce soit lent et juste. Pour l'invalidation, mon défaut est une durée de vie courte, parce que c'est auto-réparateur ; si un bug fait que je rate une invalidation, le problème se règle tout seul en soixante secondes au lieu de vivre éternellement. Là où la péremption n'est vraiment pas acceptable, j'invalide dans le même chemin de code que l'écriture et j'accepte le couplage supplémentaire. Ce à quoi je fais le plus attention, c'est la clé. Tout ce qui fait varier le résultat y entre, surtout l'identifiant de locataire ou d'utilisateur, parce que le pire bug de cache que j'aie vu était une réponse mise en cache au CDN qui contenait un en-tête personnalisé, et un client a brièvement vu le nom d'un autre client. Et je teste toujours cache vidé, parce que si le système s'écroule à froid, ce n'est pas un cache, c'est une dépendance.

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 empêcheriez-vous une ruée quand une clé très demandée expire ?
  • Où placeriez-vous le cache : en processus, dans Redis ou au CDN ?
  • Comment mesurez-vous si un cache aide réellement ?

Autres questions pour Ingénieur logiciel

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