Johdanto järjestelmän suunnitteluun Haastattelu Kysymykset ja vastaukset
Järjestelmäsuunnittelu on menettely, jolla määritetään järjestelmän elementit, kuten arkkitehtuuri, komponentit ja moduulit, näiden komponenttien eri rajapinnat ja järjestelmän läpi käyvät tilastot. Loogisen ja tehokkaan järjestelmän suunnittelulla se on tarkoitettu tyydyttämään yrityksen tai organisaation erityiset vaatimukset ja tarpeet. Se edellyttää organisoitua lähestymistapaa järjestelmän suunnitteluun. Ylhäältä tai alhaalta ylöspäin -lähestymistapaa tarvitaan kaikkien järjestelmään liittyvien muuttujien huomioon ottamiseksi. Suunnittelija käyttää mallinnuskieliä tietojen välittämiseen järjestelmän rakenteessa, joka määritellään yhteensopivalla säännöillä ja määritelmillä. Suunnittelu voidaan kuvata tekstimuodossa tai graafisessa mallinnuskielessä.
Joitakin esimerkkejä graafisista mallinnuskieleistä ovat:
- Unified Modeling Language (UML): Se kuvaa ohjelmistoa sekä käyttäytymisessä että rakenteessa graafisen merkinnän avulla.
- Liiketoimintaprosessien mallintaminen (BPMN): Sitä käytetään prosessien mallintamiseen
- Systems Modeling Language (SysML): Sitä käytetään järjestelmien suunnitteluun.
- Vuokaavio: Symbolinen tai vaiheittainen kuvaus algoritmista.
Mitä pitäisi suunnitella järjestelmähaastattelussa?
Tällainen haastattelu alkaa yleensä erittäin avoimella ongelmalla, kuten oman sosiaalisen verkoston (kuten Facebook, Twitter) suunnittelulla. Keskustelun edetessä haastattelija lisää ylimääräisiä rajoituksia tai oletuksia ongelman laajuuden vähentämiseksi.
Näiden kysymysten ratkaisemiseksi asiat, jotka auttavat sinua harjoittelemaan ja omaamaan jäsennellyn lähestymistavan.
Nyt, jos etsit työtä, joka liittyy järjestelmän suunnitteluun, sinun on varauduttava 2019: n järjestelmän suunnittelun haastattelukysymyksiin. On totta, että jokainen haastattelu on erilainen työprofiilien mukaan. Täällä olemme laatineet tärkeät järjestelmäsuunnittelukysymykset ja -vastaukset, jotka auttavat sinua menestymään haastattelussa.
Tässä 2019 järjestelmän suunnitteluhaastattelukysymyksiä käsittelevässä artikkelissa esitetään 10 tärkeintä ja usein kysyttyä järjestelmäsuunnitteluhaastattelua koskevaa kysymystä. Nämä kysymykset on jaettu kahteen osaan, jotka ovat seuraavat:
Osa 1 - Järjestelmäsuunnittelu Haastattelut (perus)
Tämä ensimmäinen osa kattaa järjestelmän suunnittelun perushaastattelukysymykset ja -vastaukset
Q1) Suunnittele TinyURL tai bit.ly (URL-osoitetta lyhentävä palvelu)?
Vastaus:
Esitä ominaisuuksia, joita järjestelmän tulisi tukea ensin. Toiseksi keksiä arvioitu määrä kuinka skaalautuva järjestelmä voi olla.
Suunnitellessasi palvelua on otettava huomioon kolme asiaa:
- API (REST API) - Asiakkaan viestintälähtöisyys palvelun kanssa kuorman tasapainottajan kanssa, joka on palvelun etuosa.
- Sovelluskerros - työntekijän säieet tai isännät, jotka ottavat URL: n ja tuottavat pienen URL-osoitteen sille ja tallentavat molemmat pysyvyyskerrokseen.
- Pysyvyyskerros - tietokanta
Analysoitavat asiat:
- Luo jokaiselle URL-osoitteelle yksilöivä tunnus ja luo mittakaavassa ID, koska 1000: n URL: n lyhennyspyynnöt tulevat joka toinen.
- Huoltokäsittelyn uudelleenohjaukset.
- Tukea mukautettuja URL-osoitteita.
- Seuraa napsautustilastoja
- Poista vanhentuneet URL-osoitteet
2) Suunnittele YouTube / Netflix (maailmanlaajuinen videoiden suoratoistopalvelu)?
Vastaus:
Analysoitavat asiat:
- Videoissa palvelu tallentaa ja siirtää valtavan määrän tietoja, joita suuri määrä käyttäjiä voi katsella ja jakaa niitä samanaikaisesti.
- Tallenna videoita koskevia tilastotietoja, esimerkiksi katselukertojen kokonaismäärä, ylös- / alasääni jne.
- Kommenttien lisääminen videoihin reaaliajassa.
komponentit:
- OC - Pilvet, kuten AWS, OpenConnect, jotka toimivat sisällönjakeluverkkona.
- Taustaohjelma - tietokanta
- Asiakas - mikä tahansa laite (työpöytä, Android, iPhone), jolla toistat videota YouTube / Netflix -sovelluksessa.
Siirrymme seuraavaan järjestelmän suunnitteluhaastatteluun liittyviin kysymyksiin.
3) Suunnitteletko Quora / Reddit / HackerNews (sosiaalinen verkosto + viestitaulu-palvelu)?
Vastaus:
Analysoitavat asiat:
Palveluita käyttävät ihmiset voivat jakaa linkkejä tai lähettää kysymyksiä. Muut käyttäjät voivat vastata kysymyksiin tai kommentoida jaettuja linkkejä. Joten palvelun tulisi toimia seuraavasti:
- Kirjaa tilastot jokaisesta vastauksesta, esim. Katselukertojen kokonaismäärä, ylös- / alasääni jne.
- Käyttäjien tulisi voida seurata muita käyttäjiä tai aiheita
- Luettelo kaikkien käyttäjien aikajanalla olevista tärkeimmistä kysymyksistä ja heidän seuraamistaan aiheista (samanlainen kuin uutissyötteiden luominen).
4) Suunnittele Facebook Messenger tai WhatsApp (maailmanlaajuinen chat-palvelu)?
Vastaus:
Tämä on haastattelussa esitetyt perussuunnitteluhaastattelukysymykset. Analysoitavat asiat:
- Suunnittele yksi yhdestä käyttäjien välisestä keskustelusta.
- Laajennat suunnittelusi tukemaan ryhmäkeskusteluja.
- Mitä voidaan tehdä, kun käyttäjä ei ole yhteydessä Internetiin?
- Milloin lähettää push-ilmoituksia?
- Kuinka tarjota loppupään salaus?
Rakenne:
Asiakas> Kuormituksen tasapainotus> Solmut> Välimuisti (Redis)> Tietokanta (Casandra)
5) Suunnitteluhaun typeahead (automaattinen täydennys)?
Vastaus:
Analysoitavat asiat:
- Typeahead-ehdotukset toimitetaan.
- Perusteet ehdotusten valinnalle.
- Pitäisikö järjestelmän olla reaaliaikainen?
- Tue mukauttamista ehdotuksilla.
- Järjestelmän käsittelemät kyselyt sekunnissa.
- Tallennettavien tietojen määrä.
Osa 2 - Järjestelmäsuunnitteluhaastattelut (Advanced)
Katsokaamme nyt edistyneitä järjestelmäsuunnitteluhaastattelukysymyksiä.
6) Suunnittele Dropbox / Google Drive / Google Photos?
Vastaus:
Analysoitavat asiat:
- Kuinka ladata / katsella / etsiä / jakaa tiedostoja tai valokuvia?
- Seuraa tiedostojen jakamisoikeuksia.
- Annetaan useiden käyttäjien muokata samaa asiakirjaa.
7) Suunnitteletko Facebook, Twitter tai Instagram?
Vastaus:
Ominaisuudet, jotka on otettava huomioon:
- Jotkut tuetavista Twitter / Facebook / Instagram -ominaisuuksista.
- Tarvitsemme tukea vastauksia tweetteihin / ryhmitellä tweettejä keskustelujen avulla.
- Tietosuojavalvonta jokaisen twiitin ympärillä.
- Tukee trendikkäitä tweettejä
- Suorat viestit
- Mainitsee / merkitseminen
Analysoitavat asiat:
- Järjestelmän käsittelemien käyttäjien lukumäärä ja liikenne.
- Käyttäjällä seuraajien määrä.
- Se kuinka monta kertaa twiittiä on suosittu.
Suunniteltavat komponentit:
- Uutissyötteiden sukupolvi
- Sosiaalinen kaavio
- Systemaattinen haku ja tallennus viesteille / tweetteille.
Siirrymme seuraavaan järjestelmän suunnitteluhaastatteluun liittyviin kysymyksiin.
8) Suunnitteletko Web-indeksointirobotin?
Vastaus:
Vaaditaan skaalautuvaa palvelua, joka voi indeksoida koko webin ja kerätä satoja miljoonia web-asiakirjoja.
Analysoitavat asiat:
- Uusien verkkosivujen löytäminen.
- Dynaamisesti muuttuvien verkkosivujen priorisointi.
- Varmistetaan, että indeksointirobotti ei ole rajattomasti kiinnitetty samaan verkkotunnukseen.
9) Suunnittelu Uber:
Vastaus:
Tämä on haastattelussa usein kysyttyjä System Design -haastattelukysymyksiä. Arkkitehtuuri: Monoliittiset / mikropalvelut (reaaliaikainen palvelu, käyttöliittymä (sovellus) ja tietokanta)
- Taustaohjelma palvelee matkapuhelinliikennettä ja asiakkaat muodostavat yhteyden taustaohjelmaan mobiilidatan kautta.
- Asiakkaat linkittävät kuljettajaa ja kuljettajaa vastaavaan lähetysjärjestelmään.
- Lähetys on kirjoitettu melkein kokonaan node.js.
- Maps / ETA: Jotta lähettäminen voisi toimia älykkäästi, on tärkeää saada karttoja ja reititystietoja.
- Palvelut: Liiketoimintalogiikkapalvelut kirjoitetaan pääosin pythonilla.
- Tietokannat: Postgres, Redis, MySQL.
Analysoitavat asiat:
- Asiakas, joka pyytää matkaa ja kuinka taloudellisesti sovittaa hänet läheisiin kuljettajiin.
- Varastoidaan tonnia maantieteellisiä paikkoja kuljettajille ja ajajille, jotka ovat aina liikkeellä.
- Käsittely päivityksiä ohjaimen sijaintiin.
10) Suunnitteletko API-nopeusrajoitimen (Github)?
Vastaus:
Analysoitavat asiat:
- Rajoittamalla pyyntöjen määrää, jonka yhteisö voi lähettää sovellusliittymälle aikaikkunassa, esimerkiksi kymmenen pyyntöä sekunnissa.
- Nopeudenrajoituksen tulisi toimia hajallaan olevassa asennuksessa, koska sovellusliittymät ovat tavoitettavissa palvelinryhmän kautta.
Suositellut artikkelit
Tämä on opas luetteloon järjestelmän suunnitteluhaastattelua koskevista kysymyksistä ja vastauksista, jotta ehdokas voi helposti hakea nämä järjestelmän suunnittelun haastattelua koskevat kysymykset. Täällä tässä viestissä olemme tutkineet tärkeimpiä järjestelmäsuunnitteluhaastattelukysymyksiä, joita usein kysytään haastatteluissa. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -
- AutoCAD-haastattelukysymykset
- Photoshop -haastattelukysymykset
- Adobe Illustrator aloittelijoille
- Graafisen suunnittelijan assistentti