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

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

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

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

    00:00:00 - 00:01:54

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

    00:00:56 - 00:02:38

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

    00:01:50 - 00:03:44

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

    00:02:53 - 00:04:28

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

    00:03:43 - 00:05:38

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

    00:04:45 - 00:06:49

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

    00:05:58 - 00:07:47

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

    00:06:53 - 00:08:47

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

    00:07:50 - 00:10:40

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

    00:09:23 - 00:12:21

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

    00:11:01 - 00:13:15

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

    00:12:57 - 00:15:32

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

    00:14:17 - 00:16:38

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

    00:15:35 - 00:17:26

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

    00:16:43 - 00:19:05

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

    00:18:03 - 00:21:04

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

    00:19:31 - 00:22:07

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

    00:21:01 - 00:24:14

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

    00:23:04 - 00:25:57

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

    00:24:33 - 00:26:24

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

    00:25:33 - 00:29:02

  • где-то я хочу corinth next и удалить правильно пишут что я говорю что будет теперь со promise будет сладко элемент который я хочу удалить сейчас похода я вижу что ты говоришь что у него утра и ты хочешь делать вот так что дима ссылается сюда до 1000 сходе написал что тройка теперь правило это все-таки сюда вот эту ссылку мы уничтожили а вот этому не уничтожили что какой из этих элементов миссис карен 1 и 2 что мы хотим сейчас вот мы сейчас подарили ссылку от 12 правильно ты сейчас хочешь сказать что теперь тройка

    00:27:30 - 00:29:06

  • ссылается на прав на один пишет что карен там у нас является один смотри сюда вот если мы говорим про код то есть мы вижу что wild card [музыка] общая вы хоть понятно давайте опустим принципе как интересно главное что мы тут типа пишем и что карен аллен . обработать а если вы допустим вот если так пишут что aren't л м н . всю эклз искомое вылью что мы сделаем в этом случае мы делаем а слушать их нет это просто получается у [музыка] последующего элемента для духа на предыдущий достаточно хорошо супер по

    00:28:21 - 00:30:33

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

    00:29:43 - 00:32:06

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

    00:30:58 - 00:34:27

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

    00:33:08 - 00:35:03

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

    00:34:13 - 00:37:16

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

    00:36:04 - 00:37:31

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

    00:36:47 - 00:38:18

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

    00:37:37 - 00:42:16

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

    00:40:11 - 00:43:22

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

    00:41:48 - 00:43:27

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

    00:42:54 - 00:45:04

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

    00:43:59 - 00:45:42