Comment aborder un entretien System Design
System Design signifie planifier un grand système logiciel — comment toutes les pièces s'assemblent pour servir un grand nombre d'utilisateurs. Dans cette leçon, nous allons nous entraîner, étape par étape, à aborder une question d'entretien sur le sujet. Nous apprendrons à définir les exigences (ce
System Design, c'est comme planifier une ville entière : des routes qui absorbent la circulation, des entrepôts qui stockent des choses, des feux qui régulent le flux, et des équipes de maintenance qui réparent les pannes — tout cela pour que la ville continue de fonctionner sans accroc même aux heures de pointe, quand tout le monde est dehors en même temps.
- Exigences et périmètre
- La compétence centrale de cette leçon : avant de concevoir un système, on clarifie ce qu'il doit faire (exigences), ce qui est inclus ou non (périmètre — scope), quelles hypothèses on pose, et comment structurer une réponse claire. Comme prendre la commande complète au restaurant avant de commencer à cuisiner.
- Trade-off
- Un choix conscient entre deux options, où chacune a un avantage mais aussi un prix. Il n'y a pas de solution parfaite — tu choisis ce qui convient, et tu expliques à l'intervieweur·euse ce que tu gagnes et ce que tu paies. Comme choisir entre un itinéraire rapide et cher, ou un itinéraire lent et bon marché.
- Métrique opérationnelle
- Un chiffre que tu peux mesurer pour savoir si une décision fonctionne vraiment une fois le système en production, au service d'utilisateurs réels. Par exemple : latency (le temps que met une réponse à revenir), error rate (la part des requêtes qui échouent), queue lag (le nombre de tâches qui attendent dans une file), cache hit ratio (combien de fois on a trouvé la réponse déjà prête dans le cache), et plus encore.