Реальное Собеседование в Яндекс | Архитектурная секция

preview_player
Показать описание

Сегодня я прохожу заключительное собеседование в Яндекс - архитектурную секцию, или, по другому, System Design. Смотри это видео, чтобы узнать, какие вопросы мне задавали.

⬆️ Boosty больше недоступен, всё переехало в телеграм ⬆️

ПОЛНАЯ ВЕРСИЯ:

ТАЙМКОДЫ:

00:00 Вступление
00:43 Задание
02:53 Структура данных
05:23 Алгоритм поиска
07:00 Бекенд
08:44 Базы данных
09:48 Конец
Рекомендации по теме
Комментарии
Автор

По алгоритму задачи - есть геохэшинг - хэш для всех точек можно заранее рассчитать. В момент запроса расчитываем хэш для центра и получаем из бд точки с таким же хэшем. Это черновой расчет - далее нужны доп расчеты (все зависит от требуемой точности) Второй вариант (его можно скомбинировать с геохэшингом) - от точки поиска находим квадраты(ограничивающие координаты 2 широты и 2 долготы), который лежит вне окружности поиска и квадрат, который лежит внутри окружности. Квадраты(каждый) по факту - это 4 ограничивающие координаты, т.е. сделав 2 простых скл запроса к бд мы получим все точки лежащие внутри вписанного квадрата(они точно внутри искомого радиуса) и точки которые лежат внутри большого квадрата, но за пределами малого (эти точки могут лежать в искомом радиусе). Для уточнения второго набора точек опять же можно по квадратам считать, а можно (если точек не много ) посчитать напрямую расстояние(но надо учитывать, что это операции с плавающей зарятой, что значительно дольше целочисленных вычислений).

trempm
Автор

А как же сбор функциональных и не функциональных требований, расчет нагрузки на систему... Валеры на тебя нет)))

viski
Автор

Как всегда супер!
И круто, что делаешь две версии роликов, мне например, больше нравится полную смотреть.

uuc
Автор

Давайте этим видео добьём 1000 подписчиков, чтобы я уже выпустил то самое видео!

gernar
Автор

Привет, Вадим!
также прохожу собесы, в данный момент, в эти же компании на позицию ML/DS. И слишком хорошо тебя понимаю, сижу с улыбкой и слезами, тк весь видос настолько жизненный :)
тем не менее, ответы на некоторые каверзные вопросы из твоих видео помогают разобраться, что ж всё таки от меня хотели услышать на техскрине)

maestro.a
Автор

Quadtree & Octree - база, "вам что Кнут не снится в кошмарах"? А ведь это всего первый том.. весь мир компьютерных игр 2д на Quadtree держится.. я грешным делом узнал об этом когда создавал свою карту для варкрафт 3 в редакторе было мне лет 11)) как оказалось хоть и все кричали про 3д, реального Octree там было мало, а кваку до свою руки до сих пор не дошли написать)

andreychiglintcew
Автор

Нашла канал пару дней назад и с большим удовольствием посмотрела все видосы, чтобы поботать к собесу. Спасибо!

diglydigly
Автор

Возможно в вопросе про то как запрос доходит до бэкенда интервьювер также хотел услышать про DNS. Доменное имя конечно сделано "для удобства", но это не объясняет как браузер понимает на какой IP-адрес слать запрос. К тому же не всегда 1 IP-адрес на домен, может быть и несколько IP-адресов лоад балансеров, которые в свою очередь направляют запросы на многие машины, на которых работает наша система.
Удивлен, что load balancer назвали тупым. Да, есть относительно тупые алгоритмы, когда просто запросы по очереди идут на каждый из серверов. Но во-первых есть разные алгоритмы, например можно считать время ответа и направлять запросы туда, где быстрее всего (есть и другие алгоритмы). А во-вторых это отдельных вопрос откуда LB знает IP-адреса самих серверов.
Не до конца понятно, что интервьювер хотел услышать про БД, ожидал ли он услышать виды БД (реляционные, key-value, колоночные, графовые и тп) и плюсы/минусы каждой. Почему-то в конце начал рассказывать про алгоритм консенсуса ¯\_(ツ)_/¯

P.S. Не работаю в яндексе и не хочу.

kirillkaiumov
Автор

Судя по всему он хотел получить что-то вроде того, что рассказывает парень в видео современная backend архитектура от Артема Шумейко. Всем советую!

mishamishin
Автор

Постргес подходит, в нем есть нужное расширение для координат

ДмитрийДмитриев-рз
Автор

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

klgp
Автор

Помимо quad tree думаю подойдёт для кластеризации вообще и в данном случае kdtree и balltree

iir
Автор

когда тебе скажут результат собесов? Ты красавчик! Твой контент это просто свет для бродячих котят под тегом #хочувайти

ds_sss_rank
Автор

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

antonpolchenko
Автор

Спасибо, хорошо рассказал и не боишься немного обсираться

alekseysverbeev
Автор

Хорош, сансей)
Давно на мл обычный систем дизайн спрашивают? Или это только в яд?
На просторах инета если найдете систем диз от карпов курсес, то там четко и по делу все. Как раз про гео поиск есть часть.

petyap
Автор

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

Причем, за каким-то здесь начали обсуждать алгоритм поиска этих точек. Зачем, если перед этим было два этапа, на которых наверняка были алгоритмы?

Что-то у них явно не так в Яндексе.

kirillsushilnikov
Автор

на 1000 подписчиков Вадим успешно проходит собес в OpenAI

lainisourgod
Автор

простой индекс по координатам в базе не помог бы? Ведь если какая то точка входит в какой то квадрат - то это всего лишь диапазон значений, которые легко парсятся с индексированной по координатам таблицы координат заведений ? я неправ?

gezoond
Автор

разве спарк это база данных? мб ты имел в виду hdfs как data lake, поверх которого можно делать запросы и аналитику используя спарк как движок

thampasaurusrex