1. Блок Требования Первое, чему нас учит правильный Mock Interview — ничего не домысливать. Начинаем не с кода, а с вопросов к заказчику. Нам нужно: 2. База данных: Камень преткновения Здесь многие новички пишут одну таблицу tweets и успокаиваются. А на Mock-собеседовании вас спросят: «А что, если у нас 100 миллионов пользователей?» Мы выбираем NoSQL + SQL гибрид: Важная фишка для интервью: Мы не храним все твиты в одной куче. Мы партицируем (sharding) таблицу по user_id. Запрос "Показать твиты пользователя" отрабатывает мгновенно, потому что он идет в конкретную ноду. 3. Новостная лента (Timeline) — Где собака зарыта Тут есть два пути: Push и Pull. Как это выглядит: Подвох: А если у Инфлюенсера 50 миллионов подписчиков? Писать твит в ленту 50 млн раз — это долго. Тут мы говорим: «Для топ-1% пользователей мы включаем гибридный режим (Pull на запросе), а для всех остальных — Push». Интервьюер захлопает в ладоши. 4. Поиск и фильтрация (Самая хитрая часть) По условию у нас поиск по текст
Twitter за 1 час: Как не провалить System Design Interview и завалить интервьюера аргументами
5 июля5 июл
4
3 мин