Тестовое собеседование Java разработчика #21 - Даниил Морозов

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

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

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

    00:00:00 - 00:01:17

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

    00:00:39 - 00:01:43

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

    00:01:10 - 00:02:18

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

    00:01:44 - 00:02:49

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

    00:02:17 - 00:03:19

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

    00:02:47 - 00:03:59

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

    00:03:24 - 00:04:31

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

    00:03:57 - 00:05:03

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

    00:04:29 - 00:05:42

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

    00:05:07 - 00:06:14

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

    00:05:40 - 00:06:52

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

    00:06:16 - 00:07:23

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

    00:06:49 - 00:08:03

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

    00:07:27 - 00:08:40

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

    00:08:03 - 00:09:04

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

    00:08:33 - 00:09:52

  • допустим если будет не знает строки тест с один тест 250 тест 800 тест тест тест тест то ответом будет тест так как с него начинается боль больше 300 слов то есть ли будет допустим тест с 2 раз повторить это значит тест с будет так далее если нет общего profix вообще-то возвращает на случай пустую строку ну примерно так я тебе дал контроль по моему мышка и клавиатура попробуй просто какой-то чтобы с этого начали до могу печатать супер сейчас поменяю не верю что так секунду давайте попробую этот

    00:09:12 - 00:11:08

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

    00:10:06 - 00:12:26

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

    00:11:20 - 00:12:41

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

    00:12:04 - 00:13:32

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

    00:12:47 - 00:14:03

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

    00:13:26 - 00:14:45

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

    00:14:09 - 00:15:37

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

    00:14:55 - 00:16:52

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

    00:16:06 - 00:18:15

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

    00:17:19 - 00:19:46

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

    00:18:33 - 00:19:57

  • не уверен то есть я хорошо внешний цикл короче говоря вот эта часть она у нас будет повторяться каждый раз на проход по of the sims 3 com это будет каждый каждая итерация какого-то внешнего циклами это будет повторяться а внешний цикл он должен идти как бы вот так вот каждый раз как бы на наш отлично да то есть он тоже едим на по самой строке дата из каждой каждая чар одной строке вера да вот чего мы здесь упускаем то есть в идеальном варианте конечно мы бы могли сказать что мы берем любую длину любой строки и пробегаемся

    00:19:15 - 00:20:33

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

    00:19:56 - 00:21:30

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

    00:20:48 - 00:22:53

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

    00:21:48 - 00:23:25

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

    00:22:42 - 00:24:51

  • мы соответственно смотрим что это должна быть i и j все хорошо то есть мы просто ничего не делаем естественно если не раввину наверное мы можем сделать брейк и не что же мы скажем сейчас я сейчас я буду вы думаете какой флаг постарались потому что по сути условия которые мы должны выполнить это просто понять что мы пробежали все все строки и мы удовлетворились тем что этот символ равен для всех этих строк ну можно какой нибудь колтер сделать и quality control деле то есть что то что то хочет добиться по итогу что он

    00:23:49 - 00:25:28

  • должен дать хочу понять в конце этого цикла что декольте can commander raven количество строк который я посмотрел вот соответственно потом понять где мне остановиться у вас как можем закачки идеален мы можем уже начать отличный супер а что можно торчать common.py fix the string а комната fx уже мы будем заполнять соответственно если мы здесь не вылетели то мы будем заполнять comon префикс уже во внешнем полагает что во внешнем цикле здесь мы просто говорим что 1 не говори и мы говорим мы в принципе любой по сути

    00:24:47 - 00:26:26

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

    00:25:36 - 00:27:06

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

    00:26:18 - 00:28:00

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

    00:27:23 - 00:28:57

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

    00:28:10 - 00:29:49

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

    00:28:59 - 00:30:06

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

    00:29:32 - 00:30:36

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

    00:30:05 - 00:31:10

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

    00:30:37 - 00:31:51

  • будет соответственно там как внутри мы будем распределять не буду сейчас говорить слишком высоко уравнивая штук а точнее низкоуровневых ну допустим там какой-нибудь consist of a single мы придумали на сердце discovery которая будет определять какой кластерном откладывать не будем касаться этого вот эти системы будут нас для входа и то есть не могу упасть момента есть у меня вот есть там устройство там час эдакий то там столько брала программа небольшая да то есть вот агент даусоном нажимать агентом то что отправляет данные то есть

    00:31:12 - 00:32:29

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

    00:31:53 - 00:32:58

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

    00:32:25 - 00:33:45

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

    00:33:05 - 00:34:14

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

    00:33:40 - 00:34:51

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

    00:34:16 - 00:35:45

  • понятия бы назвал что все таки хорошо то есть но прилетел допустим вот события прилетел события прилетела события мне на n bass то есть что могу следует reading что мы хотим привернуть поэтому бася ну допустим мы можем сделать какие-нибудь worker и которые будут просто извлекать из этого его секс события и дальше отправлять его на пластинку можем таким делать способом то есть какие то горки в основном так и делается из либо worker и какие-то на либо это должна быть просто очередь нашем случае наверное все-таки должны

    00:34:59 - 00:36:11

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

    00:35:36 - 00:36:50

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

    00:36:13 - 00:37:38

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

    00:36:59 - 00:38:12

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

    00:37:35 - 00:39:05

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

    00:38:20 - 00:39:59

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

    00:39:15 - 00:40:49

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

    00:40:10 - 00:41:33

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

    00:40:48 - 00:42:17

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

    00:41:37 - 00:42:44

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

    00:42:10 - 00:43:37

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

    00:42:54 - 00:44:00

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

    00:43:27 - 00:44:38

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

    00:44:03 - 00:45:19

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

    00:44:41 - 00:46:16

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

    00:45:27 - 00:46:49

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

    00:46:07 - 00:47:51

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

    00:47:04 - 00:48:23

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

    00:47:44 - 00:48:55

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

    00:48:19 - 00:49:37

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

    00:48:57 - 00:50:05

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

    00:49:33 - 00:50:41

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

    00:50:07 - 00:51:24

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

    00:50:46 - 00:52:04

  • главный ты orchid это на проекте эти приходят стек holder говорит ребята мне нужно ресурсы в этом допустим леса к этой компании там но буква р у них есть are happy какой-то клауд свою дав которую не все в этом и как красиво крутится и мне нужно запросить ресурсы на ближайший год как бы ты подошел к расчету необходимых тебе ресурсов ну мы просто хотим посчитать допустим и сена кидаю на пк и ps количество в секунду мы можем примерно посчитать количество объем данных который будет выступать за секунду естественном и дальше умножаем

    00:51:24 - 00:52:49

  • это все на дне на неделе и так далее и это количество тонн терабайт скорее всего или даже может даже 5 байт в год да вот а и не рассчитать какой-то объем ну плюс мы можем конечно понять какие стратегии у нас там будут допустим по attention по удалению этих старых данных и так далее и может какие то сделайте расчета на этом основное если очень грубо тогда это просто я думаю считается на основе тебе подавай так вот у тебя пример каждый сообщения которые стоит агент весит до 10 килобайт возьмем 000 здесь килобайт каждое рождает то

    00:52:06 - 00:53:26

  • есть какой оперативку нужно тебе водка яд уху можно запросить нам cutout записи или что-то там запросить надо оперативка нужно сколько надо оперативки нам для решения нашей работы 100 миллионов девайсов каждые пять секунд шлю данная стабилен если посчитать интересный вопрос но я сейчас не знаю требуется ли ответ конкретный пример а как просто объяснить считает допустил скажу что на что умножать так считать примерно чтобы сделал ну понятно что допустим оперативки мы естественно все держать не будем прямо сразу со 100

    00:52:47 - 00:54:03

  • миллионов то есть у нас будет какая то скорее всего где-то очередь где-то у нас будет что-то на диске лежать но понятно что опять-таки мы упираемся проставки ps вот если мы говорим что у нас теперь с допустим там знаю сколько в данном случае получается на 100 миллионов девайсов на понятно что это не чудес это просто оставлю на девайсах если мы говорим на события 5 допустим 220 миллионов ивента в секунду разбить допустим когда ряд из 20 новых событий в секунды тебе прилетает на твой ну вот на наш vertex

    00:53:28 - 00:54:33

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

    00:54:02 - 00:55:27

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

    00:54:47 - 00:56:00

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

    00:55:24 - 00:56:38

  • образом так работает и возможно я не знаю насколько как бы file by the persistent но если нет то тогда мы должны складывать это в какую-то модель и в ноги это аналог одну такое да не так критична думают логинов этого найти хорошо хорошо хорошо так ну впринципе все даже в принципе не вопросам нет по системе приметах построили 0 так не будем потому что при ему прямо понятно я бы можно обработать в конце какую-то картинку нарисую как это построено на стене потом что-нибудь почитать по советам вот которые ты мне написал

    00:56:00 - 00:57:10

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

    00:56:36 - 00:57:36

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

    00:57:05 - 00:58:14

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

    00:57:41 - 00:58:18

Менторы

Специалисты своей области, которые смогут помочь вам

  • Нигма Нурия
    Нигма Нурия

    Middle .Net Developer

  • Сущенко Татьяна
    Сущенко Татьяна

    Senior Product Manager

  • Гудков Денис
    Гудков Денис

    Middle Python Developer

  • Курочкин Константин
    Курочкин Константин

    Ведущий программист

  • Гудман Макс
    Гудман Макс

    Backend Software Engineer (PHP)

  • Гребенкин Антон
    Гребенкин Антон

    Senior .NET/C# developer

  • Ахназаров Фёдор
    Ахназаров Фёдор

    Middle DevOps Engineer | Tbilisi, Georgia

  • Шорохов Дмитрий
    Шорохов Дмитрий

    Middle C# .NET

  • Жуков Александр
    Жуков Александр

    Senior PHP-разработчик

  • Мазикин Павел
    Мазикин Павел

    Middle python developer

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru