Introduksjon til spørsmål om systemintervju og svar
Systemdesign er prosedyren for å definere elementene i et system som arkitektur, komponenter og moduler, de forskjellige grensesnittene til disse komponentene og statistikken som går gjennom det systemet. Gjennom prosjektering av et logisk og effektivt system er det ment å tilfredsstille spesifikke krav og behov fra en virksomhet eller organisasjon. Det innebærer en organisert tilnærming til utformingen av et system. Bottom-Up eller Top-Down tilnærming er nødvendig for å vurdere alle relaterte variabler i systemet. Modellspråk brukes av en designer for å formidle data og kunnskap i en struktur i et system som er definert av et kompatibelt sett med regler og definisjoner. Designene kan beskrives på tekstlige eller grafiske modelleringsspråk.
Noen av eksemplene på grafiske modelleringsspråk er:
- Unified Modelling Language (UML): Den beskriver programvaren både atferdsmessig og strukturelt med grafisk notasjon.
- Business Process Modelling Notation (BPMN): Den brukes til prosessmodellering
- Systems Modelling Language (SysML): Det brukes til systemteknikk.
- Flytskjema: En symbolsk eller trinnvis skildring av en algoritme.
Hva bør man forutse i et systemdesignintervju?
Et slikt intervju starter normalt med et veldig åpent problem som å utforme ditt eget sosiale nettverk (som Facebook, Twitter). Når diskusjonen fortsetter, vil intervjueren legge til ekstra begrensninger eller antakelser for å redusere omfanget av problemet.
For å takle disse spørsmålene, ting som hjelper deg å trene og ha en strukturert tilnærming.
Hvis du nå ser etter en jobb som er relatert til systemdesign, må du forberede deg på intervjuspørsmålene om systemdesign i 2019. Det er sant at hvert intervju er forskjellig per de forskjellige jobbprofilene. Her har vi utarbeidet de viktige spørsmålene og svarene til systemdesignintervju som vil hjelpe deg å få suksess i intervjuet.
I denne artikkelen om System Design Interview Questions, skal vi presentere 10 viktigste og ofte stilte Interview Design spørsmål. Disse spørsmålene er delt inn i to deler er som følger:
Del 1 –Systemdesign Intervju Spørsmål (Grunnleggende)
Denne første delen dekker grunnleggende spørsmål om systemintervju og svar på systemdesign
Q1) Design TinyURL eller bit.ly (en URL-forkortningstjeneste)?
Svar:
Kom med funksjoner som systemet skal støtte først. For det andre, kom med de estimerte tallene for hvor skalerbart systemet kan være.
Når du designer en tjeneste er det tre ting du bør vurdere:
- API (REST API) - Kundens kommunikasjonstilnærming med tjenesten sammen med en lastbalanse som er frontend av tjenesten.
- Applikasjonslag - arbeidertråder eller verter som tar URL-en og genererer den lille URL-en for den og lagrer dem begge i utholdenhetslaget.
- Persistenslag - database
Ting å analysere:
- Generer en unik ID for hver URL og generer ID på skala, siden 1000 forespørsler om URL-forkortelse kommer hvert sekund.
- Viderekoblinger for servicehåndtak.
- Støtte tilpassede nettadresser.
- Spor klikkstatistikk
- Slett utløpte nettadresser
2) Design YouTube / Netflix (en global videostreamingtjeneste)?
Svar:
Ting å analysere:
- I videoer vil tjenesten lagre og overføre en enorm mengde data som et stort antall brukere kan se og dele dem samtidig.
- Registrer statistikk om videoer, for eksempel det totale antallet visninger, oppstemmer / nedstemmer osv.
- Legge til kommentarer til videoer i sanntid.
komponenter:
- OC - Skyer som AWS, OpenConnect som fungerer som et innholdsleveringsnettverk.
- Backend - database
- Klient - Enhver enhet (Desktop, Android, iPhone) som du spiller av videoen fra YouTube / Netflix fra.
La oss gå til de neste spørsmålene om systemdesignintervju.
3) Designe Quora / Reddit / HackerNews (et sosialt nettverk + meldingstavletjeneste)?
Svar:
Ting å analysere:
Personene som bruker tjenestene kan dele lenker eller legge inn spørsmål. Andre brukere kan svare på spørsmål eller kommentere de delte koblingene. Så tjenesten skal gjøre følgende:
- Registrerer statistikk for hvert svar, f.eks. Det totale antallet visninger, oppstemmer / nedstemmer osv.
- Brukere skal være i en posisjon til å følge andre brukere eller emner
- Liste over toppspørsmål på tidslinjen fra alle brukerne og emnene de følger (ligner på nyhetsfeedgenerering).
4) Design Facebook Messenger eller WhatsApp (en global chat-tjeneste)?
Svar:
Dette er de grunnleggende spørsmålene om systemdesignintervjuer som stilles i et intervju. Ting å analysere:
- Design en på én samtaler mellom brukere.
- Utvid designen din til å støtte gruppechatter.
- Hva kan gjøres når brukeren ikke er koblet til internett?
- Når skal du sende pushvarsler?
- Hvordan gi kryptering fra ende til ende?
Struktur:
Klient> Lastbalanser> Noder> Cache (Redis)> Database (Casandra)
5) Design Search Typeahead (Autocomplete)?
Svar:
Ting å analysere:
- Typeahead forslag som skal gis.
- Kriterier for valg av forslag.
- Må systemet være i sanntid?
- Støtt tilpasning med forslagene.
- Spørsmål per sekund som skal håndteres av systemet.
- Mengde data som skal lagres.
Del 2 - System Design Interview Questions (Advanced)
La oss nå se på de avanserte spørsmål om systemdesignintervju.
6) Design Dropbox / Google Drive / Google Photos?
Svar:
Ting å analysere:
- Hvordan laste opp / vise / søke / dele filer eller bilder?
- Spor tillatelser for fildeling.
- Tillat flere brukere å redigere det samme dokumentet.
7) Design Facebook, Twitter eller Instagram?
Svar:
Funksjoner som skal vurderes:
- Noen av Twitter / Facebook / Instagram-funksjonene som skal støttes.
- Trenger å støtte svar på tweets / gruppere tweets etter samtaler.
- Personvern kontrollerer rundt hver tweet.
- Støtter trending tweets
- Direkte meldinger
- Nevner / Tagging
Ting å analysere:
- Antall brukere og trafikk som skal håndteres av systemet.
- Mengde følgere brukeren har.
- Antall ganger tweeten er foretrukket.
Komponenter som må utformes:
- Nyhetsfeed-generasjon
- Sosial graf
- Systematisk søk og lagring for innlegg / tweets.
La oss gå til de neste spørsmålene om systemdesignintervju.
8) Utforme en webcrawler?
Svar:
Det kreves skalerbar tjeneste som kan gjennomsøke hele nettet og kan samle hundrevis av millioner webdokumenter.
Ting å analysere:
- Finne nye websider.
- Å prioritere nettsider som endres dynamisk.
- Forsikre deg om at søkeroboten ikke er grenseløst knyttet til samme domene.
9) Design Uber:
Svar:
Dette er de ofte stilte spørsmålene om systemdesign i et intervju. Arkitektur: Monolitiske / mikrotjenester (Realtime service, Front-end (Application) og database)
- Bakenden betjener mobiltelefontrafikken, og klienter kobler seg til backend over mobildata.
- Klienter lenker til utsendelsessystemet som matcher sjåfører og ryttere.
- Dispatch er skrevet nesten utelukkende i node.js.
- Kart / ETA: For at forsendelsen skal ta et intelligent valg er det viktig å få kart og rutedata.
- Tjenester: Forretningslogikatjenester for det meste skrevet i python.
- Databaser: Postgres, Redis, MySQL.
Ting å analysere:
- Kunden ber om en tur og hvordan de kan samsvare dem med de nærliggende sjåførene.
- Lagre mange geografiske steder for sjåfører og ryttere som alltid er på farten.
- Håndtere oppdateringer til driverplasseringer.
10) Vil du utforme en API Rate Limiter (Github)?
Svar:
Ting å analysere:
- Begrense antall forespørsler en enhet kan sende til en API i løpet av et tidsvindu, for eksempel ti forespørsler per sekund.
- Takstbegrensning skal fungere for et spredt oppsett, da APIene kan nås via en gruppe servere.
Anbefalte artikler
Dette har vært en guide til listen over spørsmål om systemdesignintervju og svar, slik at kandidaten enkelt kan slå sammen disse systemdesignintervjuespørsmålene. Her i dette innlegget har vi studert topp spørsmål om systemdesignintervju som ofte blir stilt i intervjuer. Du kan også se på følgende artikler for å lære mer -
- AutoCAD intervjuspørsmål
- Photoshop-intervjuspørsmål
- Adobe Illustrator for nybegynnere
- Grafisk designerassistent