Въведение във въпросите и отговорите на интервюто за дизайн на системата
Дизайнът на системата е процедурата за определяне на елементите на система като архитектурата, компонентите и модулите, различните интерфейси на тези компоненти и статистиката, която преминава през тази система. Чрез създаването на логическа и ефективна система се цели да задоволи специфични изисквания и нужди на бизнес или организация. Това включва организиран подход за проектиране на система. Подходът „отдолу нагоре“ или „отгоре надолу“ е необходим, за да се разгледат всички свързани променливи на системата. Езиците за моделиране се използват от дизайнера за предаване на данните и знанията в структура на система, която се определя от съвместим набор от правила и дефиниции. Дизайните могат да бъдат описани на езици за текстово или графично моделиране.
Някои от примерите на езиците за графично моделиране са:
- Унифициран език за моделиране (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-ите са достъпни чрез група сървъри.
Препоръчителни статии
Това е ръководство за списъка на въпросите и отговорите за интервю за системния дизайн, така че кандидатът да може лесно да разруши тези въпроси за интервю за системния дизайн. Тук в тази публикация сме проучили най-добрите въпроси за интервю за системен дизайн, които често се задават в интервюта. Можете също да разгледате следните статии, за да научите повече -
- Въпроси за интервю с AutoCAD
- Въпроси за интервю за Photoshop
- Adobe Illustrator за начинаещи
- Помощник на графичния дизайнер