Rendez le contrat vérifiable par une machine. Gardez un schéma, un document OpenAPI ou des définitions protobuf, générés depuis le code ou validés contre lui, et lancez une vérification de compatibilité en CI qui échoue sur un changement cassant comme un champ supprimé ou un type resserré. Ajoutez des tests de contrat pilotés par les consommateurs pour les clients internes, et versionnez les événements comme vous versionnez les endpoints.
Pourquoi les recruteurs posent cette question
Le recruteur veut savoir si la compatibilité est garantie par l'outillage ou par l'espoir que quelqu'un remarque. Il écoute un schéma en gestion de version, un contrôle de diff automatisé, et comment vous couvrez les messages autant que le HTTP. Ça touche aussi à la réalité organisationnelle : comment vous découvrez qui consomme réellement un endpoint avant de le changer.
Comment structurer votre réponse
- Mettez le contrat en gestion de version et gardez-le synchronisé avec le code.
- Ajoutez un diff de compatibilité automatisé comme garde-fou en CI.
- Couvrez les consommateurs internes avec des tests de contrat.
- Expliquez comment vous trouvez les vrais consommateurs avant de changer quoi que ce soit.
Exemple de réponse
Le contrat doit être un fichier que la CI peut comparer, sinon la compatibilité dépend de celui qui relit la pull request. Donc le document OpenAPI vit dans le dépôt et est généré depuis les gestionnaires, ce qui l'empêche de dériver vers la fiction, et il y a un job qui le compare à la version sur la branche principale et échoue sur tout ce qui casse : un champ supprimé, un nouveau paramètre obligatoire, un type restreint. Ajouter est toujours autorisé. Pour les consommateurs internes, j'aime les contrats pilotés par les consommateurs, où chaque client publie le sous-ensemble dont il dépend vraiment et où ma construction vérifie que je les satisfais tous, si bien que je le découvre à la compilation plutôt que par leur astreinte. Les événements reçoivent le même traitement via un registre de schémas avec un mode de compatibilité défini, puisqu'un message cassé est pire qu'un endpoint cassé parce que les consommateurs échouent de façon asynchrone. Et avant de changer quoi que ce soit, je regarde les métriques de requêtes par client, parce que le contrat me dit ce qui est possible et les métriques me disent qui le remarquerait vraiment.
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 marcheQuestions de relance à prévoir
- Qu'est-ce qui compte comme un changement cassant dans une réponse JSON ?
- Comment géreriez-vous un client qui dépend d'un comportement non documenté ?
- Comment gérez-vous l'évolution des schémas d'événements sur plusieurs années ?
Autres questions pour Développeur backend
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