Тестовое собеседование Java разработчика #25 - Алексей Пригода

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

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

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

    00:00:01 - 00:01:03

  • задачу и попробуем спроектировать и обсудить дизайн решения крайне популярной системы которую мы активно пользуемся Я бы хотел чтобы мы могли сами себе честно ответить как бы мы отвечали на эти вопросы если бы мы были на собеседовании и смогли трезво себя оценить Я желаю вам всем Приятного просмотра и увидимся через мгновение Трик такс Да Итак всем привет У нас в гостях сегодня Алексей Пригода Алексей Расскажи пожалуйста себе Кто ты откуда Чем занимаешься Так ну Мне 30 лет Я сам из Новосибирска

    00:00:32 - 00:01:39

  • последние 2 года Живу и работаю в АНО полисе чем занимаюсь у меня около 2 лет коммерческого опыта и все 2 года Я работаю на одном проекте крупного банка внутренний проект он вообще в плане именно объяснения что он делает довольно сложно потому что ну я сих пор не понимаю имен целевых потребителей потому что проект связанный именно с мето информацией которая крутится в банке она предоставляет специализированную информацию именно Ну специалистам именно внутри банка Вот что по технологиям может что-то что

    00:01:05 - 00:02:31

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

    00:01:48 - 00:03:04

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

    00:02:26 - 00:03:31

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

    00:02:59 - 00:04:20

  • и Ну это всё дальше продолжается уже по хорошо то есть Это скорее всего скрам да у вас получается Если есть с принты Да там РЕТ и так далее А как вы оцените задачи Кстати как вы ну сложность даёте задачи сложность оцениваю в монде Ну х человек днях Ну то есть да пере перед тем как приступаем к задаче мы получаем ээ функциональные требования ОТ аналитиков мы их анализируем мы э все вопросы которые возникают непонятные моменты мы их э обсуждаем обязательно потому что необходимо понимать с чем работаешь и не

    00:03:38 - 00:04:53

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

    00:04:16 - 00:05:24

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

    00:04:50 - 00:05:56

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

    00:05:25 - 00:06:37

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

    00:06:01 - 00:07:11

  • инструменты для работы ну то есть есть откуда какие-то конфиги или ещ что-то подстроить Вот но в целом отдельный микросервис например решаешь задачу то есть прям целый микросервис и ты за не отвечаешь Ты его там от от чертежа какого-то алгоритма ты доводишь его до прода правильно похо технологический что вы используете на проекте Какая архитектура решения вашего проекта Так ну по стеку получается у нас Java оди springboot hibernate Ну СР естественно G Unit Что ещё интересного есть Угу Ну вот основное вот так а что-то

    00:06:36 - 00:07:55

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

    00:07:19 - 00:08:28

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

    00:07:53 - 00:09:27

  • используется хорошо вот когда ты в помни тебя прямо зависимость хирта или всё понял да то стартер который под капотом еет Поня через получа а бд у вас какая у нас Oracle но мы Сейчас переходим на пог вот у нас миграция Да хорошо Нет смысла платить больше хорошо Яя понял супер А с каким объём даных вы работаете То есть это гигабайты терабайты петабайт м ну я бы я на самом деле не оценивал но мне кажется это ну может близко гигабайтам но это не не прямо Биг дата то есть и не высоконагруженные сервисы небольшие

    00:08:43 - 00:10:14

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

    00:09:29 - 00:10:52

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

    00:10:09 - 00:11:42

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

    00:10:56 - 00:12:09

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

    00:11:33 - 00:12:49

  • моём понимании скорее у вас собирается докер образ Да и потом на основании докер образа поднимается контейнер Да с конфигами различными именно в кубе Ну это чно звучит потому что это в контейнере крутится да то есть что да это так и должно но здесь Видишь В чём суть в том что непосредственно именно докер образа я сам не пишу и сам этим не занимаюсь то есть Ага смотри А вопрос то есть ты говоришь вот поднимал сервис Да когда вот микросервис был у тебя Да ты вот docker файл Там docker compose Или там

    00:12:14 - 00:13:22

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

    00:12:51 - 00:14:05

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

    00:13:27 - 00:14:39

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

    00:14:05 - 00:15:27

  • пример один на строке девять то есть допустим на вход нам пришла строка ABC ABC BB в данном случае ответ будет три потому что ответ - Это ABC Да вот пото что не повторяющий символ ABC потом снова а пошла далее например на строке 14 на вход пришли бббб ответ будет Один потому что б только одна повторяется и соответственно это один символ далее У нас идёт pvv Q ответ будет три потому что в данном случае вот уникальная подстрока без повторения будет wq и и длина будет соответственно 3 Хорошо давай я сначала

    00:14:45 - 00:16:10

  • озвучу как я понял вообще зада То есть у нас на вход приходит строка нужно найти длину Ну то есть Сай длинной подстроки без повторения именно символов Да верно Так первый пример у нас ABC ABC потому что там дальше идёт A Да и поэтому там уже повторилось соответственно самая длинная у нас ABC где повторяющиеся символы все B Это только B п в ВК вот третий пример вот какой-то ПВ ВК А ну потому что длиннейшая строка в wq и это самая длинная подстрока с неповторяющимися символами О'кей так Ну давай попробуем какие мысли

    00:15:28 - 00:17:19

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

    00:16:22 - 00:18:03

  • даст Ну вот Угу Ну то есть я понимаю что ты хочешь Вот взять А да и пробежать дальше то есть узнать есть ли она у тебя Ну гово Да повторяется 52 раза допустим Ну да особо информации не даст видишь Сейчас я пытаюсь понять как решить проблему именно Как хранить Как определить эту именно не повторяемость Ну то есть если я например ну первый символ я вижу A второй B C Мне нужно понять ну то есть на четвёртом символе что уже была нужно Ну возможно кстати возможно можно создать какой-то подмассив или

    00:17:15 - 00:18:51

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

    00:18:13 - 00:19:33

  • хочешь например вот взять символ а то есть смотреть повторяется ли символ Да да угу вот допустим вот ты берёшь пример на строке номер де Да у тебя есть есть символ A и потом ты начинаешь анализировать что он у тебя есть повторяется на на четвёртом символе да то есть с индексом 3 Ну если брать Как как массив что это тебе даст так Ну это может дать потенциально Лину строки от этого первого символа до его первого повторения Угу то есть грубо говоря мы с тобой приходим к идее двух указателей да первый указать то есть для того чтобы Мы

    00:18:56 - 00:20:20

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

    00:19:41 - 00:20:59

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

    00:20:33 - 00:22:07

  • получается давай ещ раз у нас за наиболее как бы длину подстроки Да с уникальными Сими Да мы понимаем к примеру что в примере о ABC АБ у меня повторяться вот в данном случае они начинают между а то есть я допустим начинаю со символа А первый указатель Да иду и потом начинаю искать где он у меня повторяется да да если он мене повторяется Мне необходимо где-то сохранить значение то есть о том что у меня вот Он повторяется Угу то есть соответственно Мне нужно где-то хранить данные о том какие символы были

    00:21:24 - 00:22:52

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

    00:22:08 - 00:23:17

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

    00:22:47 - 00:24:11

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

    00:23:32 - 00:24:49

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

    00:24:14 - 00:25:36

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

    00:24:54 - 00:26:28

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

    00:25:54 - 00:27:35

  • будет ну от нуля ну до или от старта Ну от до до S Ну дадада верно мы идём по всем символам строки отлично Ой что это а да к Угу Так I меньше чем sln так такой бы уровень не был с тобой н да это метод или переменная у нас в строке А в строке это Метод конечно же это ме у нас объект так и i+ Ну логично если мы хотим вперёд итерироваться Так теперь что я беру получается у строки S символ и супер хорошо Давай её сохраним какую-то переменную [музыка] дача что там думает отлично хорошо смотри в конце то

    00:26:54 - 00:28:52

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

    00:28:00 - 00:29:27

  • перемен В смысле данный черек у нас уже был мы можем обрати к этой мапе по ключу то есть мы говорим если Давай If дадада так и process что там Get по-моему же Get C равен Ну чары У нас они Ну в данном случае будет проще да то есть тут будет как ти Да согласен согласен дагу значится мы нашли повторяющийся символ и что мы то должны сделать Ну здесь возможно обновить тогда индекс вот этот Старт указатель куда мы его м обновить что обновить мы Что понимаем что мы с указателями делаем обычно мы с указателям ну перемещаем его перемещаем

    00:28:48 - 00:30:29

  • влево вправо Будем двигать его ну вправо естественно потому что мы итери пра отлично хорошо то есть соответственно чему будет Старт равен в этом случае ну Старт в данном случае должен быть равен I потому что мы дошли до этого места нашли повторяющийся символ и соответственно То есть под строку мы мы определили до до вот этого момента где мы дошли где нашли повторяющуюся симу О'кей Ну это мы сейчас говорим про первую итерацию А на второю итерацию что будем делать допустим вот ты первый раз уже например ты прочитал а дошёл до

    00:29:41 - 00:30:37

  • третьего символа и она у тебя снова встретилась куда указатель мы смести А ну на третий семо получается на один вправо от предыдущего а правильно то есть от его предыдущего индекса Угу то есть на следующий элемент то есть соответственно мы говорим процесс chars Get C плюс О так Чар Стоп так нене вот здесь то есть Старт равно то есть мы говорим что теперь мы хотим указатель сдвинуть правее Да прор C плю о то есть мы сдвигаем указатель в правее так если про Конте а ну то есть если это повторяю симу То

    00:30:09 - 00:31:29

  • есть если я первый нашёл потом я второй нашёл Я ти То есть тут давай пока оставим в уме что мы кое-что на строке 40 не доделали подумаем что А если мы не встречали ещё Этот символ то что мы говорим Ну мы мален наверное тогда увеличиваем отлично то есть пишем то после Иа else да Угу угу так делаем Макс п Макс А разве ПЛЮСПЛЮС а а да А если перед этим уже есть Дада Пардон дада да он только плюс плюс он отработает только когда он зайдёт в это условный оператор некорректно будет мален у нас в данном

    00:30:54 - 00:32:26

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

    00:31:43 - 00:33:04

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

    00:32:27 - 00:34:06

  • да не Старт а Старт Всё правильно да пардон и увеличим на один Правильно Потому что мы его не встретили то есть мы как бы должны увеличить на ещё один на одно значение потому что мы расширяем наш диапазон текучий и вот здесь к старту плюс о добавляем Стар плю О хорошо возвращаемся на строку 40 давай подумаем ну а ну и в конце там уже мот на строке между 47 и 48 новую строку добавить ма сделать Угу точка запятой и Давай на Роке 40 Какое условие важное мы пропустили Так какое важное условие мы пропустили

    00:33:19 - 00:34:39

  • м так если у нас Чар [музыка] conc на на 40 то есть нам расширить условия здесь нужно чем то давай вот подумаем То есть мы допустим с тобой говорим вот сейчас выше подними пожалуйста этот там где пример один у тебя идёт да Угу то есть можешь скопировать эту строку строку девять просто её скопировать Да с комментарием прямо да и вставь е пожалуйста на тридцать девятую строку чтобы для наглядности как это будет Да смотри итерируемый уме то есть мы с тобой работаем по строке S У меня сейчас Старт равен ноль Ман равен ноль мапа пустая Я

    00:34:08 - 00:35:33

  • иду циклом получил символ с Ну символ C равен А у меня сейчас да да я говорю например в текущем условии что у меня есть в мапе моя C Ну моё символ А он говорит Нет не я говорю что значит максимальное значение сейчас равно 0 ми 0 П 1 То есть пока я говор будет один отлично и закинули сейчас в мапу а зап 0 есть такая штука далее мы с тобой дошли теперь на B Я говорю B У меня есть он говорит B У меня нет опять-таки Max L у меня чему равен мален о э I ми Старт это э 1 - 0 + 1 = 2 соответственно маслен будет два ой 2Д

    00:34:58 - 00:36:40

  • Отлично всё супер Теперь пошли дальше я перехожу на C та же самая штука теперь Max Lens Равин у меня Т да будет я добавил А теперь интерес начинается вот теперь переходи на А вот теперь всё мы идём дальше я говорю у меня сейчас есть буква А он говорит Да да есть хорошо и тогда я говорю что теперь у меня Старт будет б правильно Ну то есть мы получаем эту Этот символ мы его получаем то здесь нам вернётся соответственно первый раз когда мы складывали туда нам складывался символ индекс то есть мы сложили A и но мы

    00:35:50 - 00:37:24

  • получается Старт у нас вернёт здесь Но плюс о то есть у нас Старт стал один Хорошо Окей это хорошо или плохо Ну то есть условно у нас продолжай Ари Давай теперь проговори Допустим мы тепер на а на второй а четвёртом символе на на на вот этом символе или на следующем Да мы на этом символе продолжай Угу Ну то есть мы получается прошлись вот проверили Да у нас совер в нашей мапе Этот символ мы получили по нему значение Ну то есть индекс он был ноль прибавили один Старт нас засветился засветилась единичка Вот и дальше Ну это мы

    00:36:37 - 00:38:06

  • естественно вложенный блок пропустили потому что и на сорок восьмой строке мы добавили в нашу мапу ну точнее как добавили мы Обновили по ключу у нас значение стало теперь три Ну то есть но 1 2 3 да то есть стало в мапе т пе хорошо Да дальше О так Ну окей следующий символ идём би би у нас также уже раньше встречался Мы попадаем в ма получаем отсюда Ну по ключу у нас единичка плюс единичка Старт стал 2 а потом опять в мапу заменили тутуби которая была ну новый Ну новые позиции то есть положили B со

    00:37:22 - 00:39:10

  • значением 4 да Так идм дальше также у нас содержится в Ну то есть в мапе поэтому мы из старта получаем значение д прибавляем о получаем старте три отлично А вот теперь Интересно теперь давай Ну это понятно теперь BB переходи Вот теперь у меня б снова теперь B мы опять же Обращаемся к мапе у нас содержится в мапе мы получаем по ключу значение последнее значение положено было Вот такое то есть да 4 п1 Старт стал Вот и мы опять пошли в итоге положили сюда со значением 0 2 3 [музыка] 4 Ну и для с получается также

    00:38:18 - 00:40:28

  • предыдущую она у нас была 6 6 П 1 старте будет 7 и мы опять Её положили в конце просто просто чарт Ну и значение 7 хорошо на строке теперь 42 Вот услови и вот я сечас скажу одно условие пиши в скобочках там на строке 42 и ну двойной В смысле и старт меньше либо равно проце Get мы здесь сделаем Для чего я это сказал так мы здесь проверяем получается Старт меньше либо равно позиции поэтому поэтому символу который в прошлый раз а зачем Давай подумаем Ну то есть первое Понятно У нас Ну поскольку у нас здесь

    00:39:29 - 00:41:17

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

    00:40:37 - 00:41:56

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

    00:41:16 - 00:42:34

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

    00:42:06 - 00:43:25

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

    00:42:46 - 00:44:10

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

    00:43:28 - 00:44:53

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

    00:44:23 - 00:45:39

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

    00:45:15 - 00:46:32

  • способность системы условно прикинуть то сколько видео мы будем каждую секунду показываю да то есть Ага Хорошо Как ты посчитаешь Ну если у нас 50 млн активных в день Ну то есть мы можем просто перемножить это на пять видео в день Ну в среднем типа у нас среднее Да хош тогда мы получаем 250 млн показов в день видео и мы просто их там ну то есть в день ну мы соответственно можем делить там на часы там минуты там секунды ну нас секунды Да интересуют то есть мы делим получается 250 млн 1 2 3 1 2 3 делить на Ой я забыл

    00:46:02 - 00:47:12

  • Сора 86 сейчас 86.000 400 секунд 86 400 получаем Угу там ну 2893 короче 2900 2.900 видео Давай 3.000 видео в секунду чтобы красиво было Ну условно можно сказать что типа запрос в минута да реквест Угу Ну да у меня есть это значение да то есть О'кей что ещё мы должны тогда с тобой продумать А это на чтение Да у Да ну мы ещё должны продумать соответственно А запись обработку отлично Я считаю что у меня только один из тысячи будет загружать видео угу Значит сколько мы в секунду будем видео загружать так 11.000 то мы можем Ну если

    00:46:39 - 00:48:26

  • будет по пять видео в день загружать можно просто на 1000 разделить словно и получить там отлично [музыка] дадада то есть видео в секунду отлично то есть мы говорим что у меня 3.000 чтений в секунду и три алоу в секунду Хорошо давай подумаем То есть вот на основани того что я сейчас сказал хранение там видео много То есть как мы теперь посчитаем сколько мне необходимо там видео хранить Сколько необходимо вре есть память хранилище Ну условно если у нас есть уже входные данные что ти средний обм это 1

    00:47:43 - 00:49:04

  • мы можем почитать а а ну это мы посчитаем пропускную способность потому что ну по по запросам А по Загрузка у нас есть три условно загрузки в минуту соответственно там 3 ГБ в минуту у нас получается память долж Ну то есть занимается словно отсюда мо ты уже НВИ Хочешь почитать Но мне же нужно ещё и хранить Да вот это как бы прям вот где-то Там они должны быть сохранены в принципе кто видео в целом Ну да они же должны у тебя храниться на каком-то стороже на твоих серверах Ну я уже как про это и думал то есть у нас есть

    00:48:26 - 00:49:51

  • информация по объёмам файлам У нас есть информация по тому как часто будет заливать видео мы предполагаем Ну то есть что эти видео они Ну то есть каждая загрузка она долж занимает больше места Ну то есть больше памяти одно видео 1 ГБ допустим да да Ты говорил что 1 ГБ у нас э ну у нас условно есть три загрузки в минуту Три Угу Да а Ну соответственно тя Может она минуту на минуту с в минуту или во сколько у нас загрузки Ну Минуту На сколько мы посчитали точно rpm rps да это 84 866 Угу а Господи да да да

    00:49:08 - 00:50:44

  • секунду Ну относительно этого можем экстраполировать сколько у нас ну то есть перемножив условно там день месяц год умножай Да давай на год Надо посчитать как ты буде считать так если у нас просто пять загрузок так ну ладно Можно отсюда взять умножить три загрузки умножить на секунды умножить на минуты умножить на часы умножить на дни на 24 [музыка] умножить на месяц условно там ну давай год сразу 365 того я получил какую-то большую цифру господи Сейчас я прочитаю 94 млн загрузок в год вот если мы посмотрим умножим на обм

    00:49:56 - 00:51:37

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

    00:50:55 - 00:52:23

  • 94 У меня получилось 68.000 ГБ это 94 пе бай за за год хорошо за год да если непрерывно Мы смотрим Хорошо хорошо а то есть мы с тобой посчитали storage теперь что нам важно посчитать с точки зрения вот пользователя чтобы не лагало как это называется это Парат э ну leten нет ну bendvis называется да то есть пропускная там bands Угу угу сколько мы должны пропускать э гигабайт в секунду Как посчитать Так ну у нас если смотрят почти 3.000 запросов в секунду а как мы это посчитаем действительно давай подумаем То есть

    00:51:49 - 00:53:36

  • допустим Так у нас есть да Сколько мы видео с тобой загружаем в секунду загружаем на сервер три три значит Сколько гигабайт в секунду должен быть бевис на алод Ну 3 ГБ должно м 3 ГБ хорошо а на чтение тогда м на чтение у нас 2.900 запросов в секунду ну в 1.000 раз больше Да значит ско 33 теба 3 тба в секунду Да хорошо отличненько допустим решили Итого Нам необходимо 93 Ну допустим 100 пиб данных Да Нам необходимо на алод поддерживать 3 ГБ в секунду на Down Нам необходимо поддерживать 3 тба в секунду хорошо

    00:52:46 - 00:54:29

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

    00:53:42 - 00:54:54

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

    00:54:21 - 00:55:34

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

    00:54:59 - 00:56:01

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

    00:55:34 - 00:56:57

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

    00:56:15 - 00:57:45

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

    00:57:04 - 00:58:31

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

    00:57:52 - 00:59:01

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

    00:58:31 - 00:59:39

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

    00:59:05 - 01:00:25

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

    00:59:46 - 01:00:50

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

    01:00:22 - 01:01:39

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

    01:01:06 - 01:02:23

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

    01:01:47 - 01:03:01

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

    01:02:31 - 01:03:53

  • это видео Ну то есть на другие машины для того чтобы опять же Ну то есть распределять на нагрузку чтобы можно было Ну то есть не обязательно там машины разные сервера чтобы распределять именно большой запрос на какое-то видео на какой-то контент вот так Ага хорошо а знаком с таким понятием Как cdn cdn нет да Котен Del NW хорошо А давай по поводу кэширования там какие-то вот метода Ну какие-то данные по самим видео то есть что бы ты использовал в качестве кша м в качестве кша Угу редис какой-нибудь редис Ну хорошо Да я

    01:03:18 - 01:04:38

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

    01:04:04 - 01:05:19

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

    01:04:41 - 01:05:51

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

    01:05:16 - 01:06:36

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

    01:05:56 - 01:07:15

  • Хорошо скажи пожалуйста по поводу вот CD насколько глубоко Ты работал Или ты вообще не работал вот построени палана очень мало Ну то есть мой опыт ограничится то что я когда сам учился Немножко там смотре это очень ограни на работе буквально раз это такой ограниченный набор задач что мне по инструкции там выслали Что можно сделать я понял нельзя сказать там полноценная работа Ага хорошо А ещё такой вопрос Скажи пожалуйста вот ты говоришь когда задачи получаешь да ты вы там с аналитиками работаете то есть с прямым

    01:06:34 - 01:07:45

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

    01:07:11 - 01:08:25

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

    01:07:53 - 01:08:53

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

    01:08:23 - 01:09:31

  • задача вот допустим Ну там не знаю джир или что вы использу Като таска полу Да вот ты получил жиру там ABC 100500 какая-то сдача что у тебя в ней написано обычно как ты видишь сдачу эту Ну обычно это м само описание задачи Ну то есть просто текст примерно что мы хотим сделать да Угу Да ну то есть я вижу сроки какие установлены то есть они как раз вот в ндх у нас ну то есть там в днях просто считается в Джи я понял то есть это по сути в рабочих нях идёт хорошо А скажи а вот а и статус естественно задачи То

    01:08:57 - 01:10:16

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

    01:09:39 - 01:10:47

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

    01:10:16 - 01:11:30

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

    01:10:52 - 01:12:14

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

    01:11:36 - 01:12:30

  • всеми готовым требования всё да Тогда тогда я я понял да всё тут мой фол перегнул Лёш Да Лёш смотри хорошо у меня без вопросов по технически мутя Кито вопрос Может есть там насущные Блин ты что без вопросов то технических я зачем учился ладно шучу Ну короче я не знаю Как Зрители Т оценят интервью не нормально То есть я там напишу всё да то есть забегая Вперёд для ребят То есть тут по по алгоритмике там объективно есть какие-то моменты которые надо потянуть по именно дизайн задачки тут мой недочёт тут как бы куда сложнее чем

    01:12:03 - 01:13:23

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

    01:12:43 - 01:13:58

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

    01:13:25 - 01:14:27

  • понятно по СИ Ну я не знаю что ладно я потом посмотрим Короче ладно спасибо тебе Я бы хотел в будущем то есть чтобы я там тебе скину материалы некоторые получить и через какое-то время 2-3 месяца мы с тобой снова созвонились и было бы интересно посмотреть вот Прогресс то есть ну по этому это было мне кажется Круто Ага ну давай смотрим Хорошо хорошо всё Лёш Спасибо за Т время на связи Всем спасибо всё пока пока Всем пока L

    01:13:56 - 01:14:52

Менторы

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

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

    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