Uvod u pitanja i odgovore na internetski dizajn dizajna
Dizajn sustava je postupak definiranja elemenata sustava kao što su arhitektura, komponente i moduli, različita sučelja tih komponenata i statistika koja prolazi kroz taj sustav. Inženjeringom logičnog i učinkovitog sustava nastoji se zadovoljiti specifične potrebe i potrebe poduzeća ili organizacije. To uključuje organizirani pristup dizajniranju sustava. Pristup odozdo prema gore ili od vrha prema dolje potreban je za razmatranje svih povezanih varijabli sustava. Dizajneri koriste modele za prenošenje podataka i znanja u strukturu sustava koja je definirana kompatibilnim nizom pravila i definicija. Dizajni se mogu opisati na jezicima tekstualnog ili grafičkog modeliranja.
Neki od primjera jezika za grafičko modeliranje su:
- Objedinjeni jezik modeliranja (UML): Softver opisuje i bihevioralno i strukturno s grafičkim oznakama.
- Notacija za modeliranje poslovnih procesa (BPMN): koristi se za modeliranje procesa
- Jezik modeliranja sustava (SysML): koristi se za inženjering sustava.
- Dijagram toka: simbolički ili postupni prikaz algoritma.
Što trebam predvidjeti u razgovoru za dizajn sustava?
Takav intervju obično započinje s vrlo otvorenim problemom, poput dizajniranja vlastite društvene mreže (poput Facebooka, Twittera). Kako rasprava napreduje, anketar će dodati dodatna ograničenja ili pretpostavke za smanjenje opsega problema.
Kako biste se uhvatili u koštac sa tim pitanjima, stvari koje vam pomažu u praksi i strukturiranom pristupu.
Ako tražite posao koji je povezan s dizajnom sustava, tada se trebate pripremiti za Intervjuska pitanja o dizajnu sustava za 2019. godinu. Istina je da je svaki razgovor drugačiji prema različitim profilima posla. Ovdje smo pripremili važna Pitanja i odgovore za dizajn sustava koji će vam pomoći u postizanju uspjeha u vašem intervjuu.
U ovom ćemo članku o dizajnu pitanja o intervjuima za 2019. predstaviti 10 najvažnijih i često postavljanih pitanja o intervjuu za dizajn sustava. Ova su pitanja podijeljena u dva dijela:
Dio 1 - Dizajn sustava Intervjui pitanja (osnovno)
Ovaj prvi dio obuhvaća osnovni dizajn sustava Intervjui pitanja i odgovori
Q1) Dizajn TinyURL ili bit.ly (usluga za skraćivanje URL-ova)?
Odgovor:
Osmislite značajke koje bi sustav trebao podržati prvo. Drugo, smislite procijenjene brojeve skalabilnosti sustava.
Tijekom dizajniranja usluge treba uzeti u obzir tri stvari:
- API (REST API) - Klijentov komunikacijski pristup s uslugom zajedno s balansom opterećenja koji je prednji kraj usluge.
- Aplikacijski sloj - radne niti ili domaćini koji uzimaju URL i generiraju maleni URL za njega te ih oboje pohranjuju u sloj trajnosti.
- Sloj trajnosti - Baza podataka
Treba analizirati:
- Stvorite jedinstveni ID za svaki URL i generirajte ID-ove u skali od 1000 zahtjeva za skraćivanje URL-a dolazi svake sekunde.
- Preusmjeravanja upravljačke ručke.
- Podrška prilagođenih URL-ova.
- Pratite statistiku klikova
- Izbrišite istečene URL-ove
2) Dizajnirajte YouTube / Netflix (globalnu uslugu streaminga videa)?
Odgovor:
Treba analizirati:
- U videozapisima usluga će pohranjivati i prenositi ogromnu količinu podataka koju velik broj korisnika može istovremeno gledati i dijeliti.
- Snimite statistike o videozapisima, na primjer, ukupni broj pregleda, povećanih glasova / glasova prema dolje itd.
- Dodavanje komentara na videozapise u stvarnom vremenu.
komponente:
- OC - oblaci poput AWS, OpenConnect, koji djeluju kao mreža za isporuku sadržaja.
- Backend - Baza podataka
- Klijent - bilo koji uređaj (Desktop, Android, iPhone) s kojeg reproducirate video na YouTubeu / Netflixu.
Prijeđimo na sljedeća pitanja o intervjuu za dizajn sustava.
3) Dizajn Quora / Reddit / HackerNews (društvena mreža + usluga ploče s porukama)?
Odgovor:
Treba analizirati:
Ljudi koji koriste usluge mogu dijeliti veze ili postavljati pitanja. Ostali korisnici mogu odgovarati na pitanja ili komentirati zajedničke veze. Dakle, usluga bi trebala učiniti sljedeće:
- Bilježi se statistika za svaki odgovor, npr. Ukupni broj pregleda, povećanih glasova / glasova prema dolje itd.
- Korisnici bi trebali biti u mogućnosti pratiti druge korisnike ili teme
- Popis glavnih pitanja o vremenskoj traci svih korisnika i tema koje slijede (slično generaciji newsfeed-a).
4) Dizajnirajte Facebook Messenger ili WhatsApp (globalnu uslugu za razgovor)?
Odgovor:
Ovo su osnovna pitanja dizajna sustava postavljena u intervjuu. Treba analizirati:
- Dizajnirajte jedan na jedan razgovore između korisnika.
- Proširenje vašeg dizajna na podršku grupnih chatova.
- Što se može učiniti ako korisnik nije spojen na Internet?
- Kada poslati push obavijesti?
- Kako osigurati enkripciju od kraja do kraja?
Struktura:
Klijent> Učitavanje ravnoteže> Čvorovi> Predmemorija (Redis)> Baza podataka (Casandra)
5) Dizajn pretraživačkog tipa (automatsko dovršavanje)?
Odgovor:
Treba analizirati:
- Dajte prijedloge za tip.
- Kriteriji za odabir prijedloga.
- Treba li sustav biti u stvarnom vremenu?
- Podržite personalizaciju prijedlozima.
- Upiti u sekundi koje treba obraditi od strane sustava.
- Količina podataka za pohranjivanje.
Dio 2 - Pitanja o intervjuu za dizajn sustava (napredno)
Pogledajmo sada napredna pitanja o intervjuu za dizajn sustava.
6) Dizajnirajte Dropbox / Google pogon / Google Photos?
Odgovor:
Treba analizirati:
- Kako učitati / pregledati / pretraživati / dijeliti datoteke ili fotografije?
- Pratite dopuštenja za dijeljenje datoteka.
- Dopuštanje više korisnika da uređuju isti dokument.
7) Dizajnirajte Facebook, Twitter ili Instagram?
Odgovor:
Značajke koje treba uzeti u obzir:
- Neke značajke Twittera / Facebooka i Instagrama koje treba podržati.
- Morate podržati odgovore na tweetove / grupiranje tweetova u razgovorima.
- Kontrole privatnosti oko svakog tvita.
- Podrška trending tweeta
- Izravno slanje poruka
- Navodi / Označavanje
Treba analizirati:
- Broj korisnika i promet koji sustav treba obraditi.
- Količina sljedbenika koje korisnik ima.
- Broj favorita tvita.
Komponente potrebne za projektiranje:
- Generacija vijesti
- Društveni grafikon
- Sustavno pretraživanje i pohrana za postove / tweetove.
Prijeđimo na sljedeća pitanja o intervjuu za dizajn sustava.
8) Dizajnirate web pretraživač?
Odgovor:
Potrebna je skalabilna usluga koja može indeksirati cijeli web i prikupiti stotine milijuna web dokumenata.
Treba analizirati:
- Pronalaženje novih web stranica.
- Prednost prioriteta web stranicama koje se dinamično mijenjaju.
- Pazite da alat za indeksiranje nije bezgranično povezan na istu domenu.
9) Dizajn Uber:
Odgovor:
Ovo su često postavljana pitanja o dizajnu sustava u intervjuu. Arhitektura: Monolitne / mikro usluge (usluga u stvarnom vremenu, front-end (aplikacija) i baza podataka)
- Pomoćni servis servisuje mobilni promet i klijenti se povezuju s podupiračem preko mobilnih podataka.
- Klijenti se povezuju sa sustavom otpreme koji odgovara vozačima i vozačima.
- Otprema se gotovo u cijelosti piše u node.js.
- Maps / ETA: Da bi se pošiljka odlučila na inteligentan način, važno je dobiti mape i podatke o usmjeravanju.
- Usluge: Usluge poslovne logike uglavnom napisane u python-u.
- Baze podataka: Postgres, Redis, MySQL.
Treba analizirati:
- Kupac zahtijeva vožnju i kako ih ekonomski uskladiti s vozačima u blizini.
- Spremanje tona geografskih mjesta za vozače i vozače koji su uvijek u pokretu.
- Rukovanje ažuriranjima na lokacijama vozača.
10) Dizajnirajte ograničenje brzine API-ja (Github)?
Odgovor:
Treba analizirati:
- Ograničavanje broja zahtjeva koje subjekt može poslati API-ju unutar vremenskog okvira, na primjer, deset zahtjeva u sekundi.
- Ograničavanje brzine trebala bi raditi za raspršeno postavljanje, jer su API-ji dostupni putem grupe poslužitelja.
Preporučeni članci
Ovo je vodič za popis pitanja i odgovora za razgovor o dizajnu sustava kako bi kandidat mogao lako razbiti ova pitanja o intervjuu za dizajn sustava. Ovdje u ovom postu, proučili smo vrhunska pitanja o dizajnu sustava koja se često postavljaju u intervjuima. Možete pogledati i sljedeće članke da biste saznali više -
- AutoCAD pitanja za intervju
- Pitanja o intervjuu za Photoshop
- Adobe Illustrator za početnike
- Pomoćnik grafičkog dizajnera