Топ 10 Въпроси за интервю за системен дизайн и отговор (Актуализирано за 2019 г.)

Съдържание:

Anonim

Въведение във въпросите и отговорите на интервюто за дизайн на системата

Дизайнът на системата е процедурата за определяне на елементите на система като архитектурата, компонентите и модулите, различните интерфейси на тези компоненти и статистиката, която преминава през тази система. Чрез създаването на логическа и ефективна система се цели да задоволи специфични изисквания и нужди на бизнес или организация. Това включва организиран подход за проектиране на система. Подходът „отдолу нагоре“ или „отгоре надолу“ е необходим, за да се разгледат всички свързани променливи на системата. Езиците за моделиране се използват от дизайнера за предаване на данните и знанията в структура на система, която се определя от съвместим набор от правила и дефиниции. Дизайните могат да бъдат описани на езици за текстово или графично моделиране.

Някои от примерите на езиците за графично моделиране са:

  • Унифициран език за моделиране (UML): Той описва софтуера както поведенчески, така и структурно с графична нотация.
  • Нотация за моделиране на бизнес процеси (BPMN): Използва се за моделиране на процеси
  • Език за системно моделиране (SysML): Той се използва за инженерство на системи.
  • Блок-схема: символично или поетапно изобразяване на алгоритъм.

Какво трябва да се очаква в интервю за дизайн на системата?

Подобно интервю обикновено започва с много отворен проблем като проектиране на собствена социална мрежа (като Facebook, Twitter). С напредването на дискусията интервюиращият ще добави допълнителни ограничения или предположения, за да намали обхвата на проблема.

За да се справите с тези въпроси, нещата, които ви помагат, практикувате и имате структуриран подход.

Сега, ако търсите работа, свързана с дизайна на системата, тогава трябва да се подготвите за въпроси за интервю за 2019 г. Вярно е, че всяко интервю е различно според различните профили на работа. Тук сме подготвили важните Въпроси и отговори за интервю за системен дизайн, които ще ви помогнат да постигнете успех в интервюто си.

В тази статия на тема „Система за интервю за 2019 г.” ще ви представим 10 най-важни и често задавани въпроса за интервю за дизайн на системата. Тези въпроси са разделени на две части, както следва:

Част 1 - Система Интервю Въпроси (Основни)

Тази първа част обхваща основния дизайн на системата Интервю въпроси и отговори

Q1) Дизайн TinyURL или bit.ly (услуга за съкращаване на URL адреси)?

Отговор:
Представете функции, които системата трябва първо да поддържа. Второ, измислете приблизителните числа за това колко мащабируема може да бъде системата.

Докато проектирате услуга, трябва да имате предвид три неща:

  • API (REST API) - комуникационен подход на клиента с услугата, заедно с балансиращо натоварване, което е предния край на услугата.
  • Application Layer - работни нишки или хостове, които приемат URL адреса и генерират малкия URL адрес за него и съхраняват и двамата в постоянния слой.
  • Устойчивост слой - база данни

Неща за анализ:

  • Генерирайте уникален идентификационен номер за всеки URL адрес и генерирайте идентификационни номера в мащаб, тъй като 1000 секунди заявки за съкращаване на URL адреси идват всяка секунда.
  • Пренасочвания за обслужване на дръжката.
  • Поддържайте персонализирани URL адреси.
  • Проследяване на статистики за кликвания
  • Изтрийте изтеклите URL адреси с изтекъл срок

2) Дизайн на YouTube / Netflix (глобална услуга за стрийминг на видео)?

Отговор:
Неща за анализ:

  • Във видеоклиповете услугата ще съхранява и предава огромно количество данни, които голям брой потребители могат да ги гледат и споделят едновременно.
  • Запишете статистически данни за видеоклипове, например, общия брой на гледанията, гласовете нагоре / надолу и т.н.
  • Добавяне на коментари към видеоклипове в реално време.

Компоненти:

  • OC - Облаци като AWS, OpenConnect, които действат като мрежа за доставка на съдържание.
  • Backend - база данни
  • Клиент - всяко устройство (Desktop, Android, iPhone), от което възпроизвеждате видеоклипа в YouTube / Netflix.

Нека преминем към следващите въпроси за интервю за системен дизайн.

3) Проектиране на Quora / Reddit / HackerNews (социална мрежа + услуга на дъската за съобщения)?

Отговор:
Неща за анализ:

Хората, които използват услугите, могат да споделят връзки или да публикуват въпроси. Други потребители могат да отговарят на въпроси или да коментират споделените връзки. Така че услугата трябва да направи следното:

  • Записва статистика за всеки отговор, напр. Общия брой гледания, гласове нагоре / надолу и т.н.
  • Потребителите трябва да са в състояние да следят други потребители или теми
  • Списък на най-важните въпроси по времевата линия от всички потребители и темите, които следват (подобно на генерирането на новини).

4) Дизайн на Facebook Messenger или WhatsApp (глобална услуга за чат)?

Отговор:
Това са основните въпроси за интервю на System Design, зададени в интервю. Неща за анализ:

  • Направете един по един разговори между потребителите.
  • Разширяване на вашия дизайн, за да поддържате групови чатове.
  • Какво може да се направи, когато потребителят не е свързан към интернет?
  • Кога да изпращам push известия?
  • Как да осигурим криптиране от край до край?

Структура:

Клиент> Балансиращо натоварване> Възли> Кеш (Redis)> База данни (Касандра)

5) Проектиране Търсене Typeahead (Автоматично довършване)?

Отговор:
Неща за анализ:

  • Предложенията на Typeahead трябва да бъдат предоставени.
  • Критерии за избор на предложенията.
  • Необходимо ли е системата да бъде в реално време?
  • Подкрепете персонализацията с предложенията.
  • Въпроси в секунда, които трябва да се обработват от системата.
  • Количество данни, които трябва да се съхраняват.

Част 2 - Въпроси за интервю за проектиране на система (разширено)

Нека сега да разгледаме разширените въпроси за интервю за системен дизайн.

6) Дизайн Dropbox / Google Drive / Google Photos?

Отговор:
Неща за анализ:

  • Как да качвам / преглеждам / търсите / споделяте файлове или снимки?
  • Проследявайте разрешенията за споделяне на файлове.
  • Разрешаване на множество потребители да редактират един и същ документ.

7) Дизайн на Facebook, Twitter или Instagram?

Отговор:
Функции, които трябва да се вземат предвид:

  • Някои от функциите на Twitter / Facebook / Instagram трябва да се поддържат.
  • Трябва да поддържате отговори на туитове / групиране на туитове по време на разговори.
  • Контрол на поверителността около всеки туит.
  • Поддържащи тенденциозни туитове
  • Директно съобщение
  • Споменавания / маркиране

Неща за анализ:

  • Броят на потребителите и трафикът, който ще се обработва от системата.
  • Количество последователи, които потребителят има.
  • Броят пъти, когато туитът е бил предпочитан.

Компоненти, необходими за проектиране:

  • Подаване на новини
  • Социална графика
  • Систематично търсене и съхранение на публикации / туитове.

Нека преминем към следващите въпроси за интервю за системен дизайн.

8) Дизайн на уеб браузър?

Отговор:
Необходима е мащабируема услуга, която може да обхожда цялата мрежа и да събира стотици милиони уеб документи.

Неща за анализ:

  • Намиране на нови уеб страници.
  • Приоритизиране на уеб страници, които се променят динамично.
  • Уверете се, че той не е безгранично прикачен към същия домейн.

9) Дизайн Uber:

Отговор:
Това са често задаваните въпроси за интервю на System Design в интервю. Архитектура: Монолитни / Микро услуги (Услуги в реално време, Front-end (Приложение) и база данни)

  • Задният сервиз обслужва трафика на мобилния телефон и клиентите се свързват с него чрез мобилни данни.
  • Клиентите препращат към системата за изпращане, която отговаря на шофьорите и мотоциклетистите.
  • Изпращането се пише почти изцяло в node.js.
  • Карти / ЕТА: За да може експедирането да направи интелигентен избор е важно да получите карти и данни за маршрутизиране.
  • Услуги: Услуги за бизнес логика, написани предимно в python.
  • Бази данни: Postgres, Redis, MySQL.

Неща за анализ:

  • Клиент, който иска превоз и как да ги съпостави икономически с близките шофьори.
  • Съхранение на тонове географско местоположение за шофьори и ездачи, които винаги са в движение.
  • Работа с актуализации на местата на драйвери.

10) Създайте ограничение на скоростта на API (Github)?

Отговор:
Неща за анализ:

  • Ограничаване на броя на заявките, които предприятието може да изпрати към API в рамките на времеви прозорец, например десет искания в секунда.
  • Ограничаването на скоростта трябва да работи за разпръснати настройки, тъй като API-ите са достъпни чрез група сървъри.

Препоръчителни статии

Това е ръководство за списъка на въпросите и отговорите за интервю за системния дизайн, така че кандидатът да може лесно да разруши тези въпроси за интервю за системния дизайн. Тук в тази публикация сме проучили най-добрите въпроси за интервю за системен дизайн, които често се задават в интервюта. Можете също да разгледате следните статии, за да научите повече -

  1. Въпроси за интервю с AutoCAD
  2. Въпроси за интервю за Photoshop
  3. Adobe Illustrator за начинаещи
  4. Помощник на графичния дизайнер