Paras vastaus
Tässä on muutama, jonka muistan haastattelemalla escapadeja:
- Suunnittele instagram tai jonkinlainen sisältösyöte. Tämä on itse asiassa SUPER-yleistä, i on täytynyt hankkia se 3 tai 4 kertaa eri yrityksissä. Se on melko pikkuleipä, ja todennäköisesti kysyvät haastattelijat, jotka ovat liian laiskoja parempaan kysymykseen.
- Suunnittelutyyppi eteenpäin / automaattinen täydennys. Lisäksi olet saanut tämän yhden useita kertoja, joskus pienillä variaatioilla. Se perustuu yleensä Trie-tietorakenteeseen. Tämä on hieno harjoitus!
- Suunnittele viestiväylä (apache kafka / zeromq / rabbitmq). Saatat saada jotain tällaista, jos haastattelet infra-suuntautuneita ohjelmistoja. Tämä on loistava, josta voi syntyä monia erilaisia kohdealueita ja alakysymyksiä.
- Suunnittele LRU-välimuisti. Tavallisesti käytetään kaksoislinkitetyn luettelon toteuttamista, jotta viimeisimpien käytettyjen elementtien poistaminen pysyvästi tapahtuu, kun välimuisti on täynnä.
- Suunnittelu hajautettu välimuisti. Jälleen, se voi olla tarkoitettu infra-suuntautuneelle roolille. Voidaan käyttää myös moniin eri suuntiin.
- Suunnittele tietokantataulukot / tietovarasto. Tämä voi olla tarkoitettu tietotekniikkasuuntautuneemmalle roolille, mutta se on yleistä myös SWE: lle, koska hyvä tietosuunnittelu on erittäin tärkeää.
Tässä on muutama, jota en ole henkilökohtaisesti nähnyt huolimatta siitä, että sitä pidetään yleisesti yleisenä:
- Suunnittele URL-lyhennin
- Suunnittele verkkokauppa / verkkokauppasivusto
Toivottavasti tämä auttaa! Olisin valmis lyödä vetoa siitä, että 4–5 parhaan joukosta kattavat suurimman osan järjestelmäsuunnitteluhaastatteluistasi – ja niille, joita he eivät käsittele, niiden opiskelemisen avulla saadun tiedon pitäisi siirtyä hyvin kysymysten eri muunnelmiin.
Vastaa
Järjestelmän suunnitteluhaastattelut testaa suunnittelutaitosi ja kykynne työskennellä monimutkaisten ja skaalautuvien palveluiden kanssa. Suorituskykysi näissä haastatteluissa määrää, minkä tehtävän ja palkan sinulle tarjotaan. Jos sinulla on kiitettävää suunnittelutaitoa, saat korkeamman tarjouksen. Hyvä resurssi valmistautua tähän haastatteluun: Järjestelmäsuunnitteluhaastattelun kiristäminen
Muutamia esimerkkejä suunnitteluongelmista ovat:
- URL-lyhennyspalvelun suunnittelu, kuten TinyURL
- Instagramin suunnittelu
- Twitterin suunnittelu
- Youtuben suunnittelu
- Facebook Messengerin suunnittelu
- Dropboxin suunnittelu
- Typeahead-ehdotuksen suunnittelu
- Facebookin suunnittelu Newsfeed
- Yelpin suunnittelu
- Suunnittelu Uber
On myös hyvä tutustua hajautettuihin järjestelmäkäsitteisiin, kuten Johdonmukainen hajautus, Tietojen osiointi , Kuormituksen tasaus , Redundanssi ja replikointi , YMP: n lause jne.
Kokemukseni mukaan haastatteluissa paremmin menestyneet ehdokkaat noudattivat näitä seitsemää vaihetta:
Vaihe 1: Vaatimusten selvennys: Esitä aina kysymyksiä löytääksesi ratkaisemasi ongelman tarkka laajuus.
Vaihe 2: Järjestelmärajapinnan määrittely: Määritä, mitä sovellusliittymiä järjestelmältä odotetaan. Tämä varmistaa myös, ettet ole saanut väärää vaatimusta.
Vaihe 3: Kirjekuoren takaosan arvio: Aina on hyvä arvioida suunniteltavan järjestelmän mittakaava.
Vaihe 4: Määritä tietomalli: Vaikka se onkin ei vaadita aikaisin, tämä selventää, miten data kulkee järjestelmän eri komponenttien välillä, ja opastaa myöhemmin myös kohti tietojen osiointia.
Vaihe 5: Korkean tason suunnittelu: Piirrä lohkokaavio, jossa on 5-6 ruutua, jotka edustavat järjestelmän ydinkomponentteja.
Vaihe 6: Yksityiskohtainen komponenttisuunnittelu : Kaivaa syvemmälle 2-3 osaan; haastattelijoiden palautteen tulisi aina ohjata sinua kohti järjestelmän mitä osia hän haluaa sinun selittävän tarkemmin.
Vaihe 7: Pullonkaulat: Yritä keskustella mahdollisimman monta pullonkaulaa ja erilaiset lähestymistavat niiden lieventämiseksi.Toivottavasti tämä auttoi.