Tech Interview Fest | Моковое cобеседование на Java Junior |Solvery+@progmsk

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

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

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

    00:00:00 - 00:01:13

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

    00:00:38 - 00:01:52

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

    00:01:16 - 00:02:28

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

    00:01:53 - 00:03:04

  • Григорий разработчик соответственно Сегодня я проведу и пообщаемся с Виталием вот Виталий Расскажи пожалуйста как твои дела как вообще настроение еще раз Всем привет дела У меня хорошо Настроение собственно боевое Отлично расскажи тогда немножко про свой бэкграунд чем вообще занимался Что успел изучить С чем есть опыт как вообще решил сюда прийти Вот и что уже делал background на самом деле очень разнообразным как принято нынче говорить Я войти уже 15 лет начинал с разных вещей но на самом деле

    00:02:30 - 00:04:02

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

    00:03:19 - 00:04:37

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

    00:04:07 - 00:05:42

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

    00:05:17 - 00:06:37

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

    00:06:03 - 00:07:14

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

    00:06:40 - 00:08:11

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

    00:07:26 - 00:08:50

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

    00:08:15 - 00:09:32

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

    00:08:58 - 00:10:30

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

    00:10:08 - 00:11:27

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

    00:10:52 - 00:12:04

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

    00:11:34 - 00:13:10

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

    00:12:25 - 00:13:46

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

    00:13:23 - 00:14:53

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

    00:14:17 - 00:15:54

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

    00:15:09 - 00:16:34

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

    00:16:02 - 00:17:15

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

    00:16:43 - 00:18:28

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

    00:17:38 - 00:19:18

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

    00:18:36 - 00:20:03

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

    00:19:45 - 00:21:18

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

    00:20:43 - 00:21:57

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

    00:21:20 - 00:23:00

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

    00:22:18 - 00:23:50

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

    00:23:17 - 00:24:57

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

    00:24:08 - 00:25:37

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

    00:25:02 - 00:26:48

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

    00:25:56 - 00:27:44

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

    00:27:12 - 00:28:57

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

    00:28:10 - 00:29:23

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

    00:28:52 - 00:30:26

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

    00:29:43 - 00:31:09

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

    00:30:30 - 00:32:06

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

    00:31:20 - 00:33:05

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

    00:32:19 - 00:33:54

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

    00:33:29 - 00:34:55

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

    00:34:21 - 00:36:11

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

    00:35:18 - 00:36:55

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

    00:36:09 - 00:37:47

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

    00:37:08 - 00:38:23

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

    00:38:02 - 00:39:33

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

    00:39:04 - 00:40:52

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

    00:40:04 - 00:41:25

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

    00:40:45 - 00:41:57

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

    00:41:21 - 00:42:40

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

    00:42:03 - 00:43:29

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

    00:43:01 - 00:44:31

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

    00:43:46 - 00:45:20

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

    00:44:49 - 00:46:17

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

    00:45:41 - 00:47:27

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

    00:46:38 - 00:48:16

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

    00:47:30 - 00:49:05

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

    00:48:34 - 00:50:10

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

    00:49:23 - 00:50:43

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

    00:50:04 - 00:51:28

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

    00:50:52 - 00:52:54

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

    00:52:03 - 00:53:40

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

    00:53:05 - 00:54:40

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

    00:54:06 - 00:55:58

  • здесь стало Можно Окей ну и соответственно получается что у нас два запроса которые между собой объединяются ты сказал что сначала выполняется потом выполняется а потом выполняется что сексапи а потом селекторы по получившимся строчкам [музыка] соответствующие вот а два запроса Вот они какой-то штукой между собой соединены что вот с ними произойдет я провел смотри у нас есть один вопрос тоже просто виртуальная таблица Ну то есть у нас будет представление в котором будет [музыка] две записи Но судя по количеству

    00:55:10 - 00:56:59

  • селектов виртуальных таблиц я сейчас сам точно не скажу будут таблицы или нет насколько понимаю не будет потому что это просто две выборки Да и что не произойдет соответственно у нас есть одна выборка есть 2 между ними у нас допустим 10 строчек в первом варианте 20 строчек что мы в итоге получим название Нет я смотрю что мы делаем запросы в разные таблицы Мне кажется мы должны получить 30 строчек Да все верно оператор Union объединяет между собой как раз оба набора данных соответственно для этого

    00:56:15 - 00:57:42

  • что они должны делать чтобы оператор Работал без ошибок должно быть одинаковыми по структуре Да вспомнишь Чем именно отличается Окей Union соответственно объединяет строчки без дубликатов соответственно объединяет строчки сохранения дубликатов То есть если у нас допустим мы говорили что в первой таблице первый выводки 10 строчек второй выборки 20 строчек соответственно если 5 из них одинаковые а июня вернет 25 строчек не будет такой аналог если очень грубо вот день здесь что еще интересного ну и соответственно мы получаем какую-то

    00:57:15 - 00:58:54

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

    00:58:15 - 00:59:48

  • в принципе то что я хотел тебя поспрашивать по базе как раз в час уложились у меня есть небольшой запрос из чата что давайте успеем про архитектуру вот ну и Давай наверное еще 5 потратим буквально Расскажи что-нибудь про [музыка] микро сервисы про организацию взаимодействия Да сейчас модный пользовался пользовался как есть плюсы перед монолитом Какие минусы но скорее пользовался чем мне пользовался у меня на предыдущем проекте был распределенный Монолит Прикольно Это же штука сейчас у нас микросервис и

    00:59:07 - 01:00:40

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

    00:59:53 - 01:01:30

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

    01:00:42 - 01:02:08

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

    01:01:31 - 01:03:01

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

    01:02:20 - 01:03:47

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

    01:03:27 - 01:04:58

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

    01:04:15 - 01:05:48

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

    01:05:13 - 01:06:43

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

    01:06:02 - 01:07:37

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

    01:06:55 - 01:08:19

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

    01:07:46 - 01:09:21

  • операцию у нас пакет с одним айдишником дошел после этого пришел еще один такой Да верно как же нам получается 10 должны где-то получается вот или как то есть один сервис Он же не знает Допустим меня email сервис [музыка] обсудим Давай еще раз обсудим ландшафт У нас есть сервис который занимается уведомлением есть сервис который проводит транзакция прошла у нас Мы пытаемся отправить уведомление мы поняли что его нужно отправлять соответственно у нас нет катки у нас нет сами отправляем нас может моргнуть

    01:08:39 - 01:10:14

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

    01:09:32 - 01:11:04

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

    01:10:21 - 01:11:35

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

    01:11:11 - 01:12:25

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

    01:12:03 - 01:13:33

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

    01:12:48 - 01:14:16

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

    01:13:32 - 01:14:50

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

    01:14:18 - 01:15:41

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

    01:15:03 - 01:16:36

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

    01:15:57 - 01:17:25

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

    01:16:41 - 01:18:03

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

    01:17:25 - 01:18:51

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

    01:18:10 - 01:19:38

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

    01:18:59 - 01:20:30

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

    01:19:47 - 01:21:24

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

    01:20:39 - 01:22:20

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

    01:21:40 - 01:23:10

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

    01:22:27 - 01:23:53

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

    01:23:11 - 01:24:28

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

    01:23:53 - 01:25:24

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

    01:24:45 - 01:26:09

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

    01:25:27 - 01:27:02

  • diy аннотация А зачем жену бы два им пришли зависит от компании вы будете работать Я работал первые пять лет в компании в экспресс соответственно это раньше сейчас ребята переехали в [музыка] Ереван По моему я точно уверен Вот соответственно внутренний переписка велась на русском заказчики находились Соединенных Штатах какие-то обсуждения очень часто велись на английском То есть вполне мог быть заказчиком гораздо неделя и нужно было слух что-то воспринимать понятно что потом тимлит все переводил задачки резал

    01:26:17 - 01:27:37

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

    01:26:59 - 01:28:33

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

    01:27:48 - 01:29:09

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

    01:28:36 - 01:30:26

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

    01:29:30 - 01:31:14

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

    01:30:24 - 01:31:35

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

    01:31:09 - 01:32:18

  • процессе обучения и развития то как раз через нас большое количество ребят проводит мокрый Собес и делают проекты и потом устраиваются на работу вот в целом наверное на этом все еще раз хочу поблагодарить дарить Московский клуб программирования вот за партнерский Стрим поддержку в продвижении и запуске и ребят Вот Впереди у нас еще целых восемь собесов будет Sharp Go rect angular Android и куча всего другого Так что смотрите что там интересно скидывайте друзья Виталий Григорий Еще раз большое спасибо

    01:31:44 - 01:32:54

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

    01:32:19 - 01:33:41

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

    01:33:00 - 01:34:18

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

    01:33:39 - 01:34:22