Тестовое собеседование Java разработчика #27 - Зуфар Сунагатов

Подготовка к собеседованию на Java Developer

Транскрипция видео:

  • Всем привет С вами Евгений Сулейманов и буквально через несколько мгновений вы сможете посмотреть новое интервью с кандидатом перед началом о вступлении Я хотел бы обратить внимание Только на два момента первое в комментариях к видео некоторым я вижу что люди пишут о том что в собеседованиях не достает некоторые динамики экшена интереса просто небольшое Напоминание о том что как раз форма данных видео был создан Для того чтобы показать как происходит собеседование именно в реальной жизни это не всегда интересно местами

    00:00:02 - 00:01:06

  • монотонно скучно но это именно то как это происходит в жизни как кандидаты проходят реальные собеседования и второе по формату Я понимаю что иногда интереснее И в большинстве случаев интереснее послушать вопросы какие-то каверзные подковырками послушать ответы порассуждать о тонкостях работы с некоторыми фреймворками но опять-таки реальность несколько другая компания ищут разработчиков инженеров которые способны решать комплексные инженерные задачи и формат алгоритмической задачи плюс дизайн сессия позволяет наиболее

    00:00:34 - 00:01:39

  • быстро и эффективно оценить кандидата и понять сможет ли он решать задачи которые ставится бизнесом Я желаю вам приятного просмотра До связи поехали Итак всем привет У нас в гостях Зуфар сулагатов Зафар раскрыта себе кто ты от своего пути работы обучение целях Спасибо Жень привет тебе привет зрителям Всем спасибо Меня зовут сейчас в Лондоне в Англии сам я родом из Ташкента Узбекистан всю жизнь в России там соответственно выучился космического университете города Самара и там соответственно сама

    00:01:07 - 00:02:38

  • иначе свою работу в качестве разработчика а там получил скажем так основа джавы учился во всяких курсах оффлайн курсах чтобы подтянуть базу и потом когда закончил магистратуру двадцатом году переехал в Москву и там уже работал в селе коммуникационных банковских сферах Вот и в конце 21 года начал собеседоваться в разные компании соответственно всегда хотел увидеть мир изначально был на Америку потом понял что это сложно начал собеседоваться в Германию но так вышло что попало в Англию вот я не стал

    00:01:58 - 00:03:34

  • особо спорить с оффером или что-то еще и переехал потом осознал что что мой английский что моя зарплата очень не подходит для Лондона Вот и поэтому последний год жизни я как-то привыкал был такое становление то есть очень тяжело чувствовать себя мигрантом особенно когда второй раз уже переезжаешь в Новую страну Вот и сейчас соответственно я потихонечку скажем так Выхожу в свет вот с тобой познакомился где-то собеседованием готовлюсь Ну пытаюсь как-то Использовать мое место положение по максимуму чтобы устроиться большие

    00:02:46 - 00:04:15

  • компании есть планы пойти либо в стартапы либо большие фанк компании хочу попробовать оба варианта понять что мне нужно вообще потихонечку уходить от наемной работы и пробовать какое-то свое дело какой-то стартап Вот я думаю это интересно Хотя это сложно также я пара ллельно менталить начал телеграм-канал вести просто чтобы делать что-то вне работы развивать не только свои хаски так как Но это делать жизнь интереснее отличника Я понял хорошо Зафар супер Смотри такой вопрос А можешь рассказать более детально вот о своем текущем

    00:03:32 - 00:05:17

  • проекте то есть какой домен что делаете стать технологией Какие рабочие процессы Да хорошо текущий домен это банковская сфера соответственно это внутренний проект соответственно проекты себе представляет драйвер больше скажу что-то вроде gbc драйвера соответственно такой джарник который ты Подключаешь какой-нибудь среде указываешь путь и соответственно работаешь то есть может делать Селект запросы Вот Потом мы планируем insert делать Вот то есть если это работы или из среды то это получается идет как

    00:04:25 - 00:06:10

  • же dvc но мы также сделали такой функционал что можно и подключаться к хранилище данных через любые другие языки через JavaScript через Sharp через gpc то есть мы написали я написал про добав и соответственно генерировал в каждый из языков и получается таким образом через стриминг Северный стриминг я передаю батчами данной сквере строки виде байтов Вот и соответственно пользователь получает строки Вот и получает Мета информацию через метод примерно так написано 8 у нас нет спринга да это такой Первый проект

    00:05:20 - 00:07:10

  • для меня у нас очень неплохо многопоточностью сервис а по количеству человек то есть это большая команда мульти национальная у нас люди с Китая с Индией С Америки С Англии Вот соответственно да Еще недавно присоединюсь с Украины с Россией то есть прям большая такая семья около 30 человек они там меняются есть основной костях в которой я тоже вхожу Вот соответственно бывает делимся на фичи Тимы и был опыт скажем так взять какой-то лидерство в этой фичи теме что мне очень понравилось делегировал делегировать задачи больше как бы

    00:06:18 - 00:07:57

  • старшим менеджером Как стать как со стейк холдером разговаривать Вот и соответственно сконцентрироваться на фича Вот как раз моя концентрация была на gpc наведение наш проект других фичах хорошо а вот какая может быть моя мотивация использовать твой продукт вместо стандартного gbc или какого-то другого фреймворка Да я сейчас уточню Дело в том что это такое gpc Где ты через properties javsky ну класс Property создаешь объект и ты можешь указать какой базе данных ты подключаешься в плане этот джарник который сразу

    00:07:22 - 00:09:04

  • позволяет тебе качать данные сэмпалы с эластика что там еще других баз данных Вот и самое главное что вся идея была в том что есть огромный фаербол скажем которые там защищает Америку Да в компании и скажем так нашего драйвера есть доступ и мы такая защита мы API вот другие люди не могут туда подключиться Вот там были всякие разрозненные и мы скажем так собрались возможно как единая точка провала Как вас проходит рабочий процесс есть много фича супер вертелка ее надо им комментировать Как у вас происходит

    00:08:15 - 00:09:56

  • процесс от идеи до Да конечно соответственно наш проект не обыскал нетипичный нетипичный как наверное для постсоветского программирования так и для даже Лондона То есть тут что-то новое вот тут в этом плане У нас есть большой менеджер он приносит задачу от еще более больших менеджеров То есть как ты холдер приходит говорит что надо сделать такую-то задачу как правило я или кто-то еще мы обсуждаем эту задачу на митинге А дальше как-то планируем как мы будем делать там же планирую Вот соответственно заводим задачи решаем как

    00:09:18 - 00:10:58

  • Какие архитектурные какие-то подходы может паттерны использовать технологии тоже как-то обсуждаем то есть увеличение скорости обмена данными то есть чтобы его увеличить был предложен как раз gpc вот и Вот так мы начинаем имплементировать то есть создаем Epic шинкуем на задаче на какие-то сад таски и соответственно осай ним [музыка] Ну сразу выясняем Нужно ли что-то менять инфраструктуре если нужно то оставим задачу надо вопса Если нужно что-то поменять заранее знаем в тестах у автоматизаторов специалистов они тоже

    00:10:11 - 00:11:49

  • сразу ставят задачу соответственно начинается работа пишется код пишутся Юнит тесты вот что дальше соответственно есть разного рода среды стенды тестовый стенд рабочий стенд соответственно при помощи точнее артефакт но собирается артефакт будет артефакт соответственно помимо тестов я также там через послан как-то пуляю запросы через тестовый клиент То есть как бы то же самое что я буду в продакшене только вот на тестовом стенде проверяю все сценария проверяем ничего сломалась по основным ценам прохожу вот после этого отдаю на

    00:11:00 - 00:12:44

  • coreview проверяют разработчики находят ошибки я исправляю либо как-то спорю что Нет они не правы дают аргументы стандартно такой процесс потом задача переоценивают ту же задачу на тестировщика соответственно для этого я артефакт диплом уже тестовый станет до этого было на рабочем стенде соответственно даю ему отмашку говорю какой ар по-моему а говорю Да какой артефакт чтобы он сразу пометил что если бак есть то Я использовал этот артефакт Ну как-то вот так после того как тестировщик тестирует он находит какие-то баги соответственно

    00:11:52 - 00:13:17

  • для багов создают мне отдельную задачу вот я уже А это все получается я артефакт из девелопмент ветки с девело клетки создавал соответственно прочел У вас есть какой-то баг от него клетки всё так же делаю такой же сценарий когда получил опрос там на квот ревью обратно смешивала и новый артефакт поставляют и Ну тестировщик он проверяет если там соответственно бак и как бы до тех пор пока багов нету вот либо до тех пор пока мне не скажут другую задачу внезапно делать И после этого соответственно после того как тестировщика дает отмашку

    00:12:38 - 00:14:09

  • просто диплом на соответственно продакшн сервер Вот И там тоже потом прогоняем типичный сценарии То есть все равно не сломалось ли что вот ну и тогда только задачи переходит в Дан Вот и потом начинаю другую задачу как правило бывает что параллельно еще что-то делаешь Вот кому-то помогаешь помимо интервью что-то обсуждаешь довольно много созвонов вот с этим тоже боремся просто они ничего не решают просто разговор разговор разговаривает Я понял хорошо если не тесты потом тестировщик начинает работать ты еще постном Прогоняешь а у

    00:13:25 - 00:14:58

  • вас есть миграционные ленту а нет к сожалению да и Юнит тесты тоже невысокого уровня не все покрыто вот да тут в этом плане слабое место проекта и такое место которое мне нравится и вообще из-за этого тоже весь проект как-то теряет свои очки мы я понял Хорошо хорошо отлично и если по стеку под это тоже То есть я услышал что работаешь на проекте с Java что еще используете тогда Java не знаю Соответственно что у нас сейчас естественно гид что еще у нас есть идеи я не вспомню на чем он там какая-то специфичная такая

    00:14:13 - 00:15:53

  • раннер какой-то есть Вот просто я это все сам не поднимал не строил и как-то Да моя ошибка что я это не узнал не покопал дальше но я не скажу что еще могу сказать получается там был даже на всех языках которых мы создавали работать что еще наверное тут ну а ну соответственно сами баз данных но тут мы особо их тоже не трогали скажем так мы как будто бы их джарник вот этот их соответственно jdbc драйвер какой-то на сервере использовали Вот вот эти все импалы эластики вот ну Баш естественно потому что у нас пока

    00:15:05 - 00:16:59

  • девался не было приходилось руками трогать работать вот а так наверное по зоопарку технологий не знаю что вот мы вводим Елка стоит для того чтобы Локи просматривать Потому что сейчас логики просматриваем очень Бога по просто прям в консоли Да вот но сейчас Да это боль много человек часов поэтому мы переходим на его Костяк вот на самом деле это даже хорошо что многое в этом проекте как-то плохо потому что я учусь Как делать не надо я как-то свою рассматриваю это преимущество для себя и соответственно интересно защитить рукава

    00:16:02 - 00:17:46

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

    00:16:55 - 00:18:12

  • число искомое и нам необходимо вернуть пуля Есть ли в нашей структуре данных два числа которые в своей сумме дают Вот это искомое число и на вход мы получаем корневой элемент дерева это бинарное дерево поиска и число которое мы хотим найти винтовое То есть тут данный пример экзамен Паладин на строке 6 Ты видишь что если будет 5 3 624 нал 7 и K будет 9 то есть искомое число то ответ будет 3 ой извини тру Потому что есть элементы которые своей суммы дают девятку То есть тут их несколько видишь есть 3,6

    00:17:35 - 00:18:59

  • есть 7,2 то есть несколько вариантов которые позволяют нам получить искомое число и мы просто возвращаем True false во втором примере нам дана та же самая структура данных но теперь иском число 28 мы получаем false далее У нас есть несколько инструментов то есть количество нодов в нашем дереве находится в диапазоне от 1 до 104 степени значение элемента в Ноте зависит от -104 до 104 включительно и нам гарантированно что это валидная бинарная поисковое дерево и искомое число находится в диапазоне от -10 5 до

    00:18:18 - 00:19:38

  • 10 5 включительно начиная со строки 23 у тебя идет описание элемента 3 нот То есть это обычный узел дерева здесь у нас есть само значение которое мы храним есть ссылка на левый элемент и на правый элемент соответственно конструкторы которые нам нужны и вот мы хотели бы решить данную задачу а так на первое что приходит в голову это то что так как это история этот а первое что приходит голову это то что это бинарное дерево поиска Это означает что все дочерние узлы слева они меньше чем главный узел А все

    00:18:58 - 00:20:25

  • узлы с правой части дерева точнее все резки все узлы они больше чем основного основной узел и все левые Вот и соответственно таким образом если мы логарифмически будем подходить точнее логарифмические мы будем идти по дереву рекурсивно то получается обходить дерево то получается мы сможем каждый раз отсеивать одну левую или правую часть в данном плане мы не поиском же занимаемся в плане сумму ищем Вот и соответственно нам нужно то есть как я понимаю у нас вот эти два числа они могут быть находиться как слева так и справа

    00:19:43 - 00:21:23

  • если что перевел за фар если ее откроешь что ты увидишь как эти элементы расположены и вот здесь Ты видишь что например здесь может быть 36 может быть 2 и 7 То есть у нас расположение Мета может быть крайне разным поэтому это стоит принять во внимание А я понял например мы когда у нас есть число мы делаем разность Этого числа значением узла определяем какой соответственно второе число в сумме и соответственно решаем влево идти или вправо получается наверное можем рекурсивно пойти и по циклу Вот давай попробуем при

    00:20:34 - 00:22:04

  • курсе в начале вот так кажется как будто бы А можешь записать То есть как ты планируешь рекурсию здесь использовать а представим что у нас идет Ну вот в данном случае худший случай вроде бы идет например искомое число допустим 11 и ответом будет 4 и 7 да то есть мы ищем 47 сумме То есть получается у нас будет то есть получается Если у нас дерево это типа список то есть да нам не придется куда-то влево вправо ходить то тогда сложность получается по времени будет Давай Почему ты считаешь что будет э сложность

    00:21:22 - 00:22:44

  • а потом Да я могу ошибаться Сейчас расскажу как я представляю То есть у нас есть вот этот соответственно дерево и представим что вот этих узлов нету кажется что это самый такой худший случай потому что у нас нету возможности как бы части дерева отсеивать вот нам придется каждый раз идти посмотреть все элементы Вот и тогда получается на сложность но видимо я что-то тут не понимаю Ну а почему энны то есть Смотри это же только для одного обхода будет N А пока Может я ошибаюсь то что я слышал то ты

    00:22:02 - 00:23:27

  • предлагаешь повторять это для каждого элемента и тогда это будет не N а N умножить на N потому что для каждого элемента проверишь с каждым об отрезка Подожди а ты же сказал я может ошибся что у нас сумме только То есть у нас только получается два операнда то есть нет смотри примеру ты ищешь у тебя наход это дерево и ты ищешь ответ Есть ли в данной дереве два числа которые в сумме дают 11 как ты будешь делать да да [музыка] Мы берем наше число которое нужно найти отнимаем от него значение 5 Вот хорошо

    00:22:46 - 00:24:31

  • и Например у нас было число 12 и у нас число 7 Давай рассмотрим 11 вот я хочу искать 111 Хорошо Ну тогда получается 11 отнять 5 будет 6 ищем число 6 дальше смотрим 6 больше 5 до соответственно в левой части дерева шестерки не будет а двигаемся получается вправо передавая узел получается нашей рекурсивной функции Вот и дальше то же самое проделан до неё выходом будет из соответственно нашего алгоритма либо нахождение числа второго операнда либо нал соответственно Вот и мы будем а возвращать True foss вот в зависимости

    00:23:39 - 00:25:29

  • от того добрались Ну когда мы добрались до базы скажем так выхода из функции рекурсивной Ага хорошо и ты говоришь что решение здесь будет всё-таки временное N Нет нет я говорю что здесь будет включается логарифмическая сложность так как мы каждый раз отсеиваем я говорю что N будет в том случае если наше дерево вырождается список если Посмотришь что наше дерево не вырождается что все это болидная бинарное поисковое дерево а Да моя ошибка Ну тогда это всегда будет логарифмическая сложность логарифмическая

    00:24:34 - 00:26:05

  • не совсем соглашусь смотри То есть ты же сначала Если я правильно понял берешь элемент допустим пятерку Да и потом начинаешь искать например будет пойдем кушать что 13 то есть ты начинаешь искать восьмерку которая здесь нет в твоем дереве сейчас восьмерка но смотри я же как раз опять же 13 нему 5 будет получаться восьмерка да как ты сказал соответственно я смотрю 8 больше 5 до соответственно я вот сюда не иду все отсел уже пол дерево отсеял иду дальше к шестерке опять смотрю шестерка меньше 8 до соответственно я не влево

    00:25:20 - 00:26:49

  • иду а вправо семерки опять же смотрю если число соответственно проверяем равенстве они равны проверяю восьмерка больше для семьи Да иду вправо нахожусь то что здесь элемент на то есть дочерний элемент все означает выход из массива Я возвращаюсь ну подожди Почему ты возвращаешься если ты же должен для всех остальных элементов делать тот же самый поиск не только Ты же сказал что это бинарное дерево это означает если например у тебя хорошо возьмем с вариантами допустим 10 хорошо допустим ищем десятку

    00:26:08 - 00:27:31

  • А я я кажется наверное Может дерево путано Я просто ну в моем представлении если я не путаю это дерево Ну вот как у тебя здесь и написано что вот слева элемент всегда меньше чем вот эти справа потом этот элемент меньше чем точнее Вот этот элемент всегда [музыка] больше чем этот элемент То есть каждый раз когда мы поднимаемся вправо то элемент будет больше вот и получается что у нас нет гарантии что более маленькое число допустим самая маленькое число в нашей структуре данных и самое большое число На что туда не дадут

    00:26:53 - 00:28:20

  • именно искомое число Ну мы же как раз полагаясь на свойство дерево что это просто разные варианты но предположим что у тебя Ну так сложить хорошо Допустим мы с тобой ищем как сказать то что у пятерки Нет числа которые второе в сумме дает искомое это не означает что допустим его нет для тройки Давай опять-таки то есть мы к примеру ищем 10 Вот лучше картинки Если вернешься Да сейчас смотри то есть мы ищем десятку Если два элемента которые в сумме свои дадут нам 10 то есть данном случае это могут быть 6 и 4 и 3.7 то есть не

    00:27:37 - 00:29:04

  • пятерка То есть ты по твоей логике Ты пришел для каждого элемента то что ты говоришь то есть И если для каждого элемента делаем какая будет сложность решения да получается нам такое чувство что придется но сейчас подожди я просто моя ошибка была в том что я на этом зле Блин сконцентрировался я что-то забыл что на сайте 2 часа могут быть любыми вот не обязательно Да и это меня что-то я спутался вот тогда да тогда все гораздо сложнее и тут сложность Скорее всего будет другой соответственно я не смогу просто так

    00:28:27 - 00:30:01

  • отсеялась все там мне придется каждый раз искать Ну мне придется Искать эти элементы [музыка] смотри Блин я вот как представляю может быть мне как же мне искать тогда Давай сначала полностью То есть ты говоришь что у тебя до этого было Look N потому что только для узла пятерки повторял пояс то есть смотри получается нам не нужно сейчас секунду Нам получается Хотя А я понял тебя да Получается как будто бы N умножить налог это решение оно возможно давай подумаем То есть это хороший вариант Solution он рабочий не вопрос

    00:29:23 - 00:31:05

  • давай подумаем как можно оптимизировать Возможно ли за меньшую сложность Можно например какой-нибудь кажется это использовать для того чтобы память нашу да Для того чтобы мы смотрели какие элементы мы уже прошли Вот и всегда проверяя если в памяти или нет хорошо и какая тогда будет сложность Да сейчас я начале поставлю это этот алгоритм в памяти с хэштетом Ну давай например мы как там то говорил 13 мы пришли к пятерке во-первых записали пятерку Да записали пятерку расположили и соответственно Да как ты говорил мы проверили для вот

    00:30:22 - 00:32:07

  • этого всего для вот этой части дерева соответственно записали шестерку семерку получается прошли пол дерева вот обнаружили Хотя А ну да вот получается каждый раз что мы делаем вот мы эту пятерку записали пошли к шестерке вот мы дальше рассматриваем теперь как же еще А вот даже вот так когда мы дошли до семерки мы не обязательно всегда будем проверять с пятеркой мы еще будем проверять шестеркой вот верно то есть мы будем как сделать для каждого числа мы будем во-первых на каждой ноте мы записываем это в хэштет Да в хэштедне

    00:31:16 - 00:32:46

  • флешмоб а потом получается Здесь опять же мы записываем хэштет и каждый раз отнимаем от нашего числа трассы текущее значение и смотрим если там вторая пара то есть мы не продолжаем искать по дереву идем идем и смотрим если она там и получается тут получается а во первых нам не надо проходить второй раз вот это все потому что это уже есть дерево То есть если да если мы уже обошли вот это все обошли идем здесь и пара для этого числа она где-то здесь нам не надо будет второй раз туда идти потому что мы

    00:32:02 - 00:33:30

  • уже здесь Прошли мы обратимся тогда подумаю Какая сложность будет получается если нам худший если нам надо все дерево пройти получается а так как нам для каждого раза нужно обращаться к сету а он работает по константной сложности то получается но Контакт нужен сложности отлично хорошее решение Все супер То есть мы с тобой решили то есть подхода резюмирую просто что мы с тобой грубо говоря перегоняем наше дерево в хэш сет и производим поиск именно цикл Каждый элемент закидывается в хэшет и работаем с этим принято сложность по

    00:32:45 - 00:34:16

  • времени от N сложность по памяти какая будет а Да тут интересно тут получается так как мы рекурсии пользуемся то там стек будет учитываться А ну во-первых у нас сам сет это N элементов да плюс у нас получается стек это тоже элементов и так почувство 2Т и н сложность N тоже да и вопрос Ты сказал что рекурсию хочешь использовать А если мы идем циклом нужно будет как бы в этом плане просто цикл Да будет хорошо Ну хорошо да то есть нас сложность по времени отлично вход и уже в коде попробуем с тобой

    00:33:33 - 00:35:15

  • реализовать то что ты сказал [музыка] так сейчас посмотрю получается да создаем соответственно наш сайт а он так у нас получается integer да integer соответственно как мы его назовем получается Second операции может быть Вот так Ну как вторую конечную вторых операций так так дальше что мы делаем мы идем по три ноги Ну как эти циклы ноги а сейчас они рекурсивно получается берем Root вот этот это наша нода Верхняя как мы идем по ней сейчас я вспомню [музыка] так так сейчас дамы получается идем влево или вправо

    00:34:28 - 00:36:37

  • такое чувство давай так как будто бы два по дереву мне как будто бы двумя циклами надо пройтись Кажется зачем [музыка] это бред потому что я же для каждого из этих деревьев тоже буду влево или в правой тогда а Да блин просто цикл while должен быть да не for получается сейчас пока пусть будет True Сейчас я напишу условия просто пока сделал И fls то есть получается я так можно орут ноут переименую как-то так легче будет с ним работать туда чтобы тебе помочь немножко ничто не мешает тебе использовать еще

    00:36:00 - 00:37:37

  • одну какую-то структуру данных то есть какой-то там не знаю Q например или лист потому что грубо говоря нам что 2n что 3n по памяти между это на концептуальную сложность никак не влияет а ну я понял тебя Ты имеешь ввиду что Ну да то есть получается мы просто начали траверс дерево сделаем это то есть вытащим оттуда все положим в какой-нибудь лист а потом также циклом сложность соберем все наши а ну да да и соберем все наши очередь то есть Q Можно ли с каким имплантацию использую на нас интересует

    00:36:59 - 00:38:22

  • метод скорее всего пик Да чтобы можно было А да я сейчас наверное я сейчас наверное вот этот Q в Java не смогу я просто раз на питоне последнее время алгоритмы проходить Вот поэтому я сейчас не вспомню вот эти методы Вот и как через Q делать то есть сейчас я подумаю Ну смотря если буду я буду доставать получается значение потом значение и либо влево либо вправо надо уйти Блин сейчас нам надо дерево превратить в Я немножко в сторону сейчас тебе то есть грубо говоря что нам необходимо то есть мы с тобой делаем

    00:37:40 - 00:39:30

  • да есть и потом уже Мы можем Ну как бы в начале нашей работы то есть мы говорим что мы добавили с тобой и потом как бы подсказка опять-таки Вайл Q вот этого условия будет Давай промо отсюда оттолкнуться этот лишний Я подумаю Зачем нафиг ее может понадобится то есть Но идея в том что мы сделаем наше дерево плоским то все засунем все надо засунем в Киеву и получается зачем сейчас я подумаю что накидываешь свои ноды какой-то очередь и потом их пикаешь оттуда и для ноды ты проверяешь хорошо [музыка]

    00:38:37 - 00:40:13

  • получается как Юнити [музыка] Это я спутался с этой а сейчас то есть рекурсивная рекурсивное решение точнее решение через цикл как-то сейчас улетучилась из головы Я просто не понимаю как мне пройтись циклом по дереву вытащить все узлы положить их сейчас я думаю как это можно сделать я соответственно Ну вот достал положили это в очередь дальше вот дальше получается у нас есть выбор эти влево или вправо и вот тут как Цикл А зачем тебе выбирать А может исключить обратно код то есть мы здесь говорим с тобой о чем

    00:39:50 - 00:41:40

  • что мы с тобой начинаем накидывать элементы в очередь Да грубо говоря у тебя сейчас в твоей очереди есть один элемент ты пытаешься потом ты начинаешь выгребать элементы из очереди да то есть ты получается делать если у меня этот элемент не равен то мы Так начинаем проверять у меня в сете на данный момент есть число искомое если оно есть Я возвращаю труп если его нет то я добавляю в сет значение этого нода и добавляя в Q Лев и Райт листы вот текущего нода я понял [музыка] ну да ну то есть получается да

    00:40:48 - 00:42:45

  • [музыка] берут его получается как ты говоришь пик возвращает как дед получается да просто обычный Он берет элемент [музыка] Давай я просто вот так еще садом сейчас быстренько были так засовываю а хотя даже знаешь до того как я засуну вэлью Я как раз и проверю Если там элемент То есть я проверю А да во-первых надо начали из достать значение как мы Зачем даже не так сейчас я не запутался пишешь все хорошо взял ноды велью потом хочу отнять от к как раз но проверить есть точнее [музыка] хорошо отнять это будет

    00:41:47 - 00:43:59

  • Вот тоже integer вот и вот их теперь сравниваю Смотри сейчас их сравниваю такой то есть если вы лево и секонд-перант равны А даже нет не нравится хочешь понять что эти есть значение ищем если Секонд операнд точнее есть тогда возвращают если нету Если нет тогда мы идем дальше что мы делаем так ну во-первых мы засунем наш видео в отлично Да просто at value Так что мы делаем дальше там мы добавили второй шаг не забудь про Q что в кино добавить да да ну так смотри подожди-ка Подожди а сейчас [музыка]

    00:43:47 - 00:45:57

  • просто смотри если мы же не можем второй раз добавить типа Root у нас уже есть хочу добавить а левый или правый отлично но не или правый вот тут смотри тут как раз таки А да И тут мне не надо опять блин как тут то есть такое чувство что мне даже не надо опять таки проверять Так давайте принципе думаю достаточно концепция сейчас Ясно тут не станет что надо добавить Ив вот между строками 43 44 до что из-за не между строками 44 и 45 что НОД не равен Now в этом случае Мы выполняем нашу алгоритм если он равенал

    00:45:28 - 00:47:04

  • то мы тогда ее просто рымуть ну и в конце возвращаем false есть мы с тобой решили задачу с помощью обхода дерева две сдобства данных Set Q сложность по времени от N сложность по памяти отлично давай выключать экрана и пойдем с тобой на системный дизайн [музыка] так супер хорошо мы с тобой попробуем сегодня за дизайн Telegram опять я прихожу к тебе с собой денег говорю хочу сделать убийцу телеграмма функционал основной такой же как и там напомнишь это все распишем проговорим входные данные можете записать

    00:46:41 - 00:48:01

  • где-нибудь Если необходимо То есть у меня ожидается 700 миллионов пользователей в месяц вообще 700 а миллионов 700 миллионов пользователей всего Да пока что Ну давай хорошо всего допустим 60 миллионов активных пользователей ежедневно 60 миллионов активных пользователей ежедневно каждый пользователь отправляет 15 сообщений 15 сообщений от одного пользователя размер максимальных сообщения 496 символов сколько 96 [музыка] максимальный размер файла который можем загрузить 2 ГБ [музыка] хочу всех победить чтобы была крутая

    00:47:23 - 00:49:23

  • система больше ничего не знаю [музыка] так хорошо я записал четыре те вводные данные которые ты мне сказал Дальше я бы у тебя спросил про более конкретизировав функциональные требования чтобы было Точно от тебя сказано что мне делать они чтобы я догадывался вот что я представляю по Telegram это мессенджер с мгновенными сообщениями которые работает во всех странах получается соответственно я должен у тебя спросить во всех его странах работает в одной стране какие у нас планы на текущий момент в одной стране либо мировой у нас

    00:48:41 - 00:50:04

  • Messenger по всему миру то есть во всех регионах хотим все заходить соответственно какой у меня дальше возникнет вопрос получается сейчас нужно нужно ли нам создавать какие-то каналы вот эти группы либо Мы чисто к одному человеку стучимся либо есть какие-то общие чаты так дальше а так что у нас еще есть там интересного в телеграме Вот это функция о том что Ну у тебя есть сессия она есть на одном устройстве а ты потом продолжаешь на другом устройстве с мгновенно обновление Ну давай мы пока остановимся вот на фон

    00:49:25 - 00:50:51

  • чтобы не сильно распыляться мы с тобой попробуем за дизайне то есть максимальная нагрузка это сообщение да то есть обработка сообщений активной сессии там звонки видео звонки допустим но пока максимальная нагрузка конечно сообщение сосредоточимся здесь так Ну да то есть получается по функционал вроде бы Понятно Сейчас еще повторюсь У нас есть мессенджер мгновенные сообщения можно как текстом отправлять так и файлы отправлять У нас есть чаты Соответственно что у нас еще есть Ну да у нас есть получается Ну да все

    00:50:18 - 00:51:43

  • это наш основной функционал тогда перейдем к нефу не функциональным требованиям так как это мгновенное сообщение соответственно у меня должен быть низкий то есть минимальная задержка То есть я должен мгновенно получать сообщения иначе тогда это будет не мгновенное сообщение мы должны это обеспечить дальше нас должна быть наверное большая доступность чтобы пользователь всегда мог подключаться у нас не должно быть такого что приложение не работает хорошо получается Я могу даже получать спросить в девятках сколько это

    00:51:01 - 00:52:40

  • доступность Наверное это ну давай мы хотим 4 9 хорошо а то есть это High mobility получается да не 5 9 уже не три девятки очень дорого будет яйца у нас много пользователей нам нужно расширяемость то есть это даже должен быть дистрибьютор Systems отлично У нас получается да и мы ожидаем наверное темпы роста у нас какие-то будут мы должны быть к этому готовы возможно будут какие-то всплески нагрузки то есть пайки да Мы тоже должны быть к этому готовы Так что у нас еще наверное безопасность нужно какого-то

    00:51:50 - 00:53:27

  • рода тоже это надо Так [музыка] ну вот с этим делать это масштабируемость надежность безопасность то что мы сделали Там еще можно добавить кэширование быстро доступность не только доступность целом но и быстродействие чтобы не лагало что Давайте попробуем с тобой обсудить тонкие места так называемые батлнеки то есть Где ты видишь наибольшие проблемы с которыми мы могли бы столкнуться в процессе реализации нашей системы А ну да смотри Наверное во-первых мы не должны всю историю сообщений грузить или

    00:52:41 - 00:54:23

  • все чаты сразу грузить то есть мы должны как пагинации грузить батями такими Да не спорю это уже особенности Давай ты говоришь там безопасность что ты подразумеваешь под безопасностью То есть у нас должна быть как минимум учетная запись чтобы ну то есть у одного человека такие-то соответственно чаты и такие-то друзья он каким-то людям может писать вот а у другого другие соответственно он должен заходить наверное как-то как минимум пологий и паролю соответственно сообщение так что у нас должно быть

    00:53:44 - 00:55:11

  • [музыка] это шифрование то есть incliption сообщим да то есть ты включишь шифрования для того чтобы работало все хорошо есть такая штука по поводу вот быстродействия это botlight чтобы я быстро то есть высокая нагрузка довольно таки как бы как бы наверное то есть мы должны ты там сказал 60 миллионов активных пользователей То есть это довольно много и соответственно мы должны обуздать эту как нагрузку вот да соответственно у нас наверное Ну да естественно должны быть какие-то каши как минимум то есть

    00:54:37 - 00:55:55

  • да мы должны подумать где в каком хранилище данных мы это все будем хранить удобно Вот используешь протобафа да Для чего делаете Почему протопов Потому что получается но это универсальный способ получается на псевдо языке написать один раз а потом уже генерировать для конкретного языка сделать один раз используешь много раз это хорошо если подожди Если я правильно понимаю ну на 0 или мы странице ты имеешь ввиду что там быстродействие Да быстродействие легковесно относительно да да то есть но мы должны наверное протокол какой-то

    00:55:22 - 00:57:00

  • правильно использовать То есть тут Наверное подходит как раз слышал про такую штуку как MT proto это как раз протокол передачи данные помню что в том же gp2 где они идут по tcp-уровне по моему просто то есть но гарантию где-то выше ставят не знаю телеграмма есть МТП Мобайл протокол протокол для передачи данных в целом мы с тобой определились то есть русские места мы с тобой определили Давайте попробуем посчитать ресурсы то есть какие Ресурсы нужны на основании нагрузки Какая нагрузка Ну да это все

    00:56:23 - 00:57:57

  • под этим понимаю что мы должны определить запись и чтение в секунду примерно что мы Для этого делаем так у нас получается а ну во-первых 60 миллионов активных пользователей позволили уточнить это в день получается как минимум то есть они всегда Соответственно что 15 сообщений от одного пользователя это получается тоже в день соответственно мы можем во-первых посчитать сколько сообщений от этих 60 миллионов может 60 на 15 вот потом узнать сколько секунд в Дне 24 часах и разделить число сообщений

    00:57:16 - 00:58:54

  • всего на число секунд Итак или наоборот сейчас секунды в одну секунде сколько сообщений это соответственно Какое отношение это мы Ну давай посчитаем Да так я сейчас достану всякий случай Так мы соответственно а извини сейчас ты можешь принципе Зуфар уже открыть вот нашу Бордо и там Записи текстовы делать Будем двигать А ну вот смотри берем соответственно калькулятор осмотрим у нас 60 миллионов активных пользователей так и пишем 60 миллионов Так это у нас 6 миллионов 60 миллионов умножить на 15000 сообщений ой на 15

    00:58:06 - 00:59:57

  • сообщений да это получается у нас 900 миллионов 900 миллионов сообщений давай так сразу запишем чтобы прям наглядно было 900 миллионов сообщений сообщений всего в день Так теперь посмотрим не помню у нас секунд в сутках 864 за интервью 86 тысяч примерно [музыка] в сутках так Ну соответственно Мы берем эти 900 миллионов а да 900 миллионов Так у меня 90 900 миллионов и разделить на 86400 секунд Да все у нас получается примерно 10417 сообщений в секунду 1417 сообщений секунду а это запись вот а у нас

    00:59:08 - 01:01:25

  • получается примерно столько же и читается Так теперь как мы можем использовать это Плюс То есть ты же сначала отправляешь а потом его и прочитаю то есть То есть все время так я умножить не вижу жить на 2 на а так соответственно Я вот думаю как нам эти как эта информация запись чтения использовать для реализации нашего API То есть получается есть у нас еще размер файла и символов сообщениях мы можем узнать сколько секунду памяти называется еще Ну то есть нагрузка нас интересует хранилище и нас интересует пропускная способность ты

    01:00:39 - 01:02:31

  • можешь имея допустим среднее количество загрузок и размер этих загрузок посчитать необходимый сторож размер сообщения есть [музыка] так Ну давай спс да закончим получается ну подожди сейчас РПС это сколько мы в секунду а памяти тратим Да То есть это запроса просто хитов то Сколько раз бьют по твоему по твоей опишке каждую секунду ну смотри Ну вот это не Вот это ли значение после точнее сколько будет 2 830 4204 будет [музыка] участие размеров запишу так РПС пишется [музыка] столько у нас хитов будет запросов

    01:01:54 - 01:03:40

  • так дальше нам нужно посчитать это получается как нам это сделать Господи Так это у нас во-первых есть 700 миллионов пользователей во-первых нам учетки хранить нужно какие-то если не хочу откинуть на вообще копейки пока то есть нас пользователь это не Ну 700 минут Записи будет это не так часто меняется нас и пока интересует количество сторон необходим для сообщений и для сейчас на это думаю как это нам сделать То есть мы наверное тоже как рассчитываем на год получается вот например да то есть давай так сделаем

    01:03:17 - 01:04:38

  • получается мы посчитаем в день сколько А потом получается наперед вот почитаем да то есть смотри Во первых мы посчитали сообщение в день да давай теперь умножим как раз таки на вот эти данные во-первых нужен на 2 гигабайта то есть 900 миллионов сообщений [музыка] а для загрузки в день вот по 2 гигабайта от каждого пользователя Да допустим да берем худший случай ну давай тогда умножим на 4 А подожди а извини Да это не сообщение а это сейчас секунду тогда получите раз у нас активных пользователей

    01:04:03 - 01:05:37

  • тогда мы так и умножаем не 900 А 60 миллионов умножить на получается 4 гигабайта по два раза например на 2 ГБ чтобы было понятно хорошо разберемся Сколько весит Вот это сообщение 4 Господи это получается в байтах я сейчас мои знания в байтах 16 до Слушай я обычно когда не знаю так 4000 496 символов в utf 8 16 мы мультиязычных Так что тут нам дано как мне это расшифровать Я думаю должен быть калькулятор Да вот все а тут текст будет блин А поможешь мне просто этого не делал еще есть понимание что такое Почему

    01:05:08 - 01:07:07

  • utf-16 начинает называется 168 32 Ну да потому что это 8 наверное нас есть только латинские символы закодированы сколько Бит в одном символе то есть 16 то у нас с тобой в одном в одном символе идет 16 бит это значит 2 байта ой получается два байта умножить на 496 размер сообщения размер сообщение сейчас можно я с утра F8 получается почему Там меньше байт Но потому что он поддерживает меньше получается символов а вот F16 больше то есть например китайский язык мы не сможем записывать в tf8 я правильно понимаю Поэтому 16 то

    01:07:05 - 01:08:45

  • есть мы Для этого увеличили Да все хорошо Это я так вслух поговорил так символов сообщение умножить на получается на 2 байта байта и у нас получается пересмотрел то что Telegram использует F8000 986 126 [музыка] вроде а байтов можно Гугле за конвертит это допустим да да В чем мы там Ой извините так [музыка] Мы в гигабайтах Да ну гигабайтов в гигабайт так хорошо получается 8 000 это так 8 8 тысяч 196 но я думаю если в килобайтах будет проще нам будет проще сейчас перемножить количество сообщений на байты получить

    01:08:14 - 01:10:30

  • вменяемое число [музыка] расчет закончим для начала Если ты вернешься страничку которая здесь была давай вот вычисление сделаем 60 умножить на стоп мы сейчас с тобой начинаем этот смотреть 10 килобайтах это в килобайтах килобайт нет стоп секунду Почему ты перемножаешь количество загрузок еще и на сообщение а да да я должен их складывать не дать отдельно то есть давай вот это оставим то есть Удали его сейчас 8 196 отсюда вот отсюда вообще их Удали на следующую строку Переводи дела вычисление 60 миллионов умножить на

    01:09:51 - 01:11:16

  • 15 умножить на 8 196 так Можно я так тоже чтобы сразу наглядно было умножить на 800 96 [музыка] [музыка] так получается Мы берем 60 миллионов сейчас 60 миллионов Да еще один умножить на 15 умножить на восемь тысяч до 96 равно копируйте вот это и Вставляю Вот в тот конвертер который ты открыл в Google Смотри это мы наоборот килобайта даже смысл посчитали Сколько байт в день мы грузим И теперь байты мы просто почитать [музыка] будет [музыка] на сообщение так [музыка] те у нас это все дело Да так хорошо

    01:10:52 - 01:13:23

  • [музыка] Так давайте Теперь мы посчитаем получается вот эту всю историю тоже здесь получается 60 64 24 [музыка] 0 миллионов а теперь на это гигабайт вместе получается гигабайт 240 миллионов гигабайт Гигабит тысяч так нет до сих пор Нолика не хватает еще нолик Так теперь Раз два Да все порядок Теперь мы посчитали в терабайтах сколько это надеюсь мы не ошиблись многие стал 1000 то давай петабайты перейдем это все А даже Впитывает Давай петабайт 240 до так 240 это байт Давай тогда перейдем а не даст

    01:13:04 - 01:15:12

  • чтобы хорошо мы с тобой определились с этим мы с тобой сторож мы стали РПС понимаешь как читать Да сейчас рассуждать [музыка] Так нам надо получается нарисовать архитектуру так Ну во-первых давай подумаем у нас должно быть основное хранилище вообще в целом все сообщения как минимум помимо большое количество данных там месяц со всеми файлами файлы мы будем хранить получается в отдельном месте в каком-нибудь не знаю хранилище там Изи ту например как амазоновский например мы там складировать будем и будем только

    01:14:29 - 01:16:04

  • ссылку иметь айтишник пользователя например или айдишник получается нашей нашего диалога Давайте компоненты выделен которого базы данных что еще нам необходимо хорошо так Ну давай смотри получается база Ну я думаю хранилище делать хранилища [музыка] сообщений сообщения Так давай Нарисуем ничто не мешает в принципе тоже впихнуть сообщение и данный по пользователю сообщение пользователя Ты уже уходишь в лоб дизайн Давай дизайн то есть храни база данных что еще нам необходимо с тобой Да конечно нам необходим

    01:15:23 - 01:17:03

  • сервер который в эту базу данных будет писать вот то есть какой-то хорошо будет именно записывать Возможно Возможно даже знаешь как мы сделаем Мы у нас еще будет какое-то хранилище которое мы не будем сразу базу писать мы будем писать какое-то отдельное хранилище может быть даже в очередь Не знаю если в этом смысл то есть какой-то между ними между база что-то делать Для чего это делать для того чтобы например потом у нас отдельный сервис как-то это зиповал То есть как-то это сжимал вот а потом мы бы это все

    01:16:48 - 01:18:15

  • записывали уже в нашей основное хранилище то есть нас Возможно опять-таки мы с тобой пока блин компонентами то есть давай Нарисуем у нас файлах хранилище подсказал данных есть у нас есть сервера что еще у нас есть просто картинок получается у нас должен быть кэш что работаем Да конечно соответственно а сейчас какой-то опекой твоей скорее всего да то что вход будет муж насильно дадим сразу но у нас естественно получается вот балансеры будет так как у нас расширяемое соответственно хорошо это понятно Давайте нарисовать эти

    01:17:35 - 01:19:05

  • компоненты пока нам хватит головой Давайте квадратики там треугольники так смотри Во первых Давай начнем вот у нас находится он будет принимать запросы и распределять их отдельно получается микро сервисом который каждый из которых отвечает за что-то если на квадратик потом у нас получается вот Дальше смотри есть еще пришила наш У нас есть каши бывает большое количество большое разное количество вариаций чтобы тебе было проще на будущее то есть Дополнение это оптимизация сейчас потом подумал куда впихнуть расстояние

    01:18:46 - 01:20:24

  • чуть больше вот слева направо рисуешь я рекомендовал слева направо апеги твои считают что это вход с левой стороны и теперь направо Давай уходить что у нас дальше идет так И деньги твои Да это наш вход давай Ну смотри а я просто как представляю У нас есть получается много реплик наших микросерверов микросервисов каких-то сервисов серверов вот я так понимаю их как я представляю то есть эти микро сервисы отвечают за разные какой-то функционал и для каждого из этих получается разных функционалов отдельно

    01:19:50 - 01:21:06

  • То есть получается Он нас перенаправляет на разные вот балансеры а вот балансеры уже на конкретную реплику который свободно Хорошо давай так получается Здесь будет там например мы с тобой сделаем ромбиком так один на один две три штуки наложить что у тебя будет несколько прям один на один [музыка] большой прямоугольник [музыка] Да вот они наши Ну и стрелочка Наверное это получается вот так [музыка] что не слушается меня ладно вот так сделаю Господи отстань я уже Control за окном дальше получается у нас есть хранилище

    01:20:33 - 01:22:08

  • получается смотри у нас есть отдельная файлы хранилище Давай можно Нарисуем может кругляшочком хранилище или Как пожелаешь есть соответственно у нас есть хранилище основное сообщение тоже давай получится Вот они запись наверное вот у меня есть еще просто идея Не знаю Правильно ли сразу писать в базу может такое чувство что там не знаю какой-то видос атаки а чего то еще может здесь что-то еще решается на стороне чуть-чуть левее там на пикает в этом Ну да да там проверять количество Треш Холл какой-то

    01:22:01 - 01:23:41

  • прошел человек или нет Да просто это досок который даже до базы не доходит например который отправляет СМСку СМС обычно платная и тебя могут так хорошо вынести в минус Если тебе там который делает про это самое сообщение [музыка] что мы можем лепить сейчас между серверами Ну конечно например отлично хорошо Пока Давай рисовать думаю хватит нам пообсуждаем так более по технологии еще момент знакомств такие с такой концепции как сидиен контакт что это такое то есть это такая концепция серверов которые

    01:23:05 - 01:24:36

  • Ну то есть это есть пиши сервера который занимается с кошами они расположены в каждом конкретном регионе нашего пребывания и позволяет уменьшить получается физически доступ данных до пользователя Вот и соответственно когда пользователь делает запрос определяется где пользователь и пользователь идет именно получается во первых сервер и Подожди Получается я просто не знаю Ну то есть он работает сиденом который в его регионе для того чтобы быстрее получить доступ к данным макаешь да да из соответственно сидены

    01:24:00 - 01:25:16

  • обновляются вот у них есть наверное какое-то расписание у них есть какие-то отдельные сервера которые этим занимаются обновляют Но это наверное мы уже просто на седиент полагаемся это наверное какой-то провайдер который мы заплатили деньги мы сказали В каких регионах Мы хотим пребывать вот мы сказали что у нас есть основной сервер и наверное Хотя я просто знаю во-первых То есть когда мы говорим про такие объемы тут провайдер - это сложно то есть допустим ТГ Если не ошибаюсь свои Вычисли мощности

    01:24:39 - 01:25:51

  • про файловое хранилище что мы могли бы использовать конкретно для хранения файла например амазоновский вот так Типа такого использовать либо как Google Ой да да S3 хотел сказать да то есть хранилище Ну тут смотри тут получается телеграм а он про безопасность и прочее он не будет внешним кровать давать Хотя не знаю Так даже амазона то они безопасны то есть он да да И вот тут потом я пришел мысль да наоборот может наоборот безопаснее до Ну давай просто в облако технологии конкретно Да и так далее какую технологию мы могли бы

    01:25:18 - 01:26:51

  • использовать для хранения файлов подожди не подойдет для файлов Ну а что хорошо вот есть например диез который дает тебе возможность работать с моей SQL то есть название сервиса который у нас большое количество Какие ты знаешь может быть нам использовать не знаю а получается мы храним наши эти чаще скажу наши информацию о наших переписках вот этих чатах ложится ли хорошо кивали тоже чего думаю или в Революционный будет лучше храниться вот тут хочу понять получается я даже как перед собеседованием заглянул

    01:26:11 - 01:28:00

  • к тебе на сайт теорема посмотрела получается нам нужно понять как раз какие две буквы набрать нам нужно наверное доступность постоянная нам консистентность Наверное нам не так важно в этом плане она не критично для нас [музыка] [музыка] вы там еще 3 но такое Ну то есть такое чувство что вот это ты говоришь про хранение данных от сообщения данных о пользователях да к примеру Почему ты такую проблему ты хочешь решить уйдя от реляционной стандартное решение Обычно потом если не подходит мы начнем думать

    01:27:33 - 01:29:13

  • почему и что использовать то есть чем нас не устраивает традиционные баз данных здесь Да Да хороший подход оперативного идти по умолчанию реляционная а давай подумаем например тем что Революционная возможно будет медленнее работать потому что нам придется идти даже если мы будем использовать индексы какой-то шортирование Возможно у нас все равно будет не такая большая скорость Хотя тут дело не в скорости А в расширяемости что легче у него лучше я так понимаю Ну да дополнительный ноду Да там или что-то

    01:28:28 - 01:30:08

  • еще Ну и ну и смотри кажется что они даже как-то будут возможно кивалис тоже хорошо То есть ты хочешь активолисторж использовать допустим какую конкретно Да хорошо Дай нам иди например Динамо ДБ Хорошо хорошо допустим для Коша чтобы ты использовал который находится у нас где между BD и [музыка] Да между BD и серверами у нас получается доступ должен быть быстрее соответственно Каждый должен хранить это получается в памяти компьютера на которой находится [музыка] по-моему многопоточный хорошо про такую

    01:29:20 - 01:31:14

  • штуку Аэро спать слышал Нет я не слышал Я хотел загуглить после твоего собеса прошлого что-то не загуглил хорошо допустим и смотри еще вопрос Какие подходы к балансировке нагрузки Ты знаешь получается раунд Робин сейчас раунд Робин с Весами получается то есть когда мощность сервера большая больше чем остальных мы обращаться получается хешиванием балансировка допустим хорошо Я помню что [музыка] мы еще можем определять загруженность сервера Вот и лист трансплан ставим да или за Ирис Connection хорошо супер хорошо

    01:30:38 - 01:32:36

  • Зафар все тогда давай можем выключать экрана то есть по системе разобрались в целом Ну там есть над чем поспорить что можно улучшить там по технологии но в целом я сохранились зря я полез надо было разговор позиционным безопасным так говорить это детально самом именно здесь ряд своих технологий которые не используют Допустим мы берем стандартную технологию хотим ее портировать работать с ней мы не хотим писать свои новое хорошо целом Понятно отлично у меня вопросов технически нет смысла прошлись по задаче мы ставил

    01:31:59 - 01:33:10

  • пройтись по 6 по системным дизайну обсудили твой подход на твоей работе Что делаете У меня Все какие у тебя может есть вопросы Ну наверное Ну то есть примерно сказать то есть похоронилище если просто по задаче по сегодняшней встрече похоронилищу чтобы лучше бы было использовать как мне как мне тогда выбирать хранилище то есть Правильно ли я пошел думая как теореме чтобы выбрать хранилища в зависимости от не функциональных требований если мы говорим про уже большие системы то мы используем никаб тире мы

    01:32:35 - 01:33:53

  • используем паселс более продвинутый теорема идет но для бдшки то есть не нам нас интересует здесь что количество операций на запись количество операций на на чтение Но самое главное работу с большими данными Мы всегда отталкиваемся именно от самих данных то есть Сначала мы говорим что идут такие данные даты и потом уже от типа данных формата мы уже строим все остальное мы идем наоборот то есть в целом Даже при грамотрелизации даже мой скелет то есть для хранения именно сообщений допустим и он говорит

    01:33:17 - 01:34:21

  • то есть возраст в Москве можно можно использовать кто-то новый скриншот это уже в зависимости от компетенции команды и так далее То есть тут нет то есть В чём преимущество системного дизайна то что Нет никогда одного верного ответа Просто если трейдов и мы по ним общаемся как раз Ну и тут больше мы то есть система дизайне Мы хотим увидеть экспертизу человека то есть сначала ширину знаний то есть ну и потом постепенно мы вот мы определили шины потом по некоторым пунктам идти вглубь насколько человек глубоко понимает тепло

    01:33:49 - 01:34:52

  • и как они работают Ну наверное по вопросам техническим наверное нет могу просто скажем так последнее слово сказать то есть я во первых хочу сказать большое тебе спасибо за возможность пройти собеседование вот я на самом деле ожидал Ну то есть я знал что будет системный дизайн и лайткодинг Но когда я захотел обратиться тебе я думал что будет жало и там не упаду в игре с лицом Вот Но я все равно подумал надо идти на системный дизайн так его спрашивают то есть ничего страшного что я не так сильно готов Вот поэтому это

    01:34:20 - 01:35:30

  • для меня будет такой публичный такой мой разрез знаний такой да вот и надеюсь что там через какое-то время через полгода через год Возможно если будет если бы возможность может как-то с тобой встретиться тоже проверить есть изменения когда я точно буду я готов показать что-то больше Вот то есть читая твои материалы которые рекомендую вот самому продолжать изучать все вот да Еще раз спасибо остается на связи с тобой а зрителям тоже спасибо если хотите остаться на связи со мной тоже если Женя расположена

    01:34:58 - 01:36:37

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

    01:35:47 - 01:36:07