Top 10 des questions et réponses d'entrevue de conception de système (mis à jour pour 2019)

Table des matières:

Anonim

Introduction aux questions et réponses d'entrevue de conception de système

La conception d'un système est la procédure de définition des éléments d'un système tels que l'architecture, les composants et les modules, les différentes interfaces de ces composants et les statistiques qui transitent par ce système. Grâce à l'ingénierie d'un système logique et efficace, il est destiné à satisfaire les exigences et les besoins spécifiques d'une entreprise ou d'une organisation. Elle implique une approche organisée de la conception d'un système. Une approche ascendante ou descendante est nécessaire pour prendre en compte toutes les variables connexes du système. Les langages de modélisation sont utilisés par un concepteur pour transmettre les données et les connaissances dans une structure d'un système définie par un ensemble compatible de règles et de définitions. Les conceptions peuvent être décrites dans des langages de modélisation textuels ou graphiques.

Voici quelques exemples de langages de modélisation graphique:

  • Unified Modeling Language (UML): il décrit le logiciel à la fois comportementalement et structurellement avec une notation graphique.
  • Notation de modélisation de processus métier (BPMN): elle est utilisée pour la modélisation de processus
  • Langage de modélisation des systèmes (SysML): il est utilisé pour l'ingénierie des systèmes.
  • Organigramme: représentation symbolique ou pas à pas d'un algorithme.

Que faut-il prévoir lors d'un entretien de conception de système?

Une telle interview commence normalement par un problème très ouvert tel que la conception de votre propre réseau social (comme Facebook, Twitter). À mesure que la discussion progresse, l'intervieweur ajoutera des restrictions ou des hypothèses supplémentaires pour réduire l'ampleur du problème.

Afin de répondre à ces questions, les choses qui vous aident à vous entraîner et à avoir une approche structurée.

Maintenant, si vous recherchez un emploi lié à la conception de systèmes, vous devez vous préparer aux questions d'entrevue de conception de systèmes 2019. Il est vrai que chaque entretien est différent selon les différents profils d'emploi. Ici, nous avons préparé les importantes questions et réponses d'entrevue de conception de système qui vous aideront à réussir votre entrevue.

Dans cet article sur les questions d'entrevue de conception de système 2019, nous présenterons les 10 questions d'entrevue de conception de système les plus importantes et les plus fréquemment posées. Ces questions sont divisées en deux parties:

Partie 1 - Questions sur l'entrevue de conception du système (de base)

Cette première partie couvre la conception de base du système Questions et réponses d'entrevue

Q1) Concevoir TinyURL ou bit.ly (un service de raccourcissement d'URL)?

Répondre:
Trouvez des fonctionnalités que le système devrait prendre en charge en premier. Deuxièmement, trouvez les chiffres estimatifs de l'évolutivité du système.

Lors de la conception d'un service, trois éléments doivent être pris en compte:

  • API (REST API) - Approche de communication du client avec le service avec un équilibreur de charge qui est l'extrémité avant du service.
  • Couche d'application - threads de travail ou hôtes qui prennent l'URL et génèrent la petite URL pour elle et les stockent tous les deux dans la couche de persistance.
  • Couche de persistance - Base de données

Choses à analyser:

  • Générez un ID unique pour chaque URL et générez des ID à grande échelle puisque des milliers de demandes de raccourcissement d'URL arrivent toutes les secondes.
  • Le service gère les redirections.
  • Prend en charge les URL personnalisées.
  • Suivi des statistiques de clics
  • Supprimer les URL expirées

2) Concevoir YouTube / Netflix (un service de streaming vidéo mondial)?

Répondre:
Choses à analyser:

  • Dans les vidéos, le service stockera et transmettra une énorme quantité de données qu'un grand nombre d'utilisateurs peuvent les regarder et les partager simultanément.
  • Enregistrer des statistiques sur les vidéos, par exemple, le nombre total de vues, les votes positifs / négatifs, etc.
  • Ajout de commentaires sur les vidéos en temps réel.

Composants:

  • OC - Clouds comme AWS, OpenConnect qui agissent comme un réseau de diffusion de contenu.
  • Backend - Base de données
  • Client - Tout appareil (ordinateur de bureau, Android, iPhone) à partir duquel vous lisez la vidéo sur YouTube / Netflix.

Passons aux prochaines questions d'entrevue sur la conception du système.

3) Concevoir Quora / Reddit / HackerNews (un réseau social + service de babillard électronique)?

Répondre:
Choses à analyser:

Les personnes qui utilisent les services peuvent partager des liens ou poster des questions. Les autres utilisateurs peuvent répondre à des questions ou commenter les liens partagés. Le service doit donc effectuer les opérations suivantes:

  • Enregistre les statistiques pour chaque réponse, par exemple le nombre total de vues, les votes positifs / négatifs, etc.
  • Les utilisateurs doivent être en mesure de suivre d'autres utilisateurs ou sujets
  • Liste des principales questions sur la chronologie de tous les utilisateurs et des sujets qu'ils suivent (similaire à la génération de flux d'actualités).

4) Concevoir Facebook Messenger ou WhatsApp (un service de chat mondial)?

Répondre:
Ce sont les questions d'entretien de base de la conception du système posées lors d'un entretien. Choses à analyser:

  • Concevez des conversations individuelles entre les utilisateurs.
  • Extension de votre conception pour prendre en charge les chats de groupe.
  • Que faire lorsque l'utilisateur n'est pas connecté à Internet?
  • Quand envoyer des notifications push?
  • Comment fournir un cryptage de bout en bout?

Structure:

Client> Équilibreur de charge> Nœuds> Cache (Redis)> Base de données (Casandra)

5) Type de recherche de conception (saisie semi-automatique)?

Répondre:
Choses à analyser:

  • Suggestions de dactylographie à fournir.
  • Critères de choix des suggestions.
  • Le système doit-il être en temps réel?
  • Soutenez la personnalisation avec les suggestions.
  • Requêtes par seconde à gérer par le système.
  • Quantité de données à stocker.

Partie 2 - Questions d'entrevue de conception de système (avancé)

Jetons maintenant un coup d'œil aux questions d'entrevue avancées sur la conception de systèmes.

6) Concevoir Dropbox / Google Drive / Google Photos?

Répondre:
Choses à analyser:

  • Comment télécharger / visualiser / rechercher / partager des fichiers ou des photos?
  • Suivre les autorisations pour le partage de fichiers.
  • Permettre à plusieurs utilisateurs de modifier le même document.

7) Concevez Facebook, Twitter ou Instagram?

Répondre:
Caractéristiques à considérer:

  • Certaines fonctionnalités Twitter / Facebook / Instagram doivent être prises en charge.
  • Besoin de prendre en charge les réponses aux tweets / regrouper les tweets par conversations.
  • Contrôles de confidentialité autour de chaque tweet.
  • Prise en charge des tweets tendances
  • Messagerie directe
  • Mentions / Marquage

Choses à analyser:

  • Le nombre d'utilisateurs et le trafic à gérer par le système.
  • Nombre d'abonnés dont dispose l'utilisateur.
  • Le nombre de fois où le tweet a été mis en favoris.

Composants devant être conçus:

  • Génération de fil d'actualité
  • Graphique social
  • Recherche et stockage systématiques des messages / tweets.

Passons aux prochaines questions d'entrevue sur la conception du système.

8) Concevoir un robot d'exploration Web?

Répondre:
Un service évolutif est nécessaire qui peut explorer l'ensemble du Web et collecter des centaines de millions de documents Web.

Choses à analyser:

  • Recherche de nouvelles pages Web.
  • Prioriser les pages Web qui changent dynamiquement.
  • S'assurer que le robot n'est pas attaché sans limites au même domaine.

9) Conception Uber:

Répondre:
Ce sont les questions les plus fréquemment posées lors de l'entretien lors de l'entretien. Architecture: services monolithiques / micro (service en temps réel, front-end (application) et base de données)

  • Le backend gère le trafic de téléphonie mobile et les clients se connectent au backend via des données mobiles.
  • Les clients se connectent au système de répartition qui correspond aux conducteurs et aux cavaliers.
  • La répartition est écrite presque entièrement dans node.js.
  • Cartes / ETA: Pour que l'expédition puisse faire un choix intelligent, il est important d'obtenir des cartes et des données de routage.
  • Services: services de logique métier principalement écrits en python.
  • Bases de données: Postgres, Redis, MySQL.

Choses à analyser:

  • Client demandant un trajet et comment les faire correspondre économiquement avec les chauffeurs à proximité.
  • Stocker des tonnes d'emplacements géographiques pour les conducteurs et les pilotes qui sont toujours en mouvement.
  • Gestion des mises à jour des emplacements des pilotes.

10) Concevoir un limiteur de débit API (Github)?

Répondre:
Choses à analyser:

  • Limiter le nombre de demandes qu'une entité peut envoyer à une API dans une fenêtre de temps, par exemple, dix demandes par seconde.
  • La limitation du débit devrait fonctionner pour une configuration dispersée, car les API sont accessibles via un groupe de serveurs.

Articles recommandés

Cela a été un guide pour la liste des questions et réponses d'entrevue de conception de système afin que le candidat puisse réprimer facilement ces questions d'entrevue de conception de système. Ici, dans cet article, nous avons étudié les principales questions d'entrevue de conception de système qui sont souvent posées lors des entretiens. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Questions d'entretiens chez AutoCAD
  2. Questions d'entretiens chez Photoshop
  3. Adobe Illustrator pour débutants
  4. Assistant graphiste