Евгений Борисов - Spring-построитель

2020 ж. 11 Мам.
170 443 Рет қаралды

Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург
- -
. . . Спонсоры митапа
ALM Works
Ребята делают офигенный плагин Structure for JIRA:
almworks.com/structure/overvi...
Узнать о карьерных возможностях в ALM Works:
careers@almworks.com
Infobip
Infobip - международный поставщик мобильных коммуникационных решений.
www.infobip.com/
Узнать о карьерных возможностях в Infobip:
www.infobip.com/careers?depar...
****
Открытие митапа и приветственное слово: • Открытие онлайн-встреч...
Код на GitHub: github.com/Jeka1978/coronades...
****
Евгений Борисов пишет на Java почти 20 лет. За эти годы он принял участие в большом количестве энтерпрайз проектов, несколько лет был свободным консультантом, открыл свой стартап провёл сотни тренингов и десятки докладов, а сегодня возглавляет израильский отдел разработки в EPAM.
«Оглядываясь на весь свой опыт разработки, я могу с уверенностью сказать, что людям лучше всего даются те технологии, аналог которых они писали ещё до появления этих технологий. Вы хотите понимать Spring на уровне их создателей, перестаньте его потрошить, создайте его сами.
Я понимаю, что в рамках данного доклада у меня не будет возможности написать Spring Framework, который есть сегодня и который писался многими людьми и Йоргеном Холлером на протяжении почти 20 лет. Но я успею реализовать все основные механизмы и концепции, необходимые для понимая ядра, на которое нанизывается всё остальное.
Доклад почти весь будет состоять из лайв-кодинга, мы возьмём за основу проекта какую-нибудь весёлую, но типичную задачу. Но чтобы реализовать её красиво, без копи-паста и прочих костылей, нам понадобится инфраструктура, дающая инверсию контроля, Dependency Injection, AOP, возможность конфигурировать объекты, не меняя код, возможность расширения в будущем и т.п.
По окончании доклада вы уйдёте, не только понимая, зачем нужен Spring, как им правильно пользоваться и как он устроен, но и получите наглядный сжатый опыт написания подобных систем.»

Пікірлер
  • Java-конференция JPoint 2020 и другие наши конференции пройдут в онлайне. Подробности и билеты: bit.ly/jugruconf

    @JUGru@JUGru4 жыл бұрын
  • Один из лучших докладов за последние пару лет.

    @user-tf8ff2od6g@user-tf8ff2od6g4 жыл бұрын
  • Женя как всегда бесподобен! Какая подача! Какие эмоции! Какой сценарий! Во время просмотра этого видео! Был изобретен реальный дезинфектор для короны!

    @IsaTimur@IsaTimur4 жыл бұрын
  • Вот бы Женя Spring MVC также разобрал я имею ввиду написал бы свой DispatcherServlet только на минималках было бы еще круче, кто за ?

    @grimax4966@grimax49663 жыл бұрын
  • Это просто топ. 2.5 часа на одном дыхании. Пожалуй самые полезные 2.5 часа за последнее время

    @elplatono747@elplatono7474 жыл бұрын
  • Это самый полезный и интересный доклад за всю историю конференций)) Евген, красава

    @NoContentAtAll@NoContentAtAll4 жыл бұрын
  • Тот случай когда только после последнего доклада начинаешь по настоящему понимать все предыдущие доклады автора). Это моя любимая методика обучения: 1. поставить себя на место автора решения, 2. понять проблему, 3. попытаться решить проблему имеющимися средствами, 4. понять почему не получается и придумать решение. Спасибо огромное Евгению за этот супер доклад и организаторам JUG!

    @grimax4966@grimax49664 жыл бұрын
  • Ни один триллер не смотрелся столь увлекательно, как этот доклад. Просто лучшие 2.5 часа ever!!!

    @alex_nail@alex_nail3 жыл бұрын
  • именно из-за таких видео жалеешь, что нельзя поставить лайк сразу обеими руками

    @jonnyradars@jonnyradars4 жыл бұрын
  • Просто божественно объяснил принцип SOLID

    @user-yp5kl8hp9x@user-yp5kl8hp9x4 жыл бұрын
    • Вообще огонь

      @SergeyGorshkov@SergeyGorshkov2 жыл бұрын
  • Спасибо большое, Евгений! Как всегда вы бесподобны! Лично мне потребовалось 3 дня чтобы разобрать всё упомянутое в докладе. Посмотрев 3 раза доклад, написав 2 раза код и записав каждый шаг на бумаге и какая мысль предшествовала этому шагу я практически осмыслил всё. Поразительно какой плотностью ценной информации может обладать видео на KZhead, на осмысление которой потребовалось так много времени. Мы находимся в ожидании новых видео в данном формате. Спасибо Вам большое!

    @nottaras@nottaras3 жыл бұрын
  • Превосходно. Для полного понимания картины "Потрошитель" пришлось смотреть 3 раза, эффект фильма "Тенет". XD Этот доклад прекрасный, опустились не просто до понимания Спринга и как он работает, а вообще до того, как сам Спринг был сделан. Большое спасибо за видео! :)

    @MykMur@MykMur3 жыл бұрын
  • Отличный доклад, смотрел трансляцию! А можно точно так же, но про Spring boot?

    @mikhailpodgornyak934@mikhailpodgornyak9344 жыл бұрын
  • Это было прекрасно! Спасибо!

    @oleksandrdyachuk3951@oleksandrdyachuk39514 жыл бұрын
  • Огромное спасибо за доклад!

    @user-ki8mz4kj8q@user-ki8mz4kj8q3 жыл бұрын
  • Евгений , шикарная подача. Вы король Спринга после Hoeller

    @andreyshipul6300@andreyshipul63002 жыл бұрын
  • Идеальный доклад. Спасибо!

    @amirkumalov4950@amirkumalov49504 жыл бұрын
  • Огромное спасибо за доклад, лучше и интереснее даже близко не встречал.

    @oleksandrverenka5586@oleksandrverenka55864 жыл бұрын
  • Спасибо за доклад! Очень познавательно!

    @itwebwork@itwebwork4 жыл бұрын
  • Очешуенно! Спасибо за видео)

    @delalen8012@delalen80124 жыл бұрын
  • На одном дыхании посмотрел.

    @MrArtod@MrArtod4 жыл бұрын
  • Спасибо, не думал что про доклады можно такое сказать но этот реально посмотрел на одном дыхании :)

    @leu2304@leu23043 жыл бұрын
  • Хорошая подача материала, лайк!

    @NeverIn01@NeverIn014 жыл бұрын
  • Очень понятно! Очень круто! Захватывающе! Огромное благодарю!

    @valeriyemelyanov9090@valeriyemelyanov90902 жыл бұрын
  • Полтора часа недоумевал о чем видео, но затем я смог понять логику IoC и Dependency Inversion и тут до меня дошло 😲 Шикарное видео, очень ёмко и понятно!

    @xmahz@xmahz Жыл бұрын
  • Вообще огонь. Спасибо за доклад!

    @sovrinfo@sovrinfo2 жыл бұрын
  • Отличный доклад, лучшее объяснение работы спринга

    @----1281@----12814 жыл бұрын
  • Очень круто! спасибо! такие доклады дают понимание

    @Levitizen@Levitizen6 ай бұрын
  • Спасибо за доклад!

    @nerale@nerale2 жыл бұрын
  • Просто лучший! Очень крутой доклад

    @jojomajo@jojomajo3 жыл бұрын
  • Лучшее, что видел на сегодняшний день. До этого был потрошитель))

    @mikalaisniahurski6902@mikalaisniahurski69023 жыл бұрын
  • Очень хороший доклад, который дал глубинное понимание зачем нужны все эти "фабрики" и "контексты". Спасибо большое!

    @powerstrike97@powerstrike974 жыл бұрын
  • Женя, спасибо, зашло отлично. Как, что и почему сформулированно доступно и понятно (и слава богу никаких BPP :). Good stuff!

    @AleksSPace@AleksSPace4 жыл бұрын
  • Самый лучший доклад по объяснению сложных вещей простыми словами!!!!

    @user-yf6te4pi7h@user-yf6te4pi7h3 жыл бұрын
  • Тоже хочу выразить свою благодарность. Жека, спасибо за твой труд❤

    @user-xq4wc1ge7r@user-xq4wc1ge7r6 ай бұрын
  • Отличный вводный материал для джунов в спринг! Спасибо!

    @socialcatalyst2608@socialcatalyst26089 ай бұрын
  • Гениально, как и всегда!

    @user-qb3ck7cq3k@user-qb3ck7cq3k7 ай бұрын
  • Все очень понятно и просто. Ведь все гениальное это простое как и объяснение Евгения. Евгений ты гений. Вот это и называется ловить кайф от прослушанного.

    @user-hh1zs2xi4o@user-hh1zs2xi4o3 жыл бұрын
  • Лучший докладчик! А доклад такой, что можно показывать всем "пожилым" руководителям, отрицающим Spring :-D

    @SoulsellerNT@SoulsellerNT3 жыл бұрын
  • Bravo!

    @pavloa.2012@pavloa.20124 жыл бұрын
  • cool guy and nice presentation. thank you Eugen

    @ionscorobogaci5530@ionscorobogaci55304 жыл бұрын
  • Божественно 🌋❤️👀💥👍

    @user-ts8tu1ds7h@user-ts8tu1ds7h Жыл бұрын
  • Крайне информативное видео!

    @arturtyan93@arturtyan938 ай бұрын
  • 10 бинПостПроцессоров из 10

    @d-fyz@d-fyz3 жыл бұрын
  • Супер!!!! ждём spring boot построитель

    @vdubovsky@vdubovsky3 жыл бұрын
  • Спасибо

    @l.oleksandr@l.oleksandr4 жыл бұрын
  • Спасибо Евгений! Коротко и по делу! Четко! Прямо как пацаны на районе уважают, которые на Джаве пишут :)

    @crashoverride9681@crashoverride96813 жыл бұрын
  • У меня уже много лет опыта разнообразного жавадева, я иногда трогал Spring (в т ч более старые версии в эпоху xml), который конфигурили мои коллеги, но никогда не заглядывал внутрь и не читал мануалов. Хотя весь мой опыт утверждал, что вот как-то так оно и должно работать. Этот доклад стал финальным аккордом, который просто все ровно выложил на полочке в голове. Отличный доклад, большое спасибо!

    @mdcoolcomrat@mdcoolcomrat4 жыл бұрын
  • Огонь, я только начинаю разбираться в Spring и это видео очень многое объясняет. Спасибо большое, мне помогло. Давайте больше таких шикарных видео, где показывают как авторы пришли к тому или иному решению!!

    @Enthusiast91@Enthusiast913 жыл бұрын
  • Потрясающе!!! Лучший мэнчик по спрингу, в ру сегменте ютуба

    @physics6279@physics62792 жыл бұрын
  • Спасибо большое, я переосмыслила всё, что видела на 20-ти летнем проекте на прошлой работе! Особенно ценно было услышать, как так получилось, что код, который писали раньше, так плохо выглядит в наши дни.

    @fur_mur@fur_mur4 ай бұрын
  • привет из epam) очень крутой доклад, спасибо)

    @deadins@deadins3 жыл бұрын
  • лучший ❤

    @nikita-ks3nl@nikita-ks3nl3 жыл бұрын
  • Просто потрясающий доклад, очень сильно вдохновляет. Планирую посмотреть все его доклады, осталось уже не много. Каких еще спикеров можно посмотреть по Spring и Java?

    @alexVbeze@alexVbeze3 жыл бұрын
  • топчик )

    @KavboiHaggis@KavboiHaggis4 жыл бұрын
  • Выводы очень близко ложатся на собственные подходы как в обучении так и в развитии. За любую вариацию продолжения/дополнения буду очень благодарен! Такой формат не подойдет ни для одной конференции, но контент очень годный и хочется продолжения. Спасибо!

    @AlexSmith-oe6pr@AlexSmith-oe6pr4 жыл бұрын
    • К сожалению да формат конференций далек от обучения докладчики делают вид якобы все все знают а слушатели делают вид что понимают докладчиков ))) . Вот бы Женя Spring MVC также разобрал я имею ввиду написал бы свой DispatcherServlet только на минималках было бы еще круче, кто за ?

      @grimax4966@grimax49663 жыл бұрын
  • Зачем создавать самому, если можно посмотреть бесподобного Евгения, спасибо огромное!

    @galinashapoval2695@galinashapoval26952 жыл бұрын
  • Лучший!

    @user-ym1ss7pw6w@user-ym1ss7pw6w3 жыл бұрын
  • Смотришь Борисова и понимаешь, что жил не зря!

    @xxx---xxx---xxx@xxx---xxx---xxx Жыл бұрын
  • в начале просмотра подумал "да чего я не знаю в инжекции зависимостей спрингом, что там можно интересного 2,5 часа рассказывать, просто на перемотке гляну", а потом не смог оторваться, т.к. очень интересное последовательное изложение и страстное выступление.

    @senin24@senin244 жыл бұрын
  • 1 курс в универе по java за 2 часа, лайк!

    @oodmi@oodmi4 жыл бұрын
    • Гдейто в универах учат IoC?

      @seapps4594@seapps45943 жыл бұрын
  • Очень крутой доклад! Видимо Гугл устал от всего этого и придумал Го :) Нам не нужны отличники, нам нужны твёрдые середнячки :)

    @sergeydostovalov6180@sergeydostovalov61804 жыл бұрын
  • Лучший

    @gulfstream1800@gulfstream18008 ай бұрын
  • Большое спасибо Евгению за столь интересный и невероятно полезный доклад. За умение грамотно подать информацию без лишней воды и отступлений высший балл автору.

    @aliakseitsymbalist8491@aliakseitsymbalist84913 жыл бұрын
  • 1) Открываешь доклад Жени 2) Не успеваешь моргнуть, как уже слышишь про BeanPostProcessor )))

    @user-hi6zy2zk6c@user-hi6zy2zk6c3 жыл бұрын
  • приквел spring-потрошитель. thanks

    @slisnychyi@slisnychyi4 жыл бұрын
    • Да именно, вот бы Женя Spring MVC также разобрал я имею ввиду написал бы свой DispatcherServlet только на минималках было бы еще круче, кто за ?

      @grimax4966@grimax49663 жыл бұрын
  • ЕвГениально

    @taras_anichyn@taras_anichyn4 жыл бұрын
  • До доклада думал, что знаю, зачем нужен спринг. Теперь увидел собственными глазами, зачем он нужен)

    @pavelchurlyaev257@pavelchurlyaev2573 жыл бұрын
  • Поддерживаю. Animals один из лучших.

    @spyr01d@spyr01d4 жыл бұрын
  • Ты крут)

    @elrosse@elrosse2 жыл бұрын
  • Женя крутой

    @alisaromanova3933@alisaromanova39333 жыл бұрын
  • Евгений, спасибо за интересный доклад. Правда есть один момент. Одной из причин перехода от lookup к DI является невозможность написать unit-тест. Однако при использовании DI через поля эта проблема никуда не исчезает. Только если раньше мы не могли замокать жёстко прибитую имплементацию, то теперь не можем внедрить её без рефлекшнов. Я думаю, что DI через конструкторы является более удачным вариантом в этом случае.

    @kirekov@kirekov3 жыл бұрын
    • Инжекция через сеттеры тоже решит проблему

      @SkyAntins@SkyAntins3 жыл бұрын
  • Несколько раз говорит что лукап это не инверсия контроля, хотя очевидно что лукап это один из видов инверсий контроля. Наверное Евгений имел ввиду что лукап это не депенденси инжекшн. И лукап и di это виды инверсий контроля.

    @user-zb9ci6qu8r@user-zb9ci6qu8r2 жыл бұрын
  • ну этот спринг, я хочу писать на этом фреймворке

    @yveromeev@yveromeev Жыл бұрын
  • Спасибо, не знаю ни Java, ни Spring, но доклад зашел, настолько это жизненно. И все же stateless в данном случае (1:08:37), как мне кажется, это не совсем то. По мне ближе термин immutable. Или это терминология из мира Java?

    @cgwicio8658@cgwicio86582 жыл бұрын
  • Подскажите что за горячие клавиши используются для двойного написания на 26:10?

    @valkutful@valkutful5 ай бұрын
  • хорош!

    @mikhail6694@mikhail66942 жыл бұрын
  • Женя - лучший популяризатор спринга, может пора Pivotal ему приплачивать?)

    @andreytuvaev9344@andreytuvaev93443 жыл бұрын
    • Джош Лонг реально отдыхает!

      @grimax4966@grimax49663 жыл бұрын
  • Вот повезло твоим подчинённым!

    @eugenea7469@eugenea74693 жыл бұрын
  • Это лучший доклад по джаве для уровня мидл - синьер, для тех кто хочет писать качественный код. Это круто что у нас в комьюнити есть Женя! Интересно есть ли в других ЯП настолько же сильные спикеры. Если кто знает поделитесь, плиз, очень интересно было б заценить.

    @for_whom_the_bell_tolls@for_whom_the_bell_tolls2 жыл бұрын
    • по реакт редакс есть путь самурая

      @madinakali6873@madinakali68736 ай бұрын
  • CGLIB не работает c jdk-17 и не обновляется с 2019 года, какая есть альтернатива? (что выбрать?)

    @MrGrey-yc6fq@MrGrey-yc6fq6 ай бұрын
  • "Прокси класс - это самый тупой класс, который ничего не умеет делать" :)))) Запомнили и записали) Огромное вам спасибо, Евгений, вы мой любимый учитель!

    @AlexTsiklov@AlexTsiklov Жыл бұрын
  • 1:57:11 Proxy pattern

    @uberdissonant@uberdissonant3 жыл бұрын
  • Map.computeIfAbsent (key, function) How could I not know this?

    @talosdx5492@talosdx54924 жыл бұрын
    • well in this case it might be true, but it is always important to listen smart people explaining obvious things. You might re-think some staff

      @p1rat3ss@p1rat3ss4 жыл бұрын
  • на 30 минуте между делом заодно объяснил рекурсию за 2 секунды)

    @maxpanteleev9448@maxpanteleev94482 жыл бұрын
  • Святой человек!

    @-is.perfect-@-is.perfect-3 жыл бұрын
  • что за песня играет в начале?

    @user-vm7re9bu9r@user-vm7re9bu9r2 жыл бұрын
  • Охуенно! Бесподобно! Просто бомба))) Женя спасибо!

    @user-eu3hk3fj7m@user-eu3hk3fj7m3 жыл бұрын
  • аааа, вот оно зачем... Теперь я все понял!😐

    @Prosony1@Prosony12 жыл бұрын
  • А что случилось с оригинальной записью трансляции?

    @Dfire1210@Dfire12104 жыл бұрын
    • Ну лично у меня есть бекап, если надо могу залить..)

      @narunan321@narunan3214 жыл бұрын
    • Трансляция была в низком разрешении, код в IDEA местами было не разглядеть. Перезалили в 4K, стало сильно лучше.

      @alexey-jugru@alexey-jugru4 жыл бұрын
  • Смотрел под спидами - еле поспевал!

    @orlov_alex@orlov_alex3 жыл бұрын
  • Что будет, если имплементироаать интерфейс с неполным количеством методов класса, но инжектить по классу. То депрекейтет прокси создается с интерфейса и получается не все методы класса можно вызвать?

    @wonderbird434@wonderbird4342 жыл бұрын
    • Если мы имеем класс, который имплементирует какой-то интерфейс, то у нас написана логика, что будет создаваться динамический прокси. И если мы его попытаемся заинжектить по классу, а не интерфейсу, то произойдет IllegalArgumentException в тот момент, когда мы будем рефлекшном пытаться засунуть динамический прокси в филд (у которого тип конкретного класса). Если бы у нас всегда создавался наследник через cglib, то такой проблемы не возникало бы. Разве что для final классов всё падало бы.

      @funbiscuit@funbiscuit2 жыл бұрын
  • Идея с напитками под маркой "null". Безалкогольное пиво, безалкогольная водка и т.п. )

    @user-lv5hi7kx9j@user-lv5hi7kx9j2 жыл бұрын
  • Не пишу на java, поэтому глупый вопрос - это он про самописный DI контейнер рассказывает?

    @dmitriymaslov946@dmitriymaslov9463 жыл бұрын
    • Да

      @grimax4966@grimax49663 жыл бұрын
  • 1:15 меня на собесе в Столото на полном серьезе заставили писать домашний синглтон с ленивым фабричным методом и удивлялись почему я этим не пользуюсь, это же всегда надо, у нас мол в компании это сплошь и рядом надо уметь......

    @user-ni5nt2bs8j@user-ni5nt2bs8j3 жыл бұрын
    • Какая компания, такие собесы😄

      @matfey96@matfey96 Жыл бұрын
  • на Якушева из КВНа похож

    @user-pt2lq1ik7i@user-pt2lq1ik7i3 жыл бұрын
  • 26:35 зачем так сложно ? передай интерфэйс в кнструктор .

    @MrSergioKon@MrSergioKon2 жыл бұрын
  • Фабрика, иди сюда))

    @SplashDmg2011@SplashDmg20113 жыл бұрын
  • Представляю увидеть в логах - "что ж ты делаешь урод!!"

    @amanzholtaimagambetov5811@amanzholtaimagambetov58114 жыл бұрын
  • 2:14

    @chelkatrao5788@chelkatrao57883 жыл бұрын
KZhead