Top 10 System Design Interview Spørgsmål og svar (Opdateret til 2019)

Indholdsfortegnelse:

Anonim

Introduktion til System Design Interview Spørgsmål og svar

Systemdesign er proceduren til at definere elementerne i et system, såsom arkitektur, komponenter og moduler, de forskellige grænseflader for disse komponenter og de statistikker, der går gennem dette system. Gennem konstruktion af et logisk og effektivt system er det beregnet til at tilfredsstille specifikke krav og behov for en virksomhed eller organisation. Det indebærer en organiseret tilgang til design af et system. Bund-Up eller Top-Down tilgang er nødvendig for at overveje alle de relaterede variabler i systemet. Modelleringssprog bruges af en designer til at formidle data og viden i en struktur i et system, der er defineret af et kompatibelt sæt regler og definitioner. Designerne kan beskrives på tekst- eller grafiske modelleringssprog.

Nogle af eksemplerne på grafiske modelleringssprog er:

  • Unified Modelling Language (UML): Det beskriver softwaren både adfærdsmæssigt og strukturelt med grafisk notation.
  • Business Process Modelling Notation (BPMN): Det bruges til processmodellering
  • Systems Modelling Language (SysML): Det bruges til systemteknik.
  • Flowchart: En symbolsk eller trinvis afbildning af en algoritme.

Hvad skal man forudse i et systemdesignsamtale?

En sådan samtale starter normalt med et meget åbent problem som design af dit eget sociale netværk (som Facebook, Twitter). Efterhånden som diskussionen skrider frem, vil intervieweren tilføje ekstra begrænsninger eller antagelser for at reducere omfanget af problemet.

For at tackle disse spørgsmål er ting, der hjælper dig med at øve og have en struktureret tilgang.

Nu, hvis du leder efter et job, der er relateret til systemdesign, skal du forberede dig på spørgsmål til systemdesign i 2019. Det er sandt, at hvert interview er forskelligt i henhold til de forskellige jobprofiler. Her har vi forberedt de vigtige systemdesigns interviewspørgsmål og svar, som vil hjælpe dig med at få succes i dit interview.

I denne artikel om systemdesigninterviewspørgsmål fra 2019 vil vi præsentere 10 vigtigste og ofte stillede spørgsmål til systemdesigninterview. Disse spørgsmål er opdelt i to dele er som følger:

Del 1 –Systemdesign Interview Spørgsmål (Grundlæggende)

Denne første del dækker grundlæggende systemdesigns interviewspørgsmål og svar

Q1) Design TinyURL eller bit.ly (en URL-afkortningstjeneste)?

Svar:
Kom med funktioner, som systemet skal understøtte først. Dernæst komme med det anslåede antal, hvor skalerbart systemet kan være.

Når du designer en service, er der tre ting, du skal overveje:

  • API (REST API) - Klientens kommunikationsmetode med tjenesten sammen med en belastningsafbalancering, der er forreste ende af tjenesten.
  • Applikationslag - arbejdertråde eller værter, der tager URL'en og genererer den lille URL til den og gemmer dem begge i persistenslaget.
  • Persistenslag - database

Ting at analysere:

  • Opret en unik ID for hver URL og generer ID'er i skala, da 1000'ere af anmodninger om URL-forkortelse kommer hvert sekund.
  • Omdirigeringer af servicehåndtag.
  • Support tilpassede webadresser.
  • Spor klikstatistikker
  • Slet udløbne URL'er

2) Design YouTube / Netflix (en global videostreamingtjeneste)?

Svar:
Ting at analysere:

  • I videoer gemmer og transmitterer tjenesten en enorm mængde data, som et stort antal brugere kan se og dele dem samtidig.
  • Optag statistik om videoer, for eksempel det samlede antal visninger, opstemmer / nedstemmer osv.
  • Tilføjelse af kommentarer til videoer i realtid.

komponenter:

  • OC - Skyer som AWS, OpenConnect, der fungerer som et indholdsleveringsnetværk.
  • Backend - database
  • Klient - Enhver enhed (Desktop, Android, iPhone), hvorfra du afspiller videoen fra YouTube / Netflix.

Lad os gå til de næste spørgsmål om systemdesigninterview.

3) Designe Quora / Reddit / HackerNews (et socialt netværk + meddelelseskorttjeneste)?

Svar:
Ting at analysere:

De mennesker, der bruger tjenesterne, kan dele links eller sende spørgsmål. Andre brugere kan besvare spørgsmål eller kommentere de delte links. Så tjenesten skal gøre følgende:

  • Registrerer statistikker for hvert svar, fx det samlede antal visninger, opstemmer / nedstemmer osv.
  • Brugere skal være i stand til at følge andre brugere eller emner
  • Liste over topspørgsmål på tidslinjen fra alle brugere og emner, de følger (svarer til nyhedsfeedgenerering).

4) Design Facebook Messenger eller WhatsApp (en global chat-service)?

Svar:
Dette er de grundlæggende spørgsmål om systemdesigninterviews, der stilles i et interview. Ting at analysere:

  • Design en samtale samtaler mellem brugere.
  • Udvid dit design til at understøtte gruppechats.
  • Hvad kan der gøres, når brugeren ikke er tilsluttet internettet?
  • Hvornår skal du sende push-meddelelser?
  • Hvordan tilvejebringes ende til ende-kryptering?

Struktur:

Klient> Belastningsbalancer> Knudepunkter> Cache (Redis)> Database (Casandra)

5) Typeskop for designsøgning (autofuldførelse)?

Svar:
Ting at analysere:

  • Forslag til typeshoved, der skal leveres.
  • Kriterier for valg af forslagene.
  • Skal systemet være i realtid?
  • Support personalisering med forslagene.
  • Forespørgsler pr. Sekund, der skal håndteres af systemet.
  • Mængde af data, der skal gemmes.

Del 2 - Intervjuespørgsmål til systemdesign (avanceret)

Lad os nu se på de avancerede spørgsmål om systemdesigninterview.

6) Design Dropbox / Google Drive / Google Fotos?

Svar:
Ting at analysere:

  • Sådan uploades / ser / søges / deles filer eller fotos?
  • Spor tilladelser til fildeling.
  • Tilladelse for flere brugere at redigere det samme dokument.

7) Design Facebook, Twitter eller Instagram?

Svar:
Funktioner, der skal overvejes:

  • Nogle af de Twitter / Facebook / Instagram-funktioner, der skal understøttes.
  • Brug for at understøtte svar på tweets / gruppere tweets efter samtaler.
  • Fortrolighedskontrol omkring hver tweet.
  • Understøtter trendende tweets
  • Direkte beskeder
  • Nævner / Tagging

Ting at analysere:

  • Antallet af brugere og trafik, der skal håndteres af systemet.
  • Mængde af følgere, som brugeren har.
  • Antallet af gange, at tweeten er blevet foretrukket.

Komponenter, der skal designes:

  • Nyhedsfeed generation
  • Social graf
  • Systematisk søgning og opbevaring af indlæg / tweets.

Lad os gå til de næste spørgsmål om systemdesigninterview.

8) Design en webcrawler?

Svar:
Der kræves skalerbar service, der kan gennemgå hele nettet og kan indsamle hundreder af millioner af webdokumenter.

Ting at analysere:

  • Find nye websider.
  • Prioritering af websider, der ændrer sig dynamisk.
  • Sørg for, at crawlen ikke er ubegrænset knyttet til det samme domæne.

9) Design Uber:

Svar:
Dette er de ofte stillede systemdesignspørgsmål i et interview. Arkitektur: Monolitiske / mikrotjenester (Realtime service, Front-end (Application) og database)

  • Backend betjener mobiltelefontrafikken, og klienter opretter forbindelse til backend via mobildata.
  • Kunder linker til afsendelsessystemet, der matcher førere og ryttere.
  • Forsendelse er skrevet næsten udelukkende i node.js.
  • Kort / ETA: For at afsendelsen skal tage et intelligent valg, er det vigtigt at få kort og rutedata.
  • Tjenester: Forretningslogik tjenester hovedsageligt skrevet i python.
  • Databaser: Postgres, Redis, MySQL.

Ting at analysere:

  • Kunden anmoder om en tur, og hvordan de kan matche dem økonomisk sammen med de nærliggende chauffører.
  • Opbevaring af masser af geografiske placeringer til chauffører og ryttere, der altid er på farten.
  • Håndtering af opdateringer til driverplaceringer.

10) Design en API-hastighedsbegrænser (Github)?

Svar:
Ting at analysere:

  • Begrænsning af antallet af anmodninger, som en enhed kan sende til en API inden for et tidsvindue, for eksempel ti anmodninger i sekundet.
  • Takstbegrænsning skal fungere for en spredt opsætning, da API'erne kan nås gennem en gruppe af servere.

Anbefalede artikler

Dette har været en guide til listen over systemdesignsspørgsmål og svar, så kandidaten let kan nedbryde disse systemdesignspørgsmål. Her i dette indlæg har vi studeret topspørgsmål om systemdesigninterviews, som ofte stilles i interviews. Du kan også se på de følgende artikler for at lære mere -

  1. AutoCAD-interviewspørgsmål
  2. Photoshop-interviewspørgsmål
  3. Adobe Illustrator til begyndere
  4. Grafisk designerassistent