TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.75K subscribers
Post #3112 2.16K
День 2591. #Архитектура #ВопросыНаСобеседовании
Проектирование Систем Как Кофейня. Начало

Собеседования по проектированию систем — это «финальный босс» в разработке ПО. Они пугают не потому, что математика сложная, а потому, что холст чистый. Большинство инженеров думают, что проектирование систем — это знание внутренних механизмов Kafka или нюансов Cassandra. Нет. Это искусство ясно мыслить вслух. Мы будем проектировать кофейню. Потому что, если вы можете масштабировать работу кафе, вы сможете масштабировать и распределённую систему.

Секрет: не спешите строить, задавайте вопросы
Представьте, что вы хотите открыть кофейню. Вы не начинаете с покупки эспрессо-машины за $20К и найма 5 барист в первый же день. Так вы обанкротитесь через месяц.

Начинайте с вопросов:
- Сколько человек живёт в районе?
- Это место, куда можно быстро зайти, или место, где можно посидеть и поработать?
- Что происходит в утренний/вечерний час пик?
Системное проектирование работает точно так же.

Вот схема для прохождения интервью:
1. Фаза «уточнения» (не гадайте)
На собеседовании вопрос обычно расплывчатый: «Разработайте Twitter». Дилетант: начинает рисовать «базу данных твитов».
Профессионал: спрашивает: «Для кого? Мы поддерживаем видео? Что важнее: скорость или согласованность?»
Вопросы, которые следует задать:
- Пользователи: Кто этим пользуется?
- Масштаб: 100 человек или 100 миллионов?
- Соотношение: Это ресурс нагрузкой на чтение (скролл ленты) или на запись (публикация)?
- «Атмосфера»: Требуется низкая задержка или высокая согласованность?

2. Определение «Основного меню» (вариантов использования)
Сосредоточьтесь на 3-5 основных действиях. Если вы попытаетесь спроектировать всё сразу, вы не спроектируете ничего.
Для нашего кафе «Основное меню» состоит из следующих элементов:
- Просмотр: Пользователь просматривает меню.
- Заказ: Пользователь размещает заказ.
- Принятие: Бариста видит и принимает заказ.
- Отслеживание: Пользователь получает уведомление, когда заказ готов.

3. Высокоуровневый дизайн («Эскиз на салфетке»)
Теперь нарисуем «большие блоки». Пока не беспокойтесь о виде БД. Просто определите роли.
- Клиент: Делает заказ с телефона.
- Бэкенд (Менеджер): Получает заказ и решает, куда он будет отправлен.
- БД: Постоянная запись о каждом проданном кофе.
- Очередь: Если 50 человек делают заказ одновременно, «Очередь» сохраняет их и ставит в обработку последовательно, чтобы у баристы не случился нервный срыв.

4. Модель данных (Ингредиенты)
Какую информацию нужно хранить? Не усложняйте. Представьте это как «квитанции заказа».
- Пользователь: Имя, Email, Баллы лояльности.
- Продукт: Название напитка, Цена, Ингредиенты.
- Заказ: Отметка времени, Стоимость, Статус (Ожидание/Выполнено).
- Связи: У одного пользователя может быть много заказов. Один заказ может содержать много товаров.
Вот и всё. Не создавайте сложную сеть таблиц, если интервьюер об этом не просит.

5. Обработка «часа-пик» (Масштабирование)
Это та часть интервью, где меняется «атмосфера». Ваше кафе пользуется огромным успехом! Внезапно за дверью оказывается 500 человек. Если вы не измените систему, она рухнет, и все уйдут недовольные.

Окончание следует…

Источник:
https://medium.com/@yashgangane987/system-design-is-just-a-coffee-shop-a-stress-free-guide-for-engineers-af3e82dc589e
  • 👍 12
  • 👎 1
More from @netdeveloperdiary
  1. Sep 27, 2026День 2797. #ЗаметкиНаПолях #AI Рабочий процесс с Copilot для .NET. Окончание Начало Продол…
  2. Sep 26, 2026День 2796. #ЗаметкиНаПолях #AI Рабочий процесс с Copilot для .NET. Продолжение Начало Три…
  3. Sep 25, 2026День 2795. #ЗаметкиНаПолях #AI Рабочий процесс с Copilot для .NET. Начало Проблема с позиц…
  4. Sep 24, 2026День 2794. #Оффтоп #Здоровье Сегодня будет необычный пост. Завтра в Москве стартует конфер…
  5. Sep 23, 2026День 2793. #ЗаметкиНаПолях #SQL 10 Редких Возможностей SQL, Которые Стоит Знать Каждому. Ч…
  6. Sep 22, 2026День 2792. #ЗаметкиНаПолях #SQL 10 Редких Возможностей SQL, Которые Стоит Знать Каждому. Ч…
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 →