Úvod do otázek a odpovědí na návrh systému Interview
Návrh systému je postup definování prvků systému, jako je architektura, komponenty a moduly, různá rozhraní těchto komponent a statistiky, které procházejí tímto systémem. Účelem logického a účinného systému je uspokojit specifické požadavky a potřeby podniku nebo organizace. Znamená to organizovaný přístup k návrhu systému. Pro zvážení všech souvisejících proměnných systému je nutný přístup zdola nahoru nebo shora dolů. Modelovací jazyky používá projektant k předávání dat a znalostí ve struktuře systému, který je definován kompatibilní sadou pravidel a definic. Návrhy mohou být popsány v jazycích textového nebo grafického modelování.
Některé příklady jazyků grafického modelování jsou:
- Unified Modeling Language (UML): Popisuje software jak behaviorálně, tak strukturálně s grafickým zápisem.
- Business Process Modeling Notation (BPMN): Používá se pro modelování procesů
- Jazyk pro modelování systémů (SysML): Používá se pro systémové inženýrství.
- Vývojový diagram: Symbolické nebo postupné zobrazení algoritmu.
Co by měl člověk očekávat v rozhovoru o návrhu systému?
Takový rozhovor obvykle začíná velmi otevřeným problémem, jako je navrhování vlastní sociální sítě (jako je Facebook, Twitter). Jak diskuse pokračuje, tazatel přidá další omezení nebo předpoklady ke snížení rozsahu problému.
Za účelem řešení těchto otázek jsou věci, které vám pomohou procvičovat a mít strukturovaný přístup.
Nyní, pokud hledáte práci, která souvisí s návrhem systému, musíte se připravit na dotaz na pohovor s návrhem systému 2019. Je pravda, že každý pohovor se liší podle různých profilů práce. Zde jsme připravili důležité otázky a odpovědi týkající se návrhu systému Interview Otázky a odpovědi, které vám pomohou dosáhnout úspěchu při pohovoru.
V tomto článku 2019 Interview Otázky pro návrh systému představíme 10 nejdůležitějších a často kladených otázek Interview o návrhu systému. Tyto otázky jsou rozděleny do dvou částí:
Část 1 - Návrh systému InterviewQuestions (Basic)
Tato první část se zabývá základním návrhem systému Interview Otázky a odpovědi
Q1) Design TinyURL nebo bit.ly (služba zkrácení adresy URL)?
Odpovědět:
Přijďte s funkcemi, které by systém měl nejprve podporovat. Za druhé, přijďte s odhadovaným počtem možností škálovatelnosti systému.
Při navrhování služby je třeba zvážit tři věci:
- API (REST API) - Komunikační přístup klienta ke službě spolu s vyrovnávačem zátěže, který je frontendem služby.
- Vrstva aplikace - pracovní vlákna nebo hostitelé, kteří vezmou adresu URL a vygenerují pro ni malou adresu URL a uloží je do vrstvy perzistence.
- Perzistence vrstva - databáze
Věci analyzovat:
- Vygenerujte pro každou adresu URL jedinečné ID a generujte je v měřítku, protože každou sekundu přichází 1 000 žádostí o zkrácení adresy URL.
- Přesměrování popisovačů služeb.
- Podpora vlastních adres URL.
- Sledujte statistiky kliknutí
- Odstraňte vypršené adresy URL
2) Navrhněte YouTube / Netflix (globální služba streamování videa)?
Odpovědět:
Věci analyzovat:
- Ve videích bude služba ukládat a přenášet obrovské množství dat, které může velký počet uživatelů sledovat a sdílet je současně.
- Zaznamenávejte statistiky o videích, například celkový počet zhlédnutí, nahoru / dolů, atd.
- Přidávání komentářů k videím v reálném čase.
Komponenty:
- OC - Cloudy jako AWS, OpenConnect, které fungují jako síť pro doručování obsahu.
- Backend - databáze
- Klient - Jakékoli zařízení (Desktop, Android, iPhone), ze kterého přehráváte video na YouTube / Netflix.
Přejdeme k dalším otázkám Interview s návrhem systému.
3) Navrhování Quora / Reddit / HackerNews (sociální síť + služba nástěnky)?
Odpovědět:
Věci analyzovat:
Lidé, kteří služby používají, mohou sdílet odkazy nebo zveřejňovat dotazy. Ostatní uživatelé mohou odpovídat na dotazy nebo komentovat sdílené odkazy. Služba by tedy měla provádět následující akce:
- Zaznamenává statistiky pro každou odpověď, např. Celkový počet zhlédnutí, nahoru / dolů, atd.
- Uživatelé by měli mít možnost sledovat další uživatele nebo témata
- Seznam nejdůležitějších otázek na časové ose od všech uživatelů a témat, která sledují (podobné generování novinek).
4) Navrhněte Facebook Messenger nebo WhatsApp (globální chatovací služba)?
Odpovědět:
Toto jsou základní otázky týkající se pohovoru s návrhem systému. Věci analyzovat:
- Navrhněte rozhovory mezi uživateli.
- Rozšíření vašeho designu o podporu skupinových chatů.
- Co lze udělat, když uživatel není připojen k internetu?
- Kdy poslat oznámení push?
- Jak zajistit šifrování typu end-to-end?
Struktura:
Klient> Vyrovnávač zatížení> Uzly> Mezipaměť (Redis)> Databáze (Casandra)
5) Design Search Typeahead (Autocomplete)?
Odpovědět:
Věci analyzovat:
- Typeahead návrhy, které mají být poskytnuty.
- Kritéria pro výběr návrhů.
- Musí být systém v reálném čase?
- Podporujte přizpůsobení pomocí návrhů.
- Systém zpracovává dotazy za sekundu.
- Množství dat, která mají být uložena.
Část 2 - Rozhovory o návrhu systému (pokročilé)
Podívejme se nyní na pokročilé otázky pro návrh systému Interview.
6) Design Dropbox / Disk Google / Fotky Google?
Odpovědět:
Věci analyzovat:
- Jak nahrávat / prohlížet / hledat / sdílet soubory nebo fotografie?
- Sledujte oprávnění ke sdílení souborů.
- Umožňuje více uživatelům upravovat stejný dokument.
7) Navrhněte Facebook, Twitter nebo Instagram?
Odpovědět:
Vlastnosti, které je třeba zvážit:
- Podporovány jsou některé funkce Twitter / Facebook / Instagram.
- Potřeba podporovat odpovědi na tweety / seskupovat tweety pomocí konverzací.
- Ovládání soukromí kolem každého tweetu.
- Podpora trendů tweety
- Přímé zasílání zpráv
- Zmínky / značkování
Věci analyzovat:
- Počet uživatelů a provozu, které má systém zpracovat.
- Počet sledujících, které má uživatel.
- Počet zvýhodnění tweetu.
Komponenty, které mají být navrženy:
- Generování novinek
- Sociální graf
- Systematické vyhledávání a ukládání pro příspěvky / tweety.
Přejdeme k dalším otázkám Interview s návrhem systému.
8) Navrhněte webový prohledávač?
Odpovědět:
Vyžaduje se škálovatelná služba, která může procházet celý web a může shromažďovat stovky milionů webových dokumentů.
Věci analyzovat:
- Hledání nových webových stránek.
- Prioritizace webových stránek, které se dynamicky mění.
- Zajištění, že prolézací modul nebude bez omezení připojen ke stejné doméně.
9) Design Uber:
Odpovědět:
Toto jsou nejčastěji kladené otázky týkající se pohovoru v rámci návrhu systému. Architektura: Monolitické / mikro služby (služba v reálném čase, front-end (aplikace) a databáze)
- Backend obsluhuje provoz mobilního telefonu a klienti se k backendu připojují přes mobilní data.
- Klienti odkazují na dispečerský systém, který odpovídá řidičům a jezdcům.
- Odeslání je psáno téměř výhradně v node.js.
- Mapy / ETA: Aby bylo odeslání inteligentní, je důležité získat mapy a směrovací data.
- Služby: Obchodní logické služby většinou psané v pythonu.
- Databáze: Postgres, Redis, MySQL.
Věci analyzovat:
- Zákazník požadující jízdu a jak je ekonomicky spojit s blízkými řidiči.
- Ukládání tun geografických lokalit pro řidiče a jezdce, kteří jsou neustále v pohybu.
- Zpracování aktualizací umístění ovladačů.
10) Navrhněte omezovač rychlosti API (Github)?
Odpovědět:
Věci analyzovat:
- Omezení počtu požadavků, které může entita odeslat do API v časovém okně, například deset požadavků za sekundu.
- Omezení rychlosti by mělo fungovat pro rozptýlené nastavení, protože API jsou dosažitelná prostřednictvím skupiny serverů.
Doporučené články
Toto byl průvodce seznamem otázek a odpovědí na návrh systému Interview, aby uchazeč mohl snadno provést zásah do těchto otázek. Zde v tomto příspěvku jsme studovali top Interview Otázky návrhu systému, které jsou často kladeny v rozhovorech. Další informace naleznete také v následujících článcích -
- Dotazy na rozhovor AutoCADu
- Interview s Photoshopem
- Adobe Illustrator pro začátečníky
- Asistent grafického návrháře