Meilleure réponse
En voici quelques-unes que je me souviens de mon interviewer des escapades:
- Concevez un instagram ou un type de flux de contenu. Celui-ci est en fait SUPER commun, je doit lavoir obtenu 3 ou 4 fois dans diverses entreprises. C’est très joli et c’est probablement ce que les enquêteurs qui sont trop paresseux pour proposer une meilleure question vont demander.
- Conception à saisie anticipée / saisie semi-automatique. Ont également reçu celui-ci plusieurs fois, parfois avec de légères variations. Il est généralement basé sur une structure de données Trie. Cest une excellente pratique!
- Concevez un bus de messagerie (apache kafka / zeromq / rabbitmq). Vous pourriez obtenir quelque chose comme ceci si vous interviewez pour un rôle de logiciel infra-orienté. Cest une excellente solution qui peut engendrer de nombreux domaines dintérêt et sous-questions différents.
- Concevoir un cache LRU. Cela revient généralement à implémenter une liste à double lien pour obtenir une suppression à temps constant des éléments les moins récemment utilisés lorsque le cache est plein.
- Conception un cache distribué. Encore une fois, cela pourrait être pour un rôle orienté infra. Peut également être pris dans de nombreuses directions différentes.
- Concevoir des tables de base de données / entrepôt de données. Cela pourrait être pour un rôle plus orienté ingénieur de données, mais cest aussi courant pour les SWE étant donné quune bonne conception des données est extrêmement importante.
En voici quelques-unes que je nai PAS vues personnellement , bien que généralement accepté comme courant:
- Concevoir un raccourcisseur dURL
- Concevez une boutique en ligne / site de commerce électronique
Jespère que cela vous aidera! Je serais prêt à parier que les 4 à 5 premiers couvriront la PLUPART de vos entretiens de conception de système – et pour ceux quils ne couvrent pas, les connaissances que vous acquérez en les étudiant devraient bien se transférer dans différentes variantes des questions.
Réponse
Entretiens de conception de système testez vos compétences en conception et votre capacité à travailler avec des services complexes et évolutifs. Votre performance lors de ces entretiens détermine le poste et le salaire qui vous seront proposés. Si vous avez des compétences de conception louables, vous obtiendrez une offre plus élevée. Une bonne ressource pour préparer cet entretien: Grokking the System Design Interview
Voici quelques exemples de problèmes de conception:
- Conception dun service de raccourcissement dURL comme TinyURL
- Conception dInstagram
- Conception de Twitter
- Conception de YouTube
- Conception de Facebook Messenger
- Conception de Dropbox
- Conception de suggestions de tête de frappe
- Conception de Facebook Fil dactualité
- Conception de Yelp
- Conception Uber
De plus, il est judicieux de vous familiariser avec les concepts de systèmes distribués tels que Hashing cohérent Partitionnement des données , Équilibrage de charge , Redondance et réplication , Théorème CAP , etc.
Daprès mon expérience, les candidats qui ont obtenu de meilleurs résultats lors des entretiens de conception ont suivi ces sept étapes:
Étape 1: Clarification des exigences: Posez toujours des questions pour trouver létendue exacte du problème que vous résolvez.
Étape 2: Définition de linterface système: Définissez les API attendues du système. Cela vous permettra également de vous assurer que vous ne vous êtes trompé dans aucune exigence.
Étape 3: Estimation de larrière-plan: Cest toujours une bonne idée destimer léchelle du système que vous allez concevoir.
Étape 4: Définissez le modèle de données: Bien quil soit pas nécessaire dès le début, cela clarifiera la façon dont les données circuleront entre les différents composants du système et plus tard vous guidera également vers le partitionnement des données.
Étape 5: Conception de haut niveau: Dessinez un schéma de principe avec 5 à 6 cases représentant les composants de base de votre système.
Étape 6: Conception détaillée des composants : Creusez plus profondément dans 2-3 composants; Les commentaires des enquêteurs doivent toujours vous guider vers les parties du système quil souhaite que vous expliquiez plus en détail.
Étape 7: Goulots détranglement: Essayez de discuter autant de goulots détranglement que possible et différentes approches pour les atténuer.
Jespère que cela vous a aidé.