Uvod v vprašanja in odgovore za intervju z zasnovo sistema

Zasnova sistema je postopek definiranja elementov sistema, kot so arhitektura, komponente in moduli, različni vmesniki teh komponent in statistika, ki poteka skozi ta sistem. Z inženiringom logičnega in učinkovitega sistema naj bi zadovoljili posebne zahteve in potrebe podjetja ali organizacije. Vključuje organiziran pristop k zasnovi sistema. Za upoštevanje vseh povezanih spremenljivk sistema je potreben pristop od spodaj navzgor ali od zgoraj navzdol. Oblikovalec uporablja jezike za modeliranje za prenos podatkov in znanja v strukturo sistema, ki je opredeljen z združljivim naborom pravil in definicij. Načrti so lahko opisani v besedilnih ali grafičnih jezikih za modeliranje.

Nekaj ​​primerov jezikov za grafično modeliranje je:

  • Unified Modeling Language (UML): Programsko opremo opisuje tako vedenjsko kot strukturno z grafičnimi notacijami.
  • Zapis o modeliranju poslovnih procesov (BPMN): Uporablja se za modeliranje procesov
  • Jezik modeliranja sistemov (SysML): Uporablja se za inženiring sistemov.
  • Diagram poteka: Simbolični ali stopenjski prikaz algoritma.

Kaj bi morali predvideti v intervjuju za oblikovanje sistema?

Takšen intervju se običajno začne z zelo odprto težavo, kot je oblikovanje lastnega družbenega omrežja (kot so Facebook, Twitter). Medtem ko razprava napreduje, bo anketar dodal dodatne omejitve ali predpostavke za zmanjšanje obsega problema.

Da bi se spoprijeli s temi vprašanji, vam pomagajo prakse in strukturiran pristop.

Zdaj, če iščete službo, povezano z oblikovanjem sistema, se morate pripraviti na vprašanja o intervjuju za oblikovanje sistema 2019. Res je, da je vsak intervju drugačen glede na različne profile delovnih mest. Tu smo pripravili pomembna sistemska vprašanja o intervjujih in odgovore, ki vam bodo pomagali doseči uspeh v intervjuju.

V tem članku za leta 2019 Intervju Vprašanja o oblikovanju sistema bomo predstavili 10 najpomembnejših in najpogosteje zastavljenih vprašanj Intervju o zasnovi sistema. Ta vprašanja so razdeljena na dva dela:

1. del - Oblikovanje sistema IntervjuVprašanja (osnovno)

Ta prvi del zajema osnovno zasnovo sistema Intervjuska vprašanja in odgovori

Q1) Oblikujte TinyURL ali bit.ly (storitev za krajšanje URL-jev)?

Odgovor:
Omislite si funkcije, ki bi jih moral sistem najprej podpreti. Drugič, izmislite ocenjene številke, kako lahko sistem je razširljiv.

Med načrtovanjem storitve je treba upoštevati tri stvari:

  • API (REST API) - odjemalčev komunikacijski pristop s storitvijo skupaj z izravnalnikom obremenitve, ki je sprednji del storitve.
  • Aplikacijski sloj - nitke ali gostitelji, ki prevzamejo URL in ustvarijo majhen URL zanjo in jih shranijo v obstojni sloj.
  • Obstojni sloj - zbirka podatkov

Kaj je treba analizirati:

  • Ustvarite edinstven ID za vsak URL in ustvarite ID-je v merilu, ker 1000 zahtev za krajšanje URL-jev prihaja vsako sekundo.
  • Preusmeritve storitvenega ročaja.
  • Podpirajte URL-je po meri.
  • Sledite statistiki klikov
  • Izbrišite pretečene URL-je

2) Oblikujte YouTube / Netflix (globalno storitev za pretakanje videoposnetkov)?

Odgovor:
Kaj je treba analizirati:

  • V videoposnetkih bo storitev shranjevala in prenašala ogromno količino podatkov, ki si jih lahko veliko število uporabnikov hkrati ogleda in jih deli.
  • Zapišite statistične podatke o videoposnetkih, na primer o skupnem številu ogledov, glasov / glasov navzdol itd.
  • Dodajanje komentarjev na videoposnetke v realnem času.

Sestavni deli:

  • OC - Oblaki, kot je AWS, OpenConnect, ki delujejo kot omrežje za pošiljanje vsebin.
  • Backend - Database
  • Naročnik - Vsaka naprava (Desktop, Android, iPhone), s katere predvajate video na YouTube / Netflix.

Pojdimo na naslednja vprašanja o intervjuju za oblikovanje sistema.

3) Oblikovanje Quora / Reddit / HackerNews (socialno omrežje + storitev oglasne deske)?

Odgovor:
Kaj je treba analizirati:

Ljudje, ki uporabljajo storitve, lahko delijo povezave ali postavljajo vprašanja. Drugi uporabniki lahko odgovarjajo na vprašanja ali komentirajo povezave v skupni rabi. Storitev naj torej stori naslednje:

  • Zabeleži statistiko za vsak odgovor, npr. Skupno število ogledov, glasov / glasov navzdol itd.
  • Uporabniki bi morali spremljati druge uporabnike ali teme
  • Seznam najboljših vprašanj na časovni premici vseh uporabnikov in teme, ki jim sledijo (podobno kot generacija novic).

4) Oblikujte Facebook Messenger ali WhatsApp (globalno storitev za klepet)?

Odgovor:
To je osnovno vprašanje o zasnovi sistema, ki so ga postavili v intervjuju. Kaj je treba analizirati:

  • Oblikujte medsebojne pogovore med uporabniki.
  • Razširitev zasnove na podporne skupinske klepete.
  • Kaj je mogoče storiti, če uporabnik ni povezan z internetom?
  • Kdaj poslati push obvestila?
  • Kako zagotoviti šifriranje od konca do konca?

Struktura:

Naročnik> Izravnalnik nalaganja> Vozlišča> Predpomnilnik (Redis)> Baza podatkov (Casandra)

5) Oblikujte Search Typeahead (samodejno dokončanje)?

Odgovor:
Kaj je treba analizirati:

  • Predložiti je treba predloge vrste.
  • Merila za izbiro predlogov.
  • Ali mora biti sistem sproten?
  • Podprite personalizacijo s predlogi.
  • Poizvedbe na sekundo, ki jih mora obravnavati sistem.
  • Količina podatkov, ki jih je treba shraniti.

2. del - Vprašanja za razgovor o zasnovi sistema (napredno)

Zdaj si oglejmo napredna vprašanja o intervjuju za sistemski dizajn.

6) Oblikujte Dropbox / Google Drive / Google Photos?

Odgovor:
Kaj je treba analizirati:

  • Kako naložiti / ogled / iskanje / skupno rabo datotek ali fotografij?
  • Sledite dovoljenjem za skupno rabo datotek.
  • Dovoli več uporabnikom urejanje istega dokumenta.

7) Oblikujte Facebook, Twitter ali Instagram?

Odgovor:
Funkcije, ki jih je treba upoštevati:

  • Nekatere funkcije Twitterja / Facebooka / Instagrama, ki jih je treba podpreti.
  • Morate podpirati odgovore na tweets / razvrščati tvite po pogovorih.
  • Nadzor zasebnosti okoli vsakega tvita.
  • Podpora tvitom v trendu
  • Neposredno sporočanje
  • Omembe / označevanje

Kaj je treba analizirati:

  • Število uporabnikov in promet, ki ga bo upravljal sistem.
  • Količina sledilcev, ki jih ima uporabnik.
  • Kolikokrat je bil tvit dodeljen favoriziranju.

Komponente, ki jih je treba načrtovati:

  • Generacija novic
  • Socialni graf
  • Sistematično iskanje in shranjevanje objav / tvitov.

Pojdimo na naslednja vprašanja o intervjuju za oblikovanje sistema.

8) Oblikujte spletnega pajka?

Odgovor:
Potrebna je obsežna storitev, ki lahko plazi po celotnem spletu in zbere stotine milijonov spletnih dokumentov.

Kaj je treba analizirati:

  • Iskanje novih spletnih strani.
  • Prednostno določanje prednosti spletnih strani, ki se dinamično spreminjajo.
  • Zagotavljanje, da pajka ne bo brezmejno pritrjena na isto domeno.

9) Oblikovanje Uber:

Odgovor:
To so pogosto zastavljena vprašanja o oblikovanju sistema v intervjuju. Arhitektura: Monolitne / mikro storitve (storitev v realnem času, sprednja stran (aplikacija) in baza podatkov)

  • Orodje za oskrbo storitev je mobilni promet, stranke pa se prek mobilnih podatkov povežejo z zaledjem.
  • Stranke se povezujejo na dispečerski sistem, ki ustreza voznikom in voznikom.
  • Odprema je skoraj v celoti napisana v node.js.
  • Zemljevidi / ETA: Za pošiljanje inteligentne odločitve je pomembno, da dobite zemljevide in podatke o poti.
  • Storitve: Storitve poslovne logike so večinoma napisane v pythonu.
  • Baze podatkov: Postgres, Redis, MySQL.

Kaj je treba analizirati:

  • Stranka zahteva vožnjo in kako jih ekonomsko uskladiti z bližnjimi vozniki.
  • Shranjevanje ton geografskih lokacij za voznike in voznike, ki so vedno na poti.
  • Ravnanje s posodobitvami voznikovih lokacij.

10) Oblikujte omejitev hitrosti API-ja (Github)?

Odgovor:
Kaj je treba analizirati:

  • Omejitev števila zahtev, ki jih lahko podjetje pošlje API-ju v časovnem oknu, na primer deset zahtev na sekundo.
  • Omejevanje hitrosti bi moralo delovati za razpršeno namestitev, saj so API-ji dosegljivi prek skupine strežnikov.

Priporočeni članki

To je vodnik po seznamu vprašanj in odgovorov za intervju o oblikovanju sistema, tako da lahko kandidat brez težav razreši ta vprašanja o intervjuju za oblikovanje sistema. Tu v tej objavi smo preučili vrhunska vprašanja o intervjuju za oblikovanje sistema, ki jih pogosto postavljamo v intervjujih. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Vprašanja za intervju AutoCAD
  2. Vprašanja o intervjuju za Photoshop
  3. Adobe Illustrator za začetnike
  4. Pomočnik grafičnega oblikovalca