Top 10 otázok a odpovedí na rozhovor o návrhu systému (aktualizované pre rok 2019)

Obsah:

Anonim

Úvod do otázok a odpovedí na rozhovor o návrhu systému

Návrh systému je postup definovania prvkov systému, ako sú architektúra, komponenty a moduly, rôzne rozhrania týchto komponentov a štatistika, ktorá prechádza týmto systémom. Zámerom vytvorenia logického a efektívneho systému je uspokojiť špecifické požiadavky a potreby podniku alebo organizácie. Zahŕňa to organizovaný prístup k navrhovaniu systému. Prístup zdola nahor alebo zhora nadol je potrebný na zváženie všetkých súvisiacich premenných systému. Modelovacie jazyky používa projektant na sprostredkovanie údajov a znalostí v štruktúre systému, ktorý je definovaný zlučiteľným súborom pravidiel a definícií. Dizajn môže byť opísaný v jazykoch textového alebo grafického modelovania.

Niektoré príklady jazykov grafického modelovania sú:

  • Unified Modeling Language (UML): Popisuje softvér behaviorálne aj štrukturálne pomocou grafického zápisu.
  • Zápis modelovania podnikových procesov (BPMN): Používa sa na modelovanie procesov
  • Systémový modelovací jazyk (SysML): Používa sa na systémové inžinierstvo.
  • Vývojový diagram: Symbolické alebo postupné zobrazenie algoritmu.

Čo by sme mali očakávať v rozhovore o návrhu systému?

Takýto pohovor sa zvyčajne začína veľmi otvoreným problémom, ako je napríklad navrhnutie vlastnej sociálnej siete (napríklad Facebook, Twitter). Ako diskusia napreduje, anketár pridá ďalšie obmedzenia alebo predpoklady na zníženie rozsahu problému.

S cieľom vyriešiť tieto otázky sú veci, ktoré vám pomôžu cvičiť a majú štruktúrovaný prístup.

Teraz, ak hľadáte prácu, ktorá súvisí s návrhom systému, musíte sa pripraviť na pohovorové otázky o návrhu systému z roku 2019. Je pravda, že každý pohovor sa líši podľa rôznych profilov zamestnania. Tu sme pripravili dôležité otázky a odpovede týkajúce sa návrhu systému rozhovorov, ktoré vám pomôžu dosiahnuť úspech v pohovore.

V tomto článku o otázkach týkajúcich sa rozhovoru o návrhu systému z roku 2019 predstavíme 10 najdôležitejších a často kladených otázok o rozhovoroch o návrhu systému. Tieto otázky sú rozdelené na dve časti:

1. časť - Návrh systému InterviewQuestions (Basic)

Táto prvá časť sa venuje základným otázkam a odpovediam na návrh systému

Q1) Dizajn TinyURL alebo bit.ly (služba na skrátenie adresy URL)?

odpoveď:
Príďte s prvkami, ktoré by mal systém najprv podporovať. Po druhé, príďte s odhadovaným počtom škálovateľnosti systému.

Pri navrhovaní služby je potrebné zvážiť tri veci:

  • API (REST API) - komunikačný prístup klienta k službe spolu s vyrovnávačom záťaže, ktorý je frontend služby.
  • Vrstva aplikácie - pracovné vlákna alebo hostitelia, ktorí vezmú adresu URL a vygenerujú pre ňu malú adresu URL a uložia ich do vrstvy perzistencie.
  • Perzistencia vrstva - databáza

Čo je potrebné analyzovať:

  • Vytvorte jedinečný identifikátor pre každú adresu URL a vygenerujte identifikátor v mierke, pretože každú sekundu prichádzajú 1 000 žiadostí o skrátenie adresy URL.
  • Presmerovania obslužnej rukoväte.
  • Podporte vlastné adresy URL.
  • Sledujte štatistiky kliknutí
  • Odstrániť vypršané adresy URL

2) Dizajn YouTube / Netflix (globálna služba streamovania videa)?

odpoveď:
Čo je potrebné analyzovať:

  • Vo videách služba uloží a prenesie obrovské množstvo údajov, ktoré môže veľký počet používateľov sledovať a zdieľať súčasne.
  • Zaznamenávajte štatistické údaje o videách, napríklad o celkovom počte prehratí, nahor / nadol atď.
  • Pridávanie komentárov k videám v reálnom čase.

komponenty:

  • OC - Mraky ako AWS, OpenConnect, ktoré fungujú ako sieť na doručovanie obsahu.
  • Backend - databáza
  • Klient - akékoľvek zariadenie (Desktop, Android, iPhone), z ktorého prehrávate video na stránkach YouTube / Netflix.

Prejdime k ďalším otázkam rozhovoru o návrhu systému.

3) Navrhovanie Quora / Reddit / HackerNews (sociálna sieť + služba nástenky)?

odpoveď:
Čo je potrebné analyzovať:

Ľudia, ktorí používajú tieto služby, môžu zdieľať odkazy alebo uverejňovať otázky. Ostatní používatelia môžu odpovedať na otázky alebo komentovať zdieľané odkazy. Služba by preto mala robiť toto:

  • Zaznamenáva štatistiku pre každú odpoveď, napr. Celkový počet zobrazení, hlasovanie nahor / nadol atď.
  • Používatelia by mali mať možnosť sledovať ostatných používateľov alebo témy
  • Zoznam najdôležitejších otázok na časovej osi od všetkých používateľov a tém, ktoré sledujú (podobne ako pri vytváraní noviniek).

4) Navrhnite Facebook Messenger alebo WhatsApp (globálna chatovacia služba)?

odpoveď:
Toto sú základné otázky týkajúce sa rozhovoru s návrhom systému, ktoré boli položené počas rozhovoru. Čo je potrebné analyzovať:

  • Navrhnite rozhovory medzi používateľmi.
  • Rozšírenie dizajnu o podporu skupinových rozhovorov.
  • Čo sa dá urobiť, keď používateľ nie je pripojený k internetu?
  • Kedy posielať oznámenia push?
  • Ako zabezpečiť šifrovanie end-to-end?

štruktúra:

Klient> Vyrovnávač záťaže> Uzly> Vyrovnávacia pamäť (Redis)> Databáza (Casandra)

5) Návrhové vyhľadávanie Typeahead (Automatické dopĺňanie)?

odpoveď:
Čo je potrebné analyzovať:

  • Navrhované návrhy.
  • Kritériá pre výber návrhov.
  • Musí byť systém v reálnom čase?
  • Podporte prispôsobenie pomocou návrhov.
  • Systém spracováva otázky za sekundu.
  • Množstvo údajov, ktoré sa majú uložiť.

2. časť - Rozhovory týkajúce sa návrhu systému (rozšírené)

Pozrime sa teraz na pokročilé otázky týkajúce sa rozhovoru o návrhu systému.

6) Design Dropbox / Disk Google / Fotografie Google?

odpoveď:
Čo je potrebné analyzovať:

  • Ako nahrávať / prezerať / vyhľadávať / zdieľať súbory alebo fotografie?
  • Sledovať povolenia na zdieľanie súborov.
  • Umožňuje viacerým používateľom upravovať ten istý dokument.

7) Navrhnite Facebook, Twitter alebo Instagram?

odpoveď:
Funkcie, ktoré je potrebné zvážiť:

  • Niektoré funkcie Twitter / Facebook / Instagram musia byť podporované.
  • Potreba podporovať odpovede na tweety / zoskupovať tweety podľa konverzácií.
  • Ovládanie ochrany osobných údajov okolo každého tweetu.
  • Podpora trendov tweety
  • Priame správy
  • Zmienky / Označovanie

Čo je potrebné analyzovať:

  • Počet používateľov a premávky, ktoré má systém spracovať.
  • Počet sledovateľov, ktorých má používateľ.
  • Počet zvýhodnení tweetu.

Komponenty, ktoré sa majú navrhnúť:

  • Generovanie noviniek
  • Sociálny graf
  • Systematické vyhľadávanie a ukladanie príspevkov.

Prejdime k ďalším otázkam rozhovoru o návrhu systému.

8) Navrhnite webový prehľadávač?

odpoveď:
Vyžaduje sa škálovateľná služba, ktorá dokáže prehľadávať celý web a môže zhromažďovať stovky miliónov webových dokumentov.

Čo je potrebné analyzovať:

  • Hľadanie nových webových stránok.
  • Prioritizácia webových stránok, ktoré sa dynamicky menia.
  • Zabezpečenie toho, aby prehľadávač nebol neobmedzene pripojený k rovnakej doméne.

9) Dizajn Uber:

odpoveď:
Toto sú najčastejšie kladené otázky týkajúce sa rozhovoru pri návrhu systému počas rozhovoru. Architektúra: Monolitické / mikro služby (služba v reálnom čase, front-end (aplikácia) a databáza)

  • Backend slúži na údržbu mobilného telefónu a klienti sa k backendu pripájajú prostredníctvom mobilných dát.
  • Klienti odkazujú na dispečerský systém, ktorý zodpovedá vodičom a jazdcom.
  • Expedícia je napísaná takmer úplne v node.js.
  • Mapy / ETA: Na to, aby bolo možné odoslať inteligentný výber, je dôležité získať mapy a smerovacie údaje.
  • Služby: Obchodné logické služby väčšinou napísané v pythone.
  • Databázy: Postgres, Redis, MySQL.

Čo je potrebné analyzovať:

  • Zákazník, ktorý žiada jazdu a ako ich ekonomicky zladiť s vodičmi v okolí.
  • Ukladanie ton geografických polôh pre vodičov a jazdcov, ktorí sú stále v pohybe.
  • Spracovanie aktualizácií o miestach vodiča.

10) Navrhnite obmedzovač rýchlosti API (Github)?

odpoveď:
Čo je potrebné analyzovať:

  • Obmedzenie počtu žiadostí, ktoré môže entita odoslať do API v časovom okne, napríklad desať žiadostí za sekundu.
  • Obmedzenie rýchlosti by malo fungovať pre rozptýlené nastavenie, pretože rozhrania API sú dostupné prostredníctvom skupiny serverov.

Odporúčané články

Toto bol sprievodca zoznamom otázok a odpovedí na návrh systému Interview, aby kandidát mohol ľahko vykonať tvrdé zásahy do týchto otázok. Tu v tomto príspevku sme študovali najčastejšie otázky týkajúce sa rozhovoru o návrhu systému, ktoré sa často kladú pri rozhovoroch. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Rozhovor s AutoCADom
  2. Otázky týkajúce sa rozhovoru vo Photoshope
  3. Adobe Illustrator pre začiatočníkov
  4. Asistent grafického dizajnéra