Mock-собеседование по System Design от Team Lead из Яндекса

  Рет қаралды 26,298

it-interview

it-interview

Күн бұрын

Пікірлер: 78
@apn0597
@apn0597 7 ай бұрын
На мой взгляд систем дизайн это всегда разговор, как с коллегой, не всегда крайние случаи и острые углы архитектуры может продумать один человек, поэтому для интервьюера не зазорно делать на таких вещах акцент, потому что вы на время интервью - одна команда, которая строит архитектуру продукта. И это нормально не покрыть все аспекты в интервью, ведь оно проверяет технологический кругозор и опыт интервьюемого. Хороший собес вышел, свою компетентность парень показал. Гуд!
@punk-rock
@punk-rock Ай бұрын
Спасибо за ролик) посмотрел пару раз, и с первого раза прошёл интервью без подготовки) оффер в кармане)
@Камиль-с8ф
@Камиль-с8ф 26 күн бұрын
мечта)
@АлександрАлександров-ф8к4л
@АлександрАлександров-ф8к4л 2 ай бұрын
как хорошо что с точки зрения "Чистой архитектуры" можно и отложить вопросы по выбору DB )
@НьургунМакаров-ц3е
@НьургунМакаров-ц3е 7 ай бұрын
12:17 Расчеты немного неверные, вы 200 байт прибавили к 500 КИЛОбайт
@DevBrothersPro
@DevBrothersPro 6 ай бұрын
еще расчет хранилища сделан из того, что картинки и комменты будут лежать в одном месте, чего на практике не будет
@protasovse
@protasovse 3 ай бұрын
и получилось 700 кБ)
@Channel-i6j
@Channel-i6j Ай бұрын
Все гараздо хуже, они умножили размер картинки на размер текста((((
@woykin7791
@woykin7791 7 ай бұрын
буквально кейс из одной из первых глав книги с кабанчиком (про твиттер), как раз сейчас читаю ее и очень приятно было послушать обсуждение этой задачи! спасибо!
@Alexander-dg5id
@Alexander-dg5id 6 ай бұрын
Проблема проектирования от АПИ - кривые границы ограниченных контекстов, и как следствие на выходе распределенный монолит. Процесс проектирования должен строиться иначе. Бизнес требования(есть) -> Пользовательские требования (упущено) -> Стратегическое проектирование (упущено) -> Тактическое проектирование (очень сильно корявое) -> Оптимизации (кэш, репликации, CQRS, балансеры - сделано почему-то вперед всего)
@vasilyevanastia7900
@vasilyevanastia7900 3 ай бұрын
"Стратегическое проектирование (упущено) -> Тактическое проектирование (очень сильно корявое)" Александр, а что почитать чтоб покрыть эту олбасть знаний?
@dragvs
@dragvs 3 ай бұрын
А где здесь было про бизнес в начале? Бизнес это деньги. Пользовательские истории как раз покрыты. P.S. Хотя Ок, было про аудиторию.
@malware_ev
@malware_ev 7 ай бұрын
Как всегда супер!
@timur2887
@timur2887 4 ай бұрын
Клиент стучится в gateway, который выполняет функции аутенификации, авторизации, балансировщик встроенный или внешний (консул какой-нибудь, как вариант)
@Павел-у7ф2е
@Павел-у7ф2е Ай бұрын
Зачем использовать redis что от этого выигрываем на feed service когда можно использовать elastic search и просто загружать по batch -ми по 30 постов например Главное чтобы первые несколько постов были мгновенно загружены а остальные можно уже из еластика грузить что-то вроде этого)
@algoseekee
@algoseekee 7 ай бұрын
Все круто. Спасибо. Пожелание: зумить схему чтобы было видно о чем речь идет. Excalidraw позволяет зумить.
@kotgr84
@kotgr84 6 ай бұрын
Спасибо за интервью. Было очень познавательно. Сильно видно, что кандидат имеет мало опыта проектирования - как дошло до схемы модулей и описания данных сразу запутался, при каждом уточнении начал придумывать костыли и как давай стрелки туда сюда рисовать в плоть до циклов. Начал про базы говорить про которые только слышал. Тоже полезно было, как не надо говорить ))
@Павел-у7ф2е
@Павел-у7ф2е Ай бұрын
capacity не 2,5 tb а. 2406.01TB
@StipJey
@StipJey 5 ай бұрын
Коллеги, спасибо за комментарии.
@ЕвгенийП-д8л
@ЕвгенийП-д8л 2 ай бұрын
Хочется уже увидеть хотя бы одно успешное прохождение архитектурки. Пока мнение такое, что это невозможно. Всегда можно сказать, что чего-то не хватило, т.к. тема бесконечна в отличии от времени интервью. Редко сразу в голову приходят идеальные решения. Секция выглядит весьма странно. Кажется, что еë используют для снижения самооценки кандидата и сбивания зп в оффере.
@Alexander-dg5id
@Alexander-dg5id 6 ай бұрын
RPS рассчитан не верно) на порядок ошиблись) 5000000 / 5 / 86400 = 11,57
@ibragimmagomedov4996
@ibragimmagomedov4996 2 ай бұрын
там было 50млн не 5😅
@ricciottoinnebbia1333
@ricciottoinnebbia1333 5 ай бұрын
Жаль, не успели железо подсчитать
@ЕвгенийП-д8л
@ЕвгенийП-д8л 2 ай бұрын
Любопытно, как Кирилл стал тимлидом в Яндексе. По их меркам этого не достаточно, чтобы пройти архитектурную секцию, а на позиции дальше мидла они обязательны.
@KurlesHS
@KurlesHS 2 ай бұрын
Я так понял что тимлид не Кирилл, а Владимир =)
@A-mi-D
@A-mi-D Ай бұрын
что за сайт используется для рисования ?
@bebrocalypse
@bebrocalypse Ай бұрын
excalidraw
@LeisureTimeShow1
@LeisureTimeShow1 22 күн бұрын
Excalidraw
@dirty0dozen
@dirty0dozen 4 ай бұрын
складываем 200 байт на описание с 500 кб на картинку и получаем 700кб. Браво!
@timur2887
@timur2887 4 ай бұрын
ну это же mock-картинка)
@Channel-i6j
@Channel-i6j Ай бұрын
@@timur2887 они там умножили(
@Alexander-dg5id
@Alexander-dg5id 6 ай бұрын
Короче, я не понял, это видео про то как "надо делать" или как "не надо делать"?
@ChannelCheesecake
@ChannelCheesecake 6 ай бұрын
Это просто видео
@baemvideo7551
@baemvideo7551 2 ай бұрын
что это за программа в которой он рисует?
@nikita-shtimenko
@nikita-shtimenko 2 ай бұрын
excalidraw
@ЕвгенийЮрченко-с1ф
@ЕвгенийЮрченко-с1ф 7 ай бұрын
Зачем все это делать в реальном времени? Дается задание, дается время на реализацию, потом можно обсудить результат и в процессе обсуждения скорректировать элементы.
@vadimsobolevskiy5579
@vadimsobolevskiy5579 7 ай бұрын
Потому что оценивается не результат, а путь к результату.
@VIKTORMOROZOV-yx3yh
@VIKTORMOROZOV-yx3yh 4 ай бұрын
нет описания конкретных требований в итоге ты реализуешь не то что ожидалось или уйдешь в глубь одних вещей абсолютно не раскрыв другие
@timur2887
@timur2887 4 ай бұрын
это интервью в диалоге и обсуждении
@TTTuTTT
@TTTuTTT 2 ай бұрын
Тот случай, когда собеседуемый подготовлен теоретически, но не имеет практики. Сколько труда будет стоить грамотно организовать взаимодействие этих Image и Post services. Очевидно, что на первом этапе разработки их нужно объединить.
@dagerashenko
@dagerashenko Ай бұрын
Костыль с подписчиками в качестве совета это странно
@hsqlk
@hsqlk Ай бұрын
Разве систему разрабатывает один человек? Смысл вообще проводить такие эфемерные собесы далекие от рабочих процессов...
@flykby
@flykby 7 ай бұрын
Можете обьяснить джуну, пожалуйста, в чем минус хранить в кэше не готовую ленту для пользователя из 20 постов, а хранить 20 последних постов пользователей и на основе того, что нам известны подписки пользователя, формировать его ленту?
@timmyyyyyyyyyyyydimkakoopa5732
@timmyyyyyyyyyyyydimkakoopa5732 7 ай бұрын
если сравнить структуру двух кэшей, в каждой из структур мы делаем выбор в пользу того или иного преимущества с наименее болезненным негативным эффектом - id1 : { post1, post2, post3..} - id2 : { post1, post2, post3..} - id3 : { post1, post2, post3..} - id4 : { post1, post2, post3..} vs - id1: { post78, post3001, post134} - id2: { post901, post3001, post124} - id3: { post1101, post32, post10229} __________________ условное сравнение преимущества первого перед вторым будет следующим: - легко получает записи, если перейдёшь на страницу (условный ВК/twitter/Instagram -> ты увидел страницу, зашёл на неё и тебе из кэша подгрузили n первых постов определённого пользователя) - легко собирать ленту, если у тебя частые операции на подписку/отписку, при которой формирование ленты идёт путём merge операций по timestamp в постах (к примеру у тебя есть n друзей на основе которых в твоём кэше собрана лента, отписываясь от нескольких друзей тебе сложнее вычленить посты этих друзей в уже пред-подготовленной ленте редиса) - рассматривая поддержку редактирования поста (пользователь опубликовал запись, затем отредактировал текст к ней), и после редактирования мы снова должны пробежать по n подписчикам и обновить пост для каждого из них, чтобы в момент получения /feed мы увидели уже обновлённый пост, в то время как отношение id - { posts} просто на этапе запроса ленты по id друга вытянет актуальное состояние поста (не нужно каждое редактирование поста отправлять в n друзей, обновляя их пред-подготовленную ленту)
@VIKTORMOROZOV-yx3yh
@VIKTORMOROZOV-yx3yh 4 ай бұрын
@@timmyyyyyyyyyyyydimkakoopa5732 Ты не дожен обновлять пост для каждого из них, пост обновяется в кеше. Клиент идет в кеш снова и забирает уже обновленный пост если надо, что сомнительно - так как нужна функция которая не загружает уже просмотренные посты. Иначе у тебя будет инстаграм показывать одни и те же посты все время. К тому же в реквайментах говорится что функции изменения поста не предусмотрено
@ilyasavenok9051
@ilyasavenok9051 3 ай бұрын
Почему всё-таки был выбран PostgreSQL для Post Service DB, а не MySQL, например? Только потому, что у собеседуемого он встречался в 80% случаев?
@sergeyz4591
@sergeyz4591 2 ай бұрын
Потому что в яндексе нет пыхарей
@ilyasavenok9051
@ilyasavenok9051 2 ай бұрын
@@sergeyz4591 разве MySQL используют только пыхари?
@dagerashenko
@dagerashenko Ай бұрын
PostgreSQL мейнстрим в качестве RDBMS в энтерпрайзе.
@ilyasavenok9051
@ilyasavenok9051 Ай бұрын
@@dagerashenko а чем это обусловлено?
@ДанилаФедоров-к1э
@ДанилаФедоров-к1э 19 күн бұрын
@@ilyasavenok9051 Да больше исторически сложилось:) Насколько я помню несколько лет назад посгрес чуть более активно развивался (моя личная оценка. Может я ошибаюсь) - например там появился JSONB - он был сразу не плох. В данном случае как мне кажется агрумент "что у меня есть опыт с этой БД" - хороший. Но я бы еще добавил что найти разработчиков у которых есть опыт работы с посгрес - проще - по мне так это тоже хороший аргумент. Ну и да - посгрес не стоит на месте - регулярно появляются новые фичи. Mysql немного в тени о нем меньше говорят на конференциях но вроде тоже развивается.
@himanyukubov1624
@himanyukubov1624 3 ай бұрын
Это нихера не мок интервью. Скажем так - это вообще не интервью. Это больше учитель и ученик. Балун тянет за уши этого студента.
@awsom82
@awsom82 3 ай бұрын
ужасная архитектура, впрочем такие вещи не делаются "за час"
@AC-fj5gx
@AC-fj5gx 5 ай бұрын
Довольно скудный выпуск. Интервьюер слишком часто соглашался со словами кандидата, не задавал каверзные и сложные вопросы, слабо.
@timur2887
@timur2887 4 ай бұрын
например, какие вопросы вы бы задали? оценка интервьюера как раз не особо интересна...
@Alexander-dg5id
@Alexander-dg5id 6 ай бұрын
Архитектура - сразу космолет. Можно было сделать все гораздо проще, и не начинать архитектуру с CQRS, это то к чему приходят от безысходности, когда остальное уже не работает (репликации, кэш)
@sergeyz4591
@sergeyz4591 2 ай бұрын
Да, согласен. На схемке `CQRS` выглядит красиво, а на деле -- заноза в заднице.
@tertiumorganum5665
@tertiumorganum5665 4 ай бұрын
господи, дети не закончив школу в архитектора идут😂 крч что было бы если бы программисты строили дома
@MrLotrus
@MrLotrus 2 ай бұрын
Это что-то вроде игры , как если бы рядовых строителей проектировщиков просили спроектировать то же здание за час. Никто бы не пошел после этого реальное здание по результатам строить. Это для проверки кругозора.
@kaspirovskiy
@kaspirovskiy 7 ай бұрын
Мне кажется дизайн должны делать LLM для человека это слишком
@AlexLexus42
@AlexLexus42 6 ай бұрын
В ответ на это Савватеев рекомендовал бы вам идти работать курьером))
@AC-fj5gx
@AC-fj5gx 5 ай бұрын
@@AlexLexus42 Савватеев это тот, кто поддерживает избиение жены? Вот это авторитет, дааа
@ИзяРобинович
@ИзяРобинович 7 ай бұрын
да, вот это "инженеры" - не могут байтики между размерностями сконвертировать, зато архитектуры инстараграмов обсуждают, слова умные заучили, ДАУ, МАУ, трафик, капасити... не удивлюсь, если у этих "архитекторов" за плечами лишь колледжи и гребля на галере N лет, после которых они посчитали себя архитекторами, назвались синьорами, тимлидами и думают, что действительно что-то умеют
@timmyyyyyyyyyyyydimkakoopa5732
@timmyyyyyyyyyyyydimkakoopa5732 7 ай бұрын
аргумент в пользу таких инженеров прост: - расчет произвести можно в конвертере и калькуляторе, не столь важно, но отличие лишь в том, что если человек умеет рассчитывать безошибочно на листочке, это продвинет лишь на одну ступеньку вверх к систем дизайну на обсуждение непосредственно системы - знание constant hashing, sharding, LB, quadtree cassandra vs mongo (master/replica strategy) и прочее, сильно может повлиять на экономику проекта не судите по себе, если вы посчитали правильно, но другие нет. Видео носит информативный характер, очень хорошо, если вы что-то из него подчерпнёте полезное. Комментарий неадекватный по своей агрессивной интонации и наверняка, ваш болезненный и тернистый путь к вершине карьеры сказывается на вас травмой, но не все должны страдать как вы. ___________ повторюсь, на видео люди УЧАТЬСЯ, демонстрируют свои навыки и определяют свои знание на общей системе координат. Они не обязаны вам или кому-то еще. Любой желающий может поучаствовать в таком мероприятии, запишитесь и вы. Очень стыдно читать не поддержку коллеги, а попытки пристыдить. Укажите на ошибки, поправьте, скиньте ресурсы, есть другой подход в обучении
@timmyyyyyyyyyyyydimkakoopa5732
@timmyyyyyyyyyyyydimkakoopa5732 7 ай бұрын
p.s. [являюсь опытным backend разработчиком и сертифицированным архитектором]
@ИзяРобинович
@ИзяРобинович 7 ай бұрын
@@timmyyyyyyyyyyyydimkakoopa5732 судя по количеству слов в вашем комментарии, моё сообщение вас сильно задело :) ваши "аргументы", как и, вероятно, ваши сертификаты, бессмысленно комментировать. Метать перед свиньями бисер себе дороже.
@danilistomin5181
@danilistomin5181 7 ай бұрын
биты в байты почему то умеют конвертировать ученики 5го класса, а вот сделать приложение - почему то не все ученики 5го класса :) не находишь ничего странного? да ты видимо и есть тот самый злой стажер который не может 5 лет уже найти работу хотя выучил всю "БАЗУ" но не устроился даже на 20 тыщ .... рублей в месяц
@timmyyyyyyyyyyyydimkakoopa5732
@timmyyyyyyyyyyyydimkakoopa5732 7 ай бұрын
​@@ИзяРобинович буду очень признателен, если увижу от вас ВАШУ ссылку на линкедин профиль. Задеть комментарием, вы конечно значительно преувеличиваете.. нет абсолютно никакого повода кому-то что-то доказать, чего о вас не скажешь
@another_doge
@another_doge Ай бұрын
- Какой DAU? - Ну пусть будет 50 миллионов Ну можно ли найти больший отрыв от реальной жизни, чем типовой сидиз собес?)
Интервью по System Design. Александр Поломодов (Тинькофф)
1:26:41
Дмитрий Волыхин - System Design-интервью для практиков
49:47
JPoint, Joker и JUG ru — Java-конференции
Рет қаралды 9 М.
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19