TGViewer
Algorithmics: хакаем алгоритмические собесы Algorithmics: хакаем алгоритмические собесы @algorithmics_cl · 1.44K subscribers
Post #48 1.35K
Из чего состоят собеседования. System Design

Пришло время поговорить о секции проектирования. Она подразумевает оценку навыков кандидата в создании архитектуры масштабируемых и отказоустойчивых систем.

Обычно на эту секцию зовут кандидатов, которые претендуют на позицию уровня middle+. Предполагается, что инженеры до уровня мидла особо не участвуют в проектировании систем или же делают это под присмотром сеньоров.

Собственно, кандидату на старте дают абстрактную задачу из категории «Спроектируй аналог YouTube» или «Создай убийцу Twitter».

В первую очередь предоставляется ограниченный набор входных данных. Например, такие как количество пользователей в системе.

Дальше следуют три основных этапа.

1️⃣Сбор требований

Кандидату нужно активно задавать дополнительные вопросы заказчику (в данном случае интервьюеру), чтобы уточнить требования.

Например, для случая с Twitter — какие типы сообщений можно отправлять (текст, медиафайлы, эмоджи), какие потенциальные нагрузки предполагает бизнес (сколько активных пользователей будут читать, сколько твитов в день будут писать), нужно ли иметь быстрый доступ к сильно историческим данным и так далее.

Кандидат должен активно исследовать и выявить максимальное количество требований и ограничений, чтобы спроектировать систему, которая им удовлетворяет. Неопределенность в требованиях может привести к неправильному проектированию, что в реальной работе приведет к затратам времени и ресурсов без результата, который ожидает заказчик.

Таким образом, первым и главным шагом является выявление потребностей заказчика и их детальное изучение. Если некоторые параметры неизвестны, кандидат может делать разумные допущения на основе своего опыта или других критериев, но всегда с подтверждением этих предположений у интервьюера.

Итак, ключевым моментом в проектировании системы является полное понимание требований и ограничений.

2️⃣Верхнеуровневая архитектура

Задача кандидата на этом этапе заключается в проектировании верхнеуровневой архитектуры системы. Это означает, что необходимо создать общую структуру приложения, выделив крупные абстрактные блоки и описать взаимодействие между ними.

На этом этапе интервьюер может задать вопросы и предложить комментарии или коррекции к предложенной архитектуре. После достижения соглашения о верхнеуровневой архитектуре, углубление в детали начинается на третьем этапе.

3️⃣ Детализация архитектуры

На этом этапе вам предложат проработать детальнее крупные блоки. Скорее всего не все, а только те, которые представляют больший интерес для интервьюера.

Например, если речь идет о клиент-серверном взаимодействии, то нужно выбрать протокол общения (HTTP, WebSocket и т. д.) и спроектировать API. Если обсуждается база данных, то кандидат может объяснить выбор конкретной БД, рассказать о её преимуществах и недостатках, а также затронуть вопросы масштабирования.

Обратите внимание, что здесь важно продемонстрировать широкий спектр знаний, способность аргументированно выбирать технологии и инструменты и оценивать их перспективы для долгосрочного развития проекта.

#собеседования
  • 👍 3
  • ❤ 1
  • 🔥 1
More from @algorithmics_cl
  1. Feb 8, 2025Количество провинций Давайте закрепим знания про Disjoint Set новой задачей. Сложность: 🟡…
  2. Feb 4, 2025Disjoint Set Привет, друзья! Сегодня мы с вами не будем решать конкретную задачу, а познак…
  3. Dec 4, 2024Так как в этой задаче баланс между операциями записи и чтения смещен в сторону записи, нам…
  4. Dec 4, 2024Система поиска подсказок Ранее мы уже разбирали задачу, в которой нужно было реализовать с…
  5. Oct 29, 2024Префиксное дерево (Trie) Префиксное дерево, или Trie (произносится как «три») — это структ…
  6. Oct 11, 2024Максимальная сумма парных элементов связного списка Продолжаем изучение связанных списков…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →