Top 10 Vragen en antwoorden over systeemontwerp Interview (bijgewerkt voor 2019)

Inhoudsopgave:

Anonim

Inleiding tot vragen en antwoorden over systeemontwerp Interview

Systeemontwerp is de procedure voor het definiëren van de elementen van een systeem zoals de architectuur, componenten en modules, de verschillende interfaces van die componenten en de statistieken die door dat systeem gaan. Door de ontwikkeling van een logisch en effectief systeem, is het bedoeld om te voldoen aan specifieke vereisten en behoeften van een bedrijf of organisatie. Het omvat een georganiseerde benadering van het ontwerp van een systeem. Bottom-Up of Top-Down-benadering is nodig om alle gerelateerde variabelen van het systeem te overwegen. Modeltalen worden door een ontwerper gebruikt om de gegevens en kennis over te brengen in een structuur van een systeem dat wordt gedefinieerd door een compatibele set regels en definities. De ontwerpen kunnen worden beschreven in tekstuele of grafische modelleringstalen.

Enkele voorbeelden van grafische modeltalen zijn:

  • Unified Modelling Language (UML): het beschrijft de software zowel gedragsmatig als structureel met grafische notatie.
  • Business Process Modelling Notation (BPMN): het wordt gebruikt voor procesmodellering
  • Systeemmodelleringstaal (SysML): het wordt gebruikt voor systeemtechniek.
  • Stroomdiagram: een symbolische of stapsgewijze weergave van een algoritme.

Waarop moet men anticiperen in een systeemontwerp-interview?

Een dergelijk interview begint normaal met een probleem met een zeer open einde, zoals het ontwerpen van uw eigen sociale netwerk (zoals Facebook, Twitter). Naarmate de discussie vordert, voegt de interviewer extra beperkingen of veronderstellingen toe om de omvang van het probleem te verminderen.

Om deze vragen aan te pakken, dingen die u helpen oefenen en een gestructureerde aanpak hebben.

Als je nu op zoek bent naar een baan die gerelateerd is aan Systeemontwerp, moet je je voorbereiden op de sollicitatievragen voor Systeemontwerp 2019. Het is waar dat elk interview anders is volgens de verschillende functieprofielen. Hier hebben we de belangrijke interviewvragen en antwoorden voor het systeemontwerp opgesteld die u zullen helpen succes te behalen in uw interview.

In dit artikel over systeemvragen voor systeemontwerp 2019 presenteren we 10 belangrijkste en meest gestelde interviewvragen over systeemontwerp. Deze vragen zijn als volgt verdeeld in twee delen:

Deel 1 - Systeemontwerp InterviewVragen (basis)

Dit eerste deel behandelt de basisvragen en antwoorden voor systeemontwerp

Q1) Ontwerp TinyURL of bit.ly (een URL-verkortingsservice)?

Antwoord:
Verzin functies die het systeem eerst moet ondersteunen. Ten tweede, kom met de geschatte aantallen van hoe schaalbaar het systeem kan zijn.

Bij het ontwerpen van een service zijn er drie dingen waarmee u rekening moet houden:

  • API (REST API) - De communicatiebenadering van de klant met de service samen met een load balancer die de voorkant van de service vormt.
  • Toepassingslaag - werkthreads of hosts die de URL gebruiken en de kleine URL ervoor genereren en beide opslaan in de persistentielaag.
  • Persistentie Laag - Database

Dingen om te analyseren:

  • Genereer een unieke ID voor elke URL en genereer ID's op schaal, aangezien elke seconde duizenden URL-verkortingsverzoeken komen.
  • Serviceafhandeling omleidingen.
  • Ondersteuning van aangepaste URL's.
  • Houd klikstatistieken bij
  • Verwijder verlopen URL's

2) Ontwerp YouTube / Netflix (een wereldwijde videostreaming-service)?

Antwoord:
Dingen om te analyseren:

  • In video's zal de service een enorme hoeveelheid gegevens opslaan en verzenden die een groot aantal gebruikers tegelijkertijd kunnen bekijken en delen.
  • Statistieken opnemen over video's, bijvoorbeeld het totale aantal weergaven, stemmen omhoog / omlaag, enz.
  • In realtime reacties op video's toevoegen.

componenten:

  • OC - Wolken zoals AWS, OpenConnect die fungeren als een netwerk voor contentlevering.
  • Backend - Database
  • Client - Elk apparaat (Desktop, Android, iPhone) van waaruit u de video op YouTube / Netflix afspeelt.

Laten we doorgaan naar de volgende interviewvragen voor systeemontwerp.

3) Quora / Reddit / HackerNews ontwerpen (een sociaal netwerk + prikborddienst)?

Antwoord:
Dingen om te analyseren:

De mensen die de services gebruiken, kunnen links delen of vragen stellen. Andere gebruikers kunnen vragen beantwoorden of reageren op de gedeelde links. Dus de service moet het volgende doen:

  • Registreert statistieken voor elk antwoord, bijvoorbeeld het totale aantal weergaven, hogere stemmen / lagere stemmen, enz.
  • Gebruikers moeten in staat zijn andere gebruikers of onderwerpen te volgen
  • Lijst met topvragen op de tijdlijn van alle gebruikers en de onderwerpen die ze volgen (vergelijkbaar met het genereren van nieuwsfeeds).

4) Ontwerp Facebook Messenger of WhatsApp (een wereldwijde chatservice)?

Antwoord:
Dit zijn de basisvragen voor System Design-interviews die in een interview worden gesteld. Dingen om te analyseren:

  • Ontwerp één op één gesprekken tussen gebruikers.
  • Uw ontwerp uitbreiden om groepschats te ondersteunen.
  • Wat kan er worden gedaan als de gebruiker geen verbinding heeft met internet?
  • Wanneer pushmeldingen verzenden?
  • Hoe end-to-end encryptie te bieden?

Structuur:

Client> Load balancer> Nodes> Cache (Redis)> Database (Casandra)

5) Ontwerpzoektypekop (automatisch aanvullen)?

Antwoord:
Dingen om te analyseren:

  • Typeahead suggesties worden verstrekt.
  • Criteria voor het kiezen van de suggesties.
  • Moet het systeem realtime zijn?
  • Ondersteuning van personalisatie met de suggesties.
  • Vragen per seconde die door het systeem moeten worden verwerkt.
  • Hoeveelheid gegevens die moeten worden opgeslagen.

Deel 2 - Interviewvragen systeemontwerp (geavanceerd)

Laten we nu eens kijken naar de geavanceerde interviewvragen voor systeemontwerp.

6) Ontwerp Dropbox / Google Drive / Google Photos?

Antwoord:
Dingen om te analyseren:

  • Hoe bestanden of foto's uploaden / bekijken / zoeken / delen?
  • Volg machtigingen voor het delen van bestanden.
  • Toestaan ​​dat meerdere gebruikers hetzelfde document bewerken.

7) Ontwerp Facebook, Twitter of Instagram?

Antwoord:
Functies waarmee rekening moet worden gehouden:

  • Enkele van de te ondersteunen Twitter / Facebook / Instagram-functies.
  • Moeten antwoorden op tweets ondersteunen / tweets groeperen op basis van gesprekken.
  • Privacycontroles rond elke tweet.
  • Trending tweets ondersteunen
  • Directe berichten
  • Vermeldingen / Tagging

Dingen om te analyseren:

  • Het aantal gebruikers en verkeer dat door het systeem moet worden afgehandeld.
  • Aantal volgers dat de gebruiker heeft.
  • Het aantal keren dat de tweet is begunstigd.

Componenten die moeten worden ontworpen:

  • Nieuwsfeed generatie
  • Sociale grafiek
  • Systematisch zoeken en opslaan van berichten / tweets.

Laten we doorgaan naar de volgende interviewvragen voor systeemontwerp.

8) Een webcrawler ontwerpen?

Antwoord:
Schaalbare service is vereist die het hele web kan doorzoeken en honderden miljoenen webdocumenten kan verzamelen.

Dingen om te analyseren:

  • Nieuwe webpagina's zoeken.
  • Prioriteit geven aan webpagina's die dynamisch veranderen.
  • Ervoor zorgen dat de crawler niet onbeperkt aan hetzelfde domein is gekoppeld.

9) Ontwerp Uber:

Antwoord:
Dit zijn de veelgestelde vragen over System Design-interviews in een interview. Architectuur: monolithische / microservices (realtime service, front-end (applicatie) en database)

  • De backend onderhoudt het mobiele telefoonverkeer en clients maken via mobiele data verbinding met de backend.
  • Klanten linken naar het verzendsysteem dat overeenkomt met bestuurders en rijders.
  • Verzending is bijna volledig geschreven in node.js.
  • Kaarten / ETA: Om een ​​verzending een intelligente keuze te laten maken, is het belangrijk om kaarten en routegegevens te ontvangen.
  • Services: bedrijfslogica, meestal geschreven in python.
  • Databases: Postgres, Redis, MySQL.

Dingen om te analyseren:

  • Klant die een rit aanvraagt ​​en hoe deze economisch kan worden afgestemd op de chauffeurs in de buurt.
  • Opslag van tonnen geografische locaties voor bestuurders en rijders die altijd onderweg zijn.
  • Updates voor stuurprogrammalocaties afhandelen.

10) Een API-snelheidsbegrenzer (Github) ontwerpen?

Antwoord:
Dingen om te analyseren:

  • Beperking van het aantal verzoeken dat een entiteit binnen een tijdvenster naar een API kan verzenden, bijvoorbeeld tien verzoeken per seconde.
  • Snelheidsbeperking zou moeten werken voor een verspreide opstelling, omdat de API's bereikbaar zijn via een groep servers.

Aanbevolen artikelen

Dit is een gids voor de lijst met System Design Interview Vragen en Antwoorden zodat de kandidaat deze System Design Interview Vragen gemakkelijk kan beantwoorden. Hier in dit bericht hebben we de beste interviewvragen over systeemontwerp bestudeerd die vaak in interviews worden gesteld. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Vragen tijdens solliciteren bij AutoCAD
  2. Vragen tijdens solliciteren bij Photoshop
  3. Adobe Illustrator voor beginners
  4. Assistent grafisch ontwerper