Введение в системный дизайн Интервью Вопросы и ответы
Проектирование системы - это процедура определения элементов системы, таких как архитектура, компоненты и модули, различные интерфейсы этих компонентов и статистика, проходящая через эту систему. Через разработку логической и эффективной системы, она предназначена для удовлетворения конкретных требований и потребностей бизнеса или организации. Это влечет за собой организованный подход к проектированию системы. Подход снизу вверх или сверху вниз необходим, чтобы рассмотреть все связанные переменные системы. Языки моделирования используются разработчиком для передачи данных и знаний в структуре системы, которая определяется совместимым набором правил и определений. Проекты могут быть описаны на текстовых или графических языках моделирования.
Вот некоторые примеры языков графического моделирования:
- Унифицированный язык моделирования (UML): он описывает программное обеспечение как в поведенческом, так и в структурном отношении в графической форме.
- Нотация моделирования бизнес-процессов (BPMN): используется для моделирования процессов
- Язык моделирования систем (SysML): используется для системного проектирования.
- Блок-схема: символическое или пошаговое описание алгоритма.
Чего следует ожидать в интервью по системному дизайну?
Такое интервью обычно начинается с очень открытой проблемы, такой как создание собственной социальной сети (например, Facebook, Twitter). По ходу обсуждения интервьюер добавит дополнительные ограничения или допущения, чтобы уменьшить масштаб проблемы.
Для того, чтобы решить эти вопросы, вещи, которые помогают вам практиковаться и иметь структурированный подход.
Теперь, если вы ищете работу, связанную с проектированием системы, вам нужно подготовиться к Вопросам по собеседованию по проектированию системы 2019 года. Это правда, что каждое собеседование отличается в зависимости от профилей работы. Здесь мы подготовили важные вопросы и ответы на вопросы, связанные с проектированием системы, которые помогут вам добиться успеха на собеседовании.
В этой статье, посвященной вопросам проектирования систем 2019 года, мы представим 10 наиболее важных и часто задаваемых вопросов по вопросам проектирования систем. Эти вопросы делятся на две части:
Часть 1 - Системный дизайн InterviewQuestions (Basic)
Эта первая часть охватывает базовый дизайн системы. Интервью Вопросы и ответы.
Q1) Дизайн TinyURL или bit.ly (сервис сокращения URL)?
Ответ:
Придумайте функции, которые система должна поддерживать в первую очередь. Во-вторых, определите, насколько масштабной может быть система.
При разработке сервиса нужно учесть три вещи:
- API (REST API) - подход клиента к взаимодействию со службой вместе с балансировщиком нагрузки, который является внешним интерфейсом службы.
- Уровень приложения - рабочие потоки или хосты, которые берут URL-адрес, генерируют для него крошечный URL-адрес и сохраняют оба из них на постоянном уровне.
- Слой постоянства - база данных
Вещи для анализа:
- Генерация уникального идентификатора для каждого URL-адреса и генерация идентификаторов в масштабе, так как тысячи запросов на сокращение URL приходят каждую секунду.
- Сервисная ручка перенаправляет.
- Поддержка пользовательских URL.
- Отслеживание статистики кликов
- Удалить просроченные URL
2) Разработать YouTube / Netflix (глобальный сервис потокового видео)?
Ответ:
Вещи для анализа:
- В видео сервис будет хранить и передавать огромное количество данных, которые большое количество пользователей смогут просматривать и обмениваться ими одновременно.
- Запишите статистику о видео, например, общее количество просмотров, голосов "за" / "против" и т. Д.
- Добавление комментариев к видео в режиме реального времени.
Компоненты:
- OC - Облака типа AWS, OpenConnect, которые действуют как сеть доставки контента.
- Бэкэнд - База данных
- Клиент - любое устройство (Desktop, Android, iPhone), с которого вы воспроизводите видео на YouTube / Netflix.
Давайте перейдем к следующим вопросам интервью по проектированию системы.
3) Разработка Quora / Reddit / HackerNews (социальная сеть + служба доски объявлений)?
Ответ:
Вещи для анализа:
Люди, которые пользуются услугами, могут делиться ссылками или оставлять вопросы. Другие пользователи могут отвечать на вопросы или комментировать общие ссылки. Так что сервис должен делать следующее:
- Записывает статистику для каждого ответа, например, общее количество просмотров, голосов "за" / "против" и т. Д.
- Пользователи должны быть в состоянии следить за другими пользователями или темами
- Список главных вопросов на временной шкале от всех пользователей и тем, за которыми они следуют (аналогично созданию ленты новостей).
4) Разработать Facebook Messenger или WhatsApp (глобальный чат-сервис)?
Ответ:
Это основные вопросы интервью системы проектирования, задаваемые в интервью. Вещи для анализа:
- Дизайн один на один разговоров между пользователями.
- Расширение вашего дизайна для поддержки групповых чатов.
- Что можно сделать, когда пользователь не подключен к интернету?
- Когда отправлять push-уведомления?
- Как обеспечить сквозное шифрование?
Структура:
Клиент> Балансировщик нагрузки> Узлы> Кэш (Redis)> База данных (Casandra)
5) Design Search Typeahead (автозаполнение)?
Ответ:
Вещи для анализа:
- Предложите напечатать предложения.
- Критерии выбора предложений.
- Система должна быть в реальном времени?
- Поддержка персонализации с предложениями.
- Запросы в секунду, которые будут обрабатываться системой.
- Количество данных для хранения.
Часть 2 - Вопросы для интервью по проектированию системы (Advanced)
Давайте теперь посмотрим на расширенные вопросы интервью системы проектирования.
6) Дизайн Dropbox / Google Drive / Google Фото?
Ответ:
Вещи для анализа:
- Как загрузить / просмотреть / найти / поделиться файлами или фотографиями?
- Отслеживать разрешения для обмена файлами.
- Позволяет нескольким пользователям редактировать один и тот же документ.
7) Дизайн Facebook, Twitter или Instagram?
Ответ:
Особенности, которые следует учитывать:
- Некоторые функции Twitter / Facebook / Instagram, которые будут поддерживаться.
- Необходимо поддерживать ответы на твиты / группировать твиты по разговорам.
- Контроль конфиденциальности вокруг каждого твита.
- Поддержка популярных твитов
- Прямой обмен сообщениями
- Упоминания / Tagging
Вещи для анализа:
- Количество пользователей и трафик, который будет обрабатываться системой.
- Количество подписчиков у пользователя.
- Сколько раз твит был добавлен в избранное.
Компоненты должны быть разработаны:
- Генерация новостной ленты
- Социальный график
- Систематический поиск и хранение постов / твитов.
Давайте перейдем к следующим вопросам интервью по проектированию системы.
8) Разработать веб-сканер?
Ответ:
Требуется масштабируемая служба, которая может сканировать всю сеть и может собирать сотни миллионов веб-документов.
Вещи для анализа:
- Поиск новых веб-страниц.
- Приоритизация веб-страниц, которые изменяются динамически.
- Обеспечение того, чтобы сканер не был безгранично привязан к одному домену.
9) Дизайн Uber:
Ответ:
Это часто задаваемые вопросы интервью системного дизайна в интервью. Архитектура: монолитные / микро-сервисы (сервис в реальном времени, интерфейс (приложение) и база данных)
- Бэкэнд обслуживает трафик мобильного телефона, и клиенты подключаются к бэкенду по мобильным данным.
- Клиенты связываются с системой диспетчеризации, которая соответствует водителям и гонщикам.
- Рассылка написана почти полностью в node.js.
- Карты / ETA: для того, чтобы диспетчер сделал правильный выбор, важно получить карты и данные маршрутизации.
- Сервисы: Сервисы бизнес-логики, в основном написанные на python.
- Базы данных: Postgres, Redis, MySQL.
Вещи для анализа:
- Клиент запрашивает поездку и как экономически сопоставить их с ближайшими водителями.
- Хранение тонны географических местоположений для водителей и гонщиков, которые всегда в движении.
- Обработка обновлений местоположений водителя.
10) Разработать лимитер скорости API (Github)?
Ответ:
Вещи для анализа:
- Ограничение количества запросов, которые объект может отправлять API в течение временного окна, например, десять запросов в секунду.
- Ограничение скорости должно работать для разрозненной установки, так как API доступны через группу серверов.
Рекомендуемые статьи
Это было руководство к списку вопросов и ответов на вопросы по системному проектированию, чтобы кандидат мог легко разобрать эти вопросы по системному интервью. Здесь, в этом посте, мы изучили лучшие вопросы интервью системного проектирования, которые часто задают в интервью. Вы также можете посмотреть следующие статьи, чтобы узнать больше -
- AutoCAD Интервью Вопросы
- Photoshop Интервью Вопросы
- Adobe Illustrator для начинающих
- Помощник графического дизайнера