Собеседование Java Middle | Реальное собеседование | Jetbulb

Поделиться
HTML-код
  • Опубликовано: 21 ноя 2024

Комментарии • 308

  • @physicsofthewonderful7612
    @physicsofthewonderful7612 7 месяцев назад +4

    Спасибо огромное за Ваш труд и время потраченные на создание канала. Полезная информация для подготовки к собеседовании, приятная подача.
    Особенно радует текст в начале видео!

  • @vladimirblagin3105
    @vladimirblagin3105 2 года назад +47

    45:28 Послушал про оптимистичную и пессимистичную блокировку. Улыбнуло. Объясню вам на пальцах, чтобы вы других не вводили в заблуждение. Смотрите. Прежде всего блокировка нам нужна только когда мы что-то меняем. И блокировка нужна, чтобы измененные данные сохранили свою целостность. Не были утрачены в какой-то части в результате наложившихся параллельных изменений. Никакая блокировка не должна запрещать другим читать данные (если не мегаспециальные сценарии). Это касается только функционала изменения данных. Например, открыли на редактирование какой-то документ. Поредактировали и сохранили.
    Что такое оптимистическая блокировка и почему она так называется. Оптимистическая блокировка берет данные в работу на изменение и никому не запрещает взять эти же данные на изменения параллельно. Это такие оптимисты, которые надеются успеть изменить документ и сохранить его пока никто не успел взять этот документ на изменение. Далее, кто первый встал того и тапки, кто первый записался в базу данных, тот молодец, а второй "неудачный оптимист" получит отлуп по блокировке, если механизм блокировки вообще есть. Один из вариантов реализации оптимистичной блокировки является версионирование данных. Каждый entity имеет в БД поле с номером версии, он меняется в БД когда кто-то изменил этот блок данных entity. Соответственно при попытке записаться сравнивается версия исходная с которыми данные получены и версия на момент записи. И если они отличаются, то отказ. За это отвечает та самая аннотация @Version. Это работает как видите и на уровне приложения, и на уровне БД.
    Теперь, пессимистичная блокировка. Тут работают пессимисты, они не действую по принципу "авось никто не успеет поменять документ, пока я тут его же меняю", они берут данные в работу на изменение и запрещают другим брать эти же данные на изменение, читать - пожалуйста. Но брать на изменение второму не дадут, жди пока первый разблокирует данные. Это гарантирует первому спокойное сохранение какого-то очень важного документа, важного начальника, который не будет повторять дважды и бегать за уведенными тапками. Для такого типа блокировки где-то, в БД или в приложении выставляется признак, что данные взяты на изменение, кем, когда. И все остальные (жаждущие изменить, читать - пожалуйста ) ждут, механизм может поддерживать автоматическую разблокировку через таймаут. Если кто-то взял документ на изменение и ушел в декретный отпуск, а другим его нужно изменять.
    Оптимистичная блокировка хороша, когда данные не критичны, можно повторить изменения. Получил отлуп, перечитал данные и внес в новую версию уже свое, если вообще потребуется, а то может коллега уже все прописал. И обычно используется когда нет высокой конкуренции. Главное, она не блокирует работу с документом на изменение, она блокирует прием результата изменений, если кто-то успел документ изменить. Плюс: бери документ на изменение кто хочет, кто первый успел, тот молодец. Минусы: при блокировке приходится перечитывать новую измененную версию и повторять всю работу по изменению снова.
    Пессимистичная блокировка нужна когда данные оперативно меняются в условиях высокой конкуренции или когда важный документ, который переделывать повторно трудозатратно. Плюс: все что вы изменили гарантированно примется. Минусы: остальные документ изменить не могут пока вы его "держите" на изменение.
    Возможны гибридные варианты стратегии блокировки. Например, какие-то типы документов работают в оптимистической стратегии, какие-то особо важные в пессимистической. Или даже так: первые N часов/минут документ работает в режиме пессимистической блокировки, потом переключается в режим оптимистической. Тогда достигается комбинация положительных сторон двух стратегий и определенный компромисс недостатков (но это уже не про Spring)

    • @СэмФишер-х4д
      @СэмФишер-х4д Год назад +3

      очень круто все расписали. спасибо!

    • @dreamer_vi905
      @dreamer_vi905 4 месяца назад +1

      Очень здорово объяснено. Спасибо!

    • @mukaludischev6247
      @mukaludischev6247 4 месяца назад +1

      Спасибо! А то я уже начинал сомневаться в себе)))

    • @user-iy1zv9ej1d
      @user-iy1zv9ej1d Месяц назад

      Для чего тогда вообще нужна оптимистическая блокировка, если она точно так же не позволяет одному что-то менять, если меняет и другой? Зачем тогда вообще давать доступ, что-то делать, если будет откатываться всё равно?

    • @АрманМатевосян-з4м
      @АрманМатевосян-з4м 19 дней назад

      @@user-iy1zv9ej1d Применение оптимистичного параллелизма способствует повышению производительности благодаря тому, что не требуется блокировка записей, которая требует дополнительных ресурсов сервера. Кроме того, для блокировки записей требуется постоянное соединение с сервером базы данных. При использовании модели оптимистичного параллелизма такая необходимость отсутствует, поэтому соединения с сервером можно применять для обслуживания большего количества клиентов за меньшее время.

  • @A_Rakh
    @A_Rakh 9 месяцев назад +2

    Спасибо за данный ролик. Много что узнал нового для себя. Как раз готовлюсь к собесам :)

  • @milordplus
    @milordplus Год назад +3

    Спасибо за видео! Немного дополню про мапу, порог называется loadFactor, и он напрямую зависит от initialCapacity.
    Как было сказано - капасити по умолчанию 16, а лоадфактор 0,75. Это означает, что с 12го элемента мапа будет увеличена вдвое и так в прогрессии.

  • @Mdfnik
    @Mdfnik Год назад +5

    спасибо за старания, все супер, смотрится на одном дыхании, все понятно и интересно объясняется. Полезное и приятное время препровождение )

  • @Грант1147
    @Грант1147 2 года назад +15

    Спасибо огромное за столь большой объем качественной информации!

  • @Ren-z5m3t
    @Ren-z5m3t 10 месяцев назад +2

    Спасибо. Полезно. Ещё раз пересмотрю

  • @user-kk9rx4jd6zs
    @user-kk9rx4jd6zs Год назад +2

    Контент топчик! Максон спасибо :) Очень много интересного!

  • @eskelgarsio2998
    @eskelgarsio2998 2 года назад +6

    Сейчас такое у джунов спрашивают) спасибо за видео, хорошо объяснил ответы на вопросы

  • @artemlisitsyn9846
    @artemlisitsyn9846 2 года назад +22

    Очень познавательно, Макс, спасибо! Много нового для себя подчерпнул особенно про аннотацию transactional, но просмотрев, понял, что много вещей будучи джуном уже знаю, чем был приятно удивлен, еще раз спасибо, продолжай в том же духе, хотелось бы еще хотя бы 1 пример интервью (или такого же формата как это видео) вопросов мидлу.

    • @Jetbulb
      @Jetbulb  2 года назад +5

      Скоро будет видео на синьорскому собеседованию )))
      Материал собирается.
      Спасибо за твой фидбек ☺️🙏🏻

    • @artemlisitsyn9846
      @artemlisitsyn9846 2 года назад +1

      @@Jetbulb круто) буду ждать

  • @FilippTurbanov
    @FilippTurbanov Год назад +11

    Громадное спасибо за подобный контент! Во-первых, это невероятно интересная информация, во-вторых - необычайно полезная для всех!
    Автору канала успехов!

  • @jackcreater2875
    @jackcreater2875 Год назад +7

    Через 1,5 часа собеседование, смотрел интервью с ребятами, на трудоустройство не рассчитываю, проверю свои знания и будет какой-то опыт. С каналом более углублённо проработал разные вопросы, спасибо

    • @derzkii_samogonshik
      @derzkii_samogonshik Год назад

      Как собеседование прошло?

    • @lerikshow8491
      @lerikshow8491 Год назад

      И как? Получилось?

    • @universeunity9970
      @universeunity9970 2 месяца назад

      Человек видимо уже работает, нету времени отвечать)

  • @maks7494
    @maks7494 Год назад +2

    Даже для джуна это интересно. Круто. Спасибо за информацию)

  • @askar4ou
    @askar4ou Год назад +4

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

  • @AnastasiaKolevatykh
    @AnastasiaKolevatykh 2 года назад +7

    Спасибо за качественные и полезные выпуски 😊

  • @kirill141
    @kirill141 Год назад +7

    Меня на джуна сильнее спрашивали, это было 2 года назад :)

  • @Алексей-р1р9л
    @Алексей-р1р9л 2 года назад +1

    Блин, ты очень классный рассказчик. Я бы с удовольствием послушал про Spring от тебя , прям love)

    • @Jetbulb
      @Jetbulb  2 года назад +1

      Спасибо за фидбек))) Это лучшая награда.
      Кстати, у нас есть плейлисты про спринг. Правда там не много видео, но это временно.

  • @alekseizhitenev6020
    @alekseizhitenev6020 2 года назад +4

    спасибо за такого рода видео, очень много новых нюансов узнаю)

  • @МаксМакс-ч8к
    @МаксМакс-ч8к 2 года назад +6

    Макс🖐 Спасибо за годный контент👍👍👍

  • @go-with-go
    @go-with-go Год назад +3

    Очень круто! Спасибо за разбор интервью - это действительно полезно

  • @АлександрНиколаевич-с3ж

    Просмотрел, сделал конспект ))) Спасибо!

  • @artemvoloshyn1257
    @artemvoloshyn1257 2 года назад +2

    Дякую, за цікавий та корисний контент 🙂

    • @Jetbulb
      @Jetbulb  2 года назад +2

      Респект 👍 🇺🇦

  • @TsimurKatkouski
    @TsimurKatkouski 2 года назад +2

    Спасибо за видео! Каждый раз узнаешь что-то новое или повторяешь то что забыл

  • @dimavarushyla6772
    @dimavarushyla6772 2 года назад +8

    Макс, спасибо за видео!
    Про TDD не согласен. Важно понимать концепцию и пробовать)) но на практике она применяется достаточно редко. Одно дело, удобно имплементировать по TDD доменную логику в доменных объектах - объектах где нет зависимостей. И другое дело предвидеть в тестах какие зависимости (сервисы, репозитории) будет использовать юзкеис-класс.
    В видео ставится = между многопоточностью и реактивщиной, но это разные понятия.

    • @Jetbulb
      @Jetbulb  2 года назад +1

      Привет!
      >> В видео ставится = между многопоточностью и реактивщиной, но это разные понятия.
      Не знаю где это усматривается из видео. Поскольку аналогии или эквивалентности нет и речи об этом идти не может.
      Спасибо за фидбек и твой технический коммент))

  • @rkoinfr9964
    @rkoinfr9964 Год назад +10

    По больше бы таких видео))
    Именно про миддлов особенно лайв кодинг))

  • @SplashDmg2011
    @SplashDmg2011 2 года назад +2

    Разумеется, я посмотрел видео, и, соответственно, поставил лайк.

  • @ДиасДуйсенбаев-ъ4ф
    @ДиасДуйсенбаев-ъ4ф 7 месяцев назад +2

    Спасибо за видео.

  • @milordplus
    @milordplus Год назад +4

    Классно рассказываешь! Было бы круто с какими то визуальными примерами, не подробное копания для изучения, а чисто увидеть код в той же идее. Не презентация никакая , просто чтоб нормально вспомнить как выглядит))

  • @alevadnaya
    @alevadnaya 2 года назад +3

    Про базы и транзакции - класс, интересно

  • @kensaitakeso
    @kensaitakeso 2 года назад +3

    Спасибо, Макс. Звук лучше стал )

    • @Jetbulb
      @Jetbulb  2 года назад +2

      Ага. Микро подъехал))
      Спасибо за фидбек
      Респект 👍

  • @katefedorova624
    @katefedorova624 2 года назад +5

    Спасибо, про уровни изоляции транзакций было полезно

  • @ДмитрийРоманов-ь6ф
    @ДмитрийРоманов-ь6ф 2 года назад +4

    Макс, крутой видос, спасибо. 25:14 это кстати пример не deadlock, а livelock. Deadlock был бы, если бы они шли по коридору, встретились, просто встали на одном месте и начали ждать пока проход освободится.

    • @Jetbulb
      @Jetbulb  2 года назад +4

      Отличное замечание))
      Спасибо 👍
      И за фидбек в том числе

  • @vitaliiboichuk8287
    @vitaliiboichuk8287 2 года назад +4

    Спасибі за точний та остаточний погляд на війну. І величезне дякую за вашу працю. Стежу за вами вже рік, продовжуйте в тому ж руслі)

    • @Jetbulb
      @Jetbulb  2 года назад +2

      Дякую за фідбек. Будемо працювати і далі 🇺🇦 🙂
      Респект!

  • @XY-Grek
    @XY-Grek 2 года назад +2

    Очень круто. Было очень интересно)

  • @antonparfenov7126
    @antonparfenov7126 2 года назад +2

    Редко пишу комменты, но тут не могу пройти мимо :) сам ответил примерно на половину вопросов, еще о четверти в курсе) рубрика годная, вопросы актуальные, было интересно послушать. Большое спасибо 👍

    • @Jetbulb
      @Jetbulb  2 года назад +1

      Большое спасибо за отзыв)) Лучшая награда!
      Респект!

  • @TimurMalikAst
    @TimurMalikAst Год назад +2

    Побольше бы таких интервьюверов как Макс

  • @pulato000
    @pulato000 2 года назад +2

    Было интересно, спасибо

  • @videtskikh
    @videtskikh 2 года назад +2

    чёткое видео! спасибо!

  • @racot7145
    @racot7145 Год назад +5

    Постепенно разница между джуном и мидлом размывается. Ждем синьеров с двумя годами опыта.

    • @yuriytheone
      @yuriytheone Год назад

      Господи! Причём тут год или два! Ты - идиот!

    • @petrivanov1565
      @petrivanov1565 Год назад

      Разница между джуном и мидлом - в опыте работы. Джун знает в теории и немного пет- практики, а мидло сталкивается на практике с этими знаниями + ускоренном темпе ознакамливается с действующим приложением. (кафка, рэббит, проекции, предикаты, критерия, кэши первого - второго уровня, лэйзи лоадинг + эксепшен, интегрейшен флоу, разные джобы, мапперы и проблемы с маппингом, перформанс проблемы, пути их решения, поиск ботлнеков и их решения, саппорт реквесты - работа с бизнес флоу, работа с внешними системами, если повезёт, то дадут ещё и облака потрогать)

  • @vitamin2845
    @vitamin2845 2 года назад +40

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

    • @Jetbulb
      @Jetbulb  2 года назад +2

      Я походу не ту профессию выбрал)))

    • @doh2535
      @doh2535 Год назад

      @@Jetbulb Как можно сравнивать ИТ с ведущим. Почитай как строили первые ЭВМ. Как запускали людей в космос. Все достижения современности были бы невозможны без автоматизации вычислений, роста вычислительной мощности и развития алгоритмов. Ты, может быть, утонул в будничной рутине или выбрал не то направление, но профессия у тебя точно самая интересная из доступных в наше время. Ведущий - это говорящая голова, при всем уважении к хорошим ведущим.

    • @ruslankrivoshein2893
      @ruslankrivoshein2893 Год назад

      @@doh2535 часто ведущие не просто говорят, а ещё и материал программы сами готовят, разбираются в предмете.

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil Год назад

      @@doh2535 чтобы понять,что ведущий это не просто голова, рекомендую найти и посмотреть передачи региональных тв или студенческих

    • @МаргаритаНовикова-л3р
      @МаргаритаНовикова-л3р Месяц назад

      Просто талантливый человек талантлив во всем)

  • @КоммунистНечеловек
    @КоммунистНечеловек 2 года назад +2

    Спасибо, Макс

  • @DartPeredoz
    @DartPeredoz 2 года назад +8

    Спасибо!
    Но прошу, выравнивай звук на отбивках. Очень жестко по ушам бьет.

  • @ГлебВалерьевич-у6ы
    @ГлебВалерьевич-у6ы 2 года назад +2

    Топчик. спасибо.

  • @chicago21
    @chicago21 Год назад +1

    Спасибо!

  • @eld4j
    @eld4j 2 года назад +17

    Здравствствуйте Максим! Расскажите, пожалуйста, про профайлинг, бенчмарки (JMH) на Java. Спасибо за видео!

    • @Jetbulb
      @Jetbulb  2 года назад +7

      Привет!
      Хорошая тема. Недавно с коллегой обсуждали один пост про JMH.
      Спасибо за наводку и фидбек 👍

  • @СергейСтепанов-ч4б9т

    @Jetbulb Сделайте, пожалуйста, видео с highlight'ми из предыдущих видео, например "как правильно отвечать на вопрос, что такое "объектно ориентированное программирование" или просто нарезку хороших ответов.

  • @sergiocoder
    @sergiocoder Год назад +3

    Спасибо за видео, сам сейчас готовлюсь к. собеседованиям, было полезно.
    Но некоторые вопросы показались довольно странными. Например, про количество каких-то там бакетов (или их размер) в HashMap. Во-первых, это всего лишь детали реализации и полагаться на них и заострять на них внимание программисту не положено (т. к. это зависит от реализации JVM под конкретную платформу). Во-вторых, это больше похоже на какие-то вопросы, изучаемые зубрежкой специально для собеседований и нигде не нужные на практике, т. е. бесполезные знания, которые благополучно забудутся через неделю после устройства на работу, Ну, или может быть они и нужны, но в очень узком кругу задач, где ты и сам скорее всего реализуешь свою HashMap, если производительность настолько критична.
    Мне кажется, что лучше спрашивать кандидатов в целом про умению выстраивать абстракции и использовать какие-то принципы или паттерны, нежели про такие мелочи. А то потом такие "эксперты" по языку такие макароны накатают, что после них хоть заново переписывй. Вроде умные ребята, но свой код правильно организовывать совершенно не умеют.
    Сам я никогда не проводил собеседования, поэтому опыта у меня в этом можно сказать не очень много, но глядя на некоторых коллег, с кодом которых мне приходилось работать, мне кажется это более правильный подход. )

    • @vlera4198
      @vlera4198 10 месяцев назад

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

  • @ymranaissur
    @ymranaissur Год назад +1

    TDD - классная штука. Я с ней сталкивался и кое что делал по ней. Есть только один ОЧЕНЬ ВАЖНЫЙ момент: это было не на работе.
    Поэтому если на собеседовании меня спрашивают про TDD, то с вероятностью 80% это чисто для выноса моего мозга, а не потому, что в проекте реально это используется.

    • @Jetbulb
      @Jetbulb  Год назад +2

      А как ты можешь реально проверить, что на проекте TDD не используется?)

    • @ymranaissur
      @ymranaissur Год назад

      @@Jetbulb например, начать в нём работать.

  • @nafis9908
    @nafis9908 2 года назад +3

    Качество выпусков заметно улучшилось👍

  • @maksimivanov8728
    @maksimivanov8728 Год назад +61

    Ерундой не страдайте, работал уже 10 лет в этой профессии и никогда не пригодилось знание сколько элементов в HashMap. Эти вопросы вообще не нужны. Лучше задавать на конкретных задачах, что умеешь делать, как построить архитектуру и тд.

    • @alias77799
      @alias77799 Год назад +3

      То есть ты предполагаешь, что человек будет корректно решать поставленные перед ним задачи, не понимая до конца как устроены объекты под капотом, с помощью которых он и будет их решать, тем более мидл?

    • @Wansery
      @Wansery Год назад

      А как ты будешь отвечать на конкретных задачах, если не знаешь теорию и не знаешь что происходит под капотом? Ты не сможешь оптимизировать код, не поймёшь где случились ошибки...
      Сеньор на то и сеньор, что умеет во всё вышеперечисленное, а не что умеет решать задачки)

    • @Андрюха_айтишник
      @Андрюха_айтишник Год назад +15

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

    • @Happy-s8l1c
      @Happy-s8l1c 11 месяцев назад +12

      @@alias77799 ты читал вообще?
      Не пригодились знания "сколько количество элементов в хэшмапе" != "не понимает как устроены объекты под капотом"

    • @alias77799
      @alias77799 11 месяцев назад

      @@Happy-s8l1c это ты читал вообще мой коммент или просто что-то отписать?

  • @iharbakhanovich
    @iharbakhanovich 2 года назад +2

    Отличная картинка, Макс. Пора еще одну добавить :)))

    • @iharbakhanovich
      @iharbakhanovich 2 года назад

      Ну зачем ты мне про линт рассказал? Вечер потерян как и самооценка :)))))

  • @andrey1266
    @andrey1266 2 года назад +5

    Прикольно. Пока досмотрел до 33 минуты - ответил на все вопросы, ставя на паузу) К слову, про скоупы бинов можно добавить, что есть еще кастомный и thread (подключаемый отдельно и поэтому особо не используемый). Жаль, что я джун без опыта коммерческой разработки и, соответственно, нафиг никому не нужный.

    • @Jetbulb
      @Jetbulb  2 года назад

      Надо верить в себя)) И все получится!

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 2 года назад +2

    Спасибо

  • @illiaslobozhanin6285
    @illiaslobozhanin6285 Год назад

    Еще небольшая штука с Хэшмап и преобразованием листа в красно-чёрное дерево.
    1. При удалении элементов мапа может обратно дерево превратить в лист (по умолчанию 6).
    2. Есть минимальный лимит при котором мапа вообще будет превращать лист в дерево (по умолчанию 64).
    + Был бы хороший вопрос о ребалансе, e.g. что это O(n) операция, которая должна пройтись по всем парам ключ-значение в мапе, пересчитать хэши от ключей и "перетасовать" значения.

  • @РоманРоманов-ю9в

    В моментах очень высокомерно , при всем том , что на некоторые вопросы товарищ сам отвечает посредственно)

  • @JohnJohn31595
    @JohnJohn31595 Год назад +1

    thanks

  • @yan-ww4rm
    @yan-ww4rm 2 года назад +2

    Спасибо за видео, очень нравится этот формат!)
    Про пример deadlock, в коридоре с двумя людьми, если они будут отходить постоянно, это же уже Livelock?)

    • @Jetbulb
      @Jetbulb  2 года назад +3

      Да, там косяк вышел))
      Речь шла про Livelock
      Спасибо за отзыв))

  • @konstantinkazartsev1633
    @konstantinkazartsev1633 Год назад

    Если мы говорим об общем случае (в Java возможно сценарий не воспроизводится) для цикла в графе ожиданий (deadlock) достаточно одного потока:
    Например:
    mutex_lock(m);
    mutex_lock(m);

  • @vadympylypchenko5801
    @vadympylypchenko5801 2 года назад +1

    Спасибо за видео, очень полезно обновить свои знания покрытые толстым слоем пыли))
    PS. Отличный плакат за спиной

  • @БогданЗараник
    @БогданЗараник 2 года назад +3

    То чувство, когда ещё не устраивался на первую работу, но, в принципе, уверенно отвечаешь на 70% вопросов.
    PS: Там про @Transactional можно глубже даже рассказать про TransactionManager, что есть такое. Благодаря какой либке работает создание проксей и всё такое.

    • @theAntoshka
      @theAntoshka Год назад +2

      @@АндрейСарнавский-у9т Орууу, последние предложения как по больному))))))
      Но респект автору ролика, часто и матчасть спрашивают (зачем-то) и алгоритмы, мир собесов и мир реальной работы, параллельны, к сожалению.

    • @MrRomanvideo
      @MrRomanvideo Год назад

      Шел 2023 стеденты без опыта проходят собесы на мидла :)

    • @БогданЗараник
      @БогданЗараник Год назад

      @@MrRomanvideo Уже с опытом.)

  • @ОлегГрабарь-б1н
    @ОлегГрабарь-б1н 2 года назад +8

    Классный видос, спасибо :)
    P.S. А выпуск по реактивщине не планируется?)

    • @Jetbulb
      @Jetbulb  2 года назад +5

      Планируется))
      Все по очереди. Сейчас прошло голосование в ТГ и явно коммуна хочет видеть что-то про реактив. Что ж, этому быть и значит будем готовить материал.

  • @NikiforovJava
    @NikiforovJava 2 года назад +4

    Макс, спасибо! Полезный выпуск. 31:45 - Расскажите, кто имел опыт использования или видел в бизнес коде скоупы request, websocket, application, session? Я за первый год работы ни разу не встречал. Прототайпы встретил только недавно - по всей видимости используются крайне редко.

    • @Jetbulb
      @Jetbulb  2 года назад +2

      Привет!
      Встречаются. Хотя все зависит от сложности внутренного устройства приложения.
      Я видел несколько раз: Request и Session
      Спасибо за фидбек )

  • @alexplishkin5811
    @alexplishkin5811 Год назад +1

    Тут ещё важно добавить про уровни изоляции транзакций, что чем ниже уровень изоляции транзакции, тем быстрее они работают, потому что меньше механизмов блокировок задействовано. Если у вас высоконагруженое приложение, и в некоторых местах, если конечно такие есть, можно пожертвовать изоляцией в пользу быстродействия, то почему бы и нет?

  • @ИльяСултанов-у6з
    @ИльяСултанов-у6з Год назад +2

    А еще можно про vector спросить. Как, вы не знаете, как работает vector? Ай-ай-ай:))

  • @askhat1654
    @askhat1654 9 месяцев назад

    Поведение Safe Point в Nested транзакции, не ясно когда и в каком месте он должен создастся чтобы к нему откатится? Я так понимаю транзакционность методов на выполнение всех операций внутри него атомарна, либо выполнятся все либо не выполнятся, а в Nested мы дополнительно через Safe Point указываем до какого места откатится?

  • @DennisKingsman
    @DennisKingsman Год назад +3

    прикольный дисклеймер, жаль что он появился ток после 22 февраля а не 9 лет назад))

    • @Jetbulb
      @Jetbulb  Год назад +1

      Иногда необходимо время чтобы открыть глаза, увидеть правду и сказать о ней.
      Но справедливости ради, 9 лет назад на территории Украины не было открытого нападения соседнего государства (исключение Крым)

    • @DennisKingsman
      @DennisKingsman Год назад +1

      @@Jetbulbпонял, война междоусобная, между людьми областей и силовиками государства за войну не считается, а ролик очень познавательный, спасибо

  • @serhiiudod3604
    @serhiiudod3604 2 года назад +1

    Привет! У тебя есть видео про SDET? Сейчас прохожу bootcamp и голова плавится, представляю что с девелопарами происходит. Это видео реально интересно посмотреть.

    • @Jetbulb
      @Jetbulb  2 года назад +1

      Привет!
      Такого видео пока нет. Признаюсь и не думали о таком )
      Спасибо за фидбек

  • @viktorplatonov3941
    @viktorplatonov3941 Год назад +1

    Хотелось бы попробовать такое тестовое собеседование. Считаю себя мидлом, но, кажется, это не совсем так)

    • @Jetbulb
      @Jetbulb  Год назад

      Детали интервью: что выбрать, как попасть и прочее ... по ссылке
      iprody.com/interview
      :)

  • @kuarkot
    @kuarkot 10 дней назад

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

  • @Happy-s8l1c
    @Happy-s8l1c 11 месяцев назад +2

    Кто-то использовал трисет в проекте?

  • @MrCosmicAlex
    @MrCosmicAlex Год назад +1

    Ещё можно про lost update расскать.

  • @pashadjoystick
    @pashadjoystick 5 месяцев назад +1

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

  • @SplashDmg2011
    @SplashDmg2011 2 года назад +3

    Что за вопрос про аннотацию Transactional при наследовании? Зачем такие вопросы задавать? Вы реально наследуете один сервис от другого? Имхо, вопрос из серии повыпендриваться и завалить кандидата.

    • @Jetbulb
      @Jetbulb  2 года назад +3

      Лично я не часто делаю использую наследование в связке транзакциями.
      Однако, такое встречается очень часто на разнообразных проектах. Как себя будет вести транзакция в таких условиях - крайне важно.

    • @kolyuchkin
      @kolyuchkin 2 года назад +1

      Очень часто жизненный цикл разработки сервиса начинается с разработки публичного API (интерфейсы, абстракции и т.д.), потом уже пишутся конкретные имплементации. Так вот в публичном API и хочется по максимуму описать контракт разрабатываемого сервиса. Это я про Вашу фразу "Вы реально наследуете один сервис от другого?" - не один от другого, а разные имплементации одного сервиса в зависимости от требований и условий применения, например, "когда луна в Козероге" нам нужна файловая реализация хранилища фотографий, а "если пользователя зовут Елена" уже БД.

    • @SplashDmg2011
      @SplashDmg2011 2 года назад +2

      @@kolyuchkin кажется, ваши примеры про другой слой - слой доступа к данным. Транзакции же обычно применяются на уровне сервисов. И вроде бы достаточно знать, как поставить аннотацию над методом в реализации сервиса, что такое propagation, когда использовать readonly, и что Transactional не работает при вызове метода внутри сервиса.

  • @anti1am3r
    @anti1am3r Год назад +6

    Не двигаемся мы в мир реактивщины, учитывая что уже в следующем LTS релизе может быть project loom зарелизен. Достоточно посмотреть количество вакансий с реактивным стеком

  • @alex0destroyer
    @alex0destroyer Год назад +1

    Максим, а как можно к тебе попасть на собеседование (junior position)?

    • @Jetbulb
      @Jetbulb  Год назад +1

      Привет )
      Можешь написать сюда t.me/iPrody_Online

  • @ТимурЗиявиддинов
    @ТимурЗиявиддинов 2 года назад +2

    Насколько мне известно, «одеревенение» списка в бакете происходит не только при переваливании количества нод за 7, но и при условии что число бакетов больше 64

  • @jobdarwin8641
    @jobdarwin8641 10 месяцев назад +2

    Я вот что вам скажу, юноши. Я работаю разработчиком уже 20+ лет, много разных проектов за плечами включая пару Spring backends. На СпринхУ как вы выражаетесь 😆.Дык вот. Я бы это собеседование не прошёл. Засыпался бы в самом начале на list и set. Ну не помню я на вскидку кто там чем backed up в Java! Однако в реальной жизни вспомнить это занимает 3 секунды - просто глянув в документацию. Так что собеседования эти ваши туфта - какой-то клуб Что Где Когда 😆. Дайте кандидату реальную задачу и время, а потом посмотрите как он с ней справится. Изи, йопта

    • @Jetbulb
      @Jetbulb  10 месяцев назад +4

      Может прийдете к нам на собеседование и порешаем задачки?)
      Полагаю, что всем будет очень интересно посмотреть на опыт разработчика с большим стажем и как он подходит к решению технических заданий

  • @ЕкатеринаКамышева-ф5и
    @ЕкатеринаКамышева-ф5и 4 месяца назад +1

    Боже.. послезавтра собес.. а я залипла на ресничках.. памагите.

  • @bulletproofcupid1242
    @bulletproofcupid1242 3 месяца назад

    TDD - тест дривн девелопмент
    Cómparable
    Compárator
    Так правильно

  • @ГлебВалерьевич-у6ы
    @ГлебВалерьевич-у6ы 2 года назад +1

    Corner case - крайний случай, а не угловой :) ох уж эти мысли на другом языке 😁

  • @steplerman
    @steplerman 2 года назад

    работаю долго на первой работе
    скоро будет почти 15 лет...
    получается больше как поддержка базы данных и данной системы
    (отчеты всякие большую часть занимают)
    не скажу что совсем ничего не интересовался
    интересовался, читал книги по c++, java, ковырялся в разных проектах (unreal engine, прочие)
    делал приложения на android где backend на php простенький писал
    теперь думаю работу другую найти уже как java-разработчик
    придется идти как начинающий, но даже тут зарплаты могут быть выше чем у меня сейчас
    по сравнению с c++, в java порядок считай
    до всяких обновлений в c++ там был ужас, что с stl, что с прочими стандартными библиотеками
    понятно что с++ нужный язык, на нем саму jvm написали и прочее
    но он обычно востребован в серьезных конторах, а их немного
    уже тошнит ходить на работу и этим заниматься...
    а найти новую еще придется пытаться искать
    сейчас ковыряю в VueJs, Spring Boot

  • @anatolii720
    @anatolii720 2 года назад +1

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

  • @non_holy6286
    @non_holy6286 Год назад

    не уверен, но при простой коллизии нода вроде не перестраивается в дерево. Там есть лимит на количество элементов в бакете (вроде 8) и общее число бакетов (вроде 32). 2 этих условия с логическим и. Порог же вроде loadFactor?
    Еще по тримапе интересный вопрос можно задать: как в тримапу положить объект, который не реализует comparable и мы не передаем компаратор? На как тогда будут сортироваться ключи?

  • @mayanilga8665
    @mayanilga8665 2 года назад +1

    Максим, добрый день! Может вопрос не сюда))) Но подскажите плиз, когда Вы планируете вести курс Java Pro в Hillel?

    • @Jetbulb
      @Jetbulb  2 года назад +3

      Мая, приветствую))
      Точно буду занят текущей группой до НГ. А дальше еще не знаю.
      Лучше это уточнять в учебном отделе. Они ведают планированием)
      Спасибо за интерес. Балуете меня ☺️

  • @voalik
    @voalik Год назад +1

    Щось не зрозумів про додавання елемента при колізії в HashMap. Хіба він не додається в кінець списку в бакеті?

    • @Jetbulb
      @Jetbulb  Год назад +1

      Елементи в бакет додаются в початок списку.
      Що саме незрозуміло?)

    • @voalik
      @voalik Год назад

      @@Jetbulb Якщо, є три value наприклад: object1, object2, object3. То при колізії їх ключів, порядок в бакеті буде object1 -> object2 -> object3. Так? Бо якщо додавати на початок списку, то виглядає так, наче порядок має бути такий object3 -> object2 -> object1

  • @EpoxyArt
    @EpoxyArt 8 месяцев назад

    Макс, ты не рассказал для чего вообще TreeSet нужен! Что у него есть методы first(), last(), lower(E e), higher(E e). Которых нет в других сетах.

  • @liberatdoleg5965
    @liberatdoleg5965 8 месяцев назад

    а как же Not_Supported, 7 уровень в пропогации транзакции?

  • @mutanterrr
    @mutanterrr Год назад +1

    на 90% процетов я отвечал, когда пытался на стажировку попасть... (естессно ТДД не использовал, хотя там ума не надо.. да и нигде толком её не применяют, странный вопрос... это редкость.. про цикл разработки тоже элементарищна, которую только человек с 0 может не ответить)
    во время стажировки (даже не будучи джуном), я уже знал ответы на все эти вопросы.. (правда на ревью про пропагации и блокировки так и не спрашивали,а вот про хибернейт до ж.. хотя это ситуативно)
    странные миддлы пошли...
    ожидал послушать про шаблоны проектирования, какие-нибудь углубленные вопросы про многопоточность, узнать что-нибудь небходимое для уровня мидла... =( джуновский собес(

  • @oopsoops9040
    @oopsoops9040 2 года назад +1

    Я бы хотел попробовать себя на собеседовании и получить рекомендации, что нужно подтянуть и что вообще делать. Стоит ли мне пытаться искать работу или еще поучиться.

    • @Jetbulb
      @Jetbulb  2 года назад +1

      Тогда надо на собеседование записываться)
      Мы как раз проводим мок-интервью.
      Если интересно, детали можно посмотреть interview.jetbulb.com/

    • @oopsoops9040
      @oopsoops9040 2 года назад +1

      @@Jetbulb чет у вас страница с интервью упала((

    • @Jetbulb
      @Jetbulb  2 года назад

      @@oopsoops9040 спасибо) Сейчас проверим

    • @oopsoops9040
      @oopsoops9040 2 года назад +1

      @@Jetbulb не получается получить доступ к сайту всё равно)

    • @Jetbulb
      @Jetbulb  2 года назад +2

      @@oopsoops9040 Все работает, несколько раз проверяли.
      Ссылка действующая)

  • @for_find_me006
    @for_find_me006 Год назад +1

    Здравствуйте, подскажите: я не знал, что тремпель - это вешалка, но пользовался им;
    Вопрос: если я не знал термина полимлрфизм, но в работе использовал механизм так называемый … то это говорит, что спрашивать термин нет смысла? Спасибо

    • @Jetbulb
      @Jetbulb  Год назад +1

      Привет )))
      Вопрос очень неоднозначный и холиварный, но попробую ответь:
      «Если человек успешно применят какой-либо прием и даже не подозревает об этом. То это круто! Для меня это сигнал, что человек думает и может сотворять.
      Однако, есть и другая сторона медали. Сложно назвать человека инженером, если он применяет что-то фундаментальное из своей отрасли, но сам того не подозревая»
      Это тонкая грань. Одно и второе имеет место быть и вовсе не может характеризовать человека как плохо сотрудника. Это вопрос конкретной позиции и требований выдвигаемых этой позицией.

    • @for_find_me006
      @for_find_me006 Год назад +1

      @@Jetbulb Что можно порекомендовать отвечать, когда уже долго работаешь и теория выветрилась? Так не хочется повторно учить слова, а читать знакомое претит

    • @Jetbulb
      @Jetbulb  Год назад +1

      @@for_find_me006 Как говорится: "Рыбак рыбака видит из далека". Так и тут. Опыт видно из далека. Человек с опытом уже говорит и обосновывает вещи иначе. Я к тому, что притворство очень легко изобличить. Если не знаешь, то это будет видно практически сразу. Дело же не только теории и терминологии

  • @vladimirblagin3105
    @vladimirblagin3105 2 года назад

    Человек к вам пришел, сказал, что много работал с базами данных. Вы его грузанули уровнями изоляциии, пропагациями и стратегиями блокировок (которые не имеют отношения к работе с БД и находятся на уровне компетенций архитектора системы). И ничего абсолютно не спросили про работу с БД. SQL он хоть знает? Этот мидл? Самую основу работы с БД. А то нахватались хибернейтов, да jpa. А написать простой запрос SQL или проанализировать, что там хибернейт нахибернейтил (а он хибернейтит будь здоров!) не в состоянии.
    PS.
    Мне тут задачу поставили, провести техническое собеседование на позицию Java мидла, сижу, смотрю как и что вообще спрашивают на собеседованиях, учусь. Спасибо за контент.

    • @steplerman
      @steplerman 2 года назад +1

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

  • @АлександрВдовенков

    Привет, подскажи, что у тебя за монитор?

  • @Vadim_Ilin
    @Vadim_Ilin 2 года назад +1

    про @Transactional:
    а как же TransactionInterceptor, TransactionManager, EntityManager причем тут прокси и тд?
    Разве не этого ждешь при вопросе, как работает?

    • @Jetbulb
      @Jetbulb  2 года назад +1

      Это всего лишь один из вопросов.
      Не стоит из него делать "центрирование". Конечно же есть и другие вопросы и они тоже задаются.

    • @Vadim_Ilin
      @Vadim_Ilin 2 года назад +1

      @@Jetbulb я просто думал) нужно об этом рассказывать, когда задается такой вопрос)

  • @enjoyit8499
    @enjoyit8499 2 года назад +1

    Очень здорово и полезно, но со звуком беда :( видно, что микрофон хороший, но его надо чуть поднастроить, чтобы по ушам голос не бил. И нормализации в целом очень не хватает

    • @enjoyit8499
      @enjoyit8499 2 года назад +1

      В остальном, огромное спасибо. Респект и уважуха :)

    • @Jetbulb
      @Jetbulb  2 года назад +1

      Спасибо за фидбек)))
      Будем работать и дальше!

  • @АндрейБорденко
    @АндрейБорденко 2 года назад +1

    Дякую за відео.
    Але питяння дійсно були легкі. Дякую за оптимістичне та пісемистичне блокування шось нового дізнався.
    Гадаю зіткнення людей в коридорі більше нагадує livelock, коли потоки, щось постійно роблять, але заблоковані. До речі є файна тулза з JDK для відслідковування стану тредів jvisualvm.
    О собі: досвід 1 рік, регуляр.
    p.s. За фон з тилу додаткове дяки 👍

    • @Jetbulb
      @Jetbulb  2 года назад +1

      Дякую за такий відгук та твою думку)))
      Який фідбек надаш о тулзі? Для джунів вона добра чи складна?))
      Респект 👍 🇺🇦

    • @АндрейБорденко
      @АндрейБорденко 2 года назад +1

      @@Jetbulb Як на мене вона допомагає наглядно побачити скільки тредів або демонів, їхній стан. Я коли вчився часто користувався. Прикольно, що вона фіксує deadlock. Але це не все, там ще багато фич, space монитор, GC монитор. Власне ще вживав плагін для MBeans.

    • @АндрейБорденко
      @АндрейБорденко 2 года назад +1

      @@Jetbulb дуже проста. По PID або навіть назві апплікухи бачиш свій просес ну і далі клікаш по тому, що хочеш побачити.

    • @Jetbulb
      @Jetbulb  2 года назад +1

      @@АндрейБорденко Дякую за опис))

  • @OlegNoskov-lv4ku
    @OlegNoskov-lv4ku 2 года назад +2

    Я ищу работу Java Junior и то без проблем бы рассказал бы о HashMap

  • @КириллМанжос-ы6м
    @КириллМанжос-ы6м 8 месяцев назад +1

    Переменная которая отвечает за увеличения размера Map называется DEFAULT_LOAD_FACTOR, а не THRESHOLD

  • @reptrept
    @reptrept 2 года назад

    Про интерфейс Мар. Там идет 8 - 1 . То есть 7. Тогда и идет перераспределение

  • @nikky4199
    @nikky4199 2 года назад +2

    Прошел несколько собесов на джуна...вопросы абсолютно те же. Незнаю хорошо это или плохо

    • @ASMRdwarf
      @ASMRdwarf 2 года назад +1

      Мне и на синьора такие же вопросы как в джуновских разборах собесов вопросы задают часто.

  • @dmytro4312
    @dmytro4312 2 года назад +2

    Як завжди цікаво і пізнавально)