
System Design: проектируем сервис быстрых знакомств
pavsenin 15 минут назад System Design: проектируем сервис быстрых знакомств Уровень сложности Средний Время на прочтение 21 мин Охват и читатели 884 Анализ и проектирование систем * Распределённые системы *...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. pavsenin 15 минут назад System Design: проектируем сервис быстрых знакомств Уровень сложности Средний Время на прочтение 21 мин Охват и читатели 884 Анализ и проектирование систем * Распределённые системы * Высоконагруженные системы * Карьера в IT-индустрии Перевод Автор оригинала: Joseph Antonakakis Видеоразбор этой задачи на русском языке можно посмотреть здесь - Проектирование Tinder Постановка задачи ❤️ Что такое Tinder? Tinder - это мобильное приложение для знакомств. Пользователи видят профили друг друга и свайпают (смахивают, swipe) вправо, если профиль понравился, и влево - если нет.
Приложение использует геоданные и пользовательские фильтры, чтобы показывать потенциальные матчи (совпадения, match) поблизости. Функциональные требования Основные требования Пользователи могут создать профиль с предпочтениями (например, возрастной диапазон, интересы) и указать максимальную дистанцию. Пользователи могут просматривать список потенциальных матчей, соответствующих их предпочтениям и находящихся в пределах максимальной дистанции от текущей локации.
Технические детали
Пользователи могут свайпать вправо/влево по одному профилю за раз, выражая “да” или “нет” по отношению к другим пользователям. Пользователи получают уведомление о матче, если они взаимно свайпнули друг друга вправо. За рамками задачи Пользователи могут загружать фотографии.
Пользователи могут общаться в личных сообщениях после матча. Пользователи могут покупать и использовать другие premium функции. Важно отметить, что в этой задаче обычно фокусируются на “ленте рекомендаций” и пользовательском опыте свайпов, а не на вспомогательных возможностях.
Если вы не уверены, на каких функциях сфокусироваться для такого приложения, стоит выяснить у интервьюера, какая часть системы для него наиболее важна. Обычно это либо часть продукта, которая делает его уникальным, либо наиболее сложная часть продукта. Нефункциональные требования Основные требования Система должна обеспечивать сильную согласованность (strong consistency) для свайпов.
Отраслевые последствия
Если пользователь свайпнул “да” на человека, который уже свайпнул “да” на него, оба должны получить уведомление о матче. Система должна масштабироваться под большое количество ежедневных активных / одновременных пользователей (20 млн DAU, в среднем ~100 свайпов на пользователя в день). Система должна быстро формировать список потенциальных матчей (< 300 мс).
Система не показывает повторно профили, по которым пользователь уже свайпал. За рамками задачи Система должна предотвращать использование фейковых профилей. На доске это могло бы выглядеть примерно так: Нефункциональные требования Подготовка Планирование подхода Прежде чем переходить к проектированию системы, важно на секунду остановиться и продумать стратегию.
К счастью, для “продуктовых” задач план обычно простой: последовательно собирать дизайн, проходя по функциональным требованиям одно за другим. Так вы сохраните фокус и не утонете в деталях.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





