За время разработки цитатника в этом видео, я выделил топ цитат от Евгения: 1) try-catch всегда некрасиво, и плохо сказывается на нервной системе 2) -Вы используете тесты? -Да, мы пишем тесты -А как вы пишите тесты? -Ну как? - main создаем, прямо в том же классе, который надо протестировать - очень удобно. Прям там создаем объект из этого класса, запускаем, смотрим - если 17 - то нормально 3) Лучше знать, что есть проблема (null), чем жить с каким-то нулем 4) Знаете почему важно не делать грамотические ошибки? - стыдно перед заграничными партнерами 5) ...сatch пустой не буду оставлять - грех
Плотность информации на одну минуту видео просто зашкаливает. Всё по делу без воды. Каждое предложение - очень ценная информация. Если по этим двум частям сделать книгу, то выйдет мануал страниц на 300, не меньше.
Если у программистов есть хороший тон и правила чистого кода, то у ведущего (в данном случае докладчика) не должны быть "айбернейты" , "собаки", также эмм ымм бээем. При всем уважении.
@@BiteMyBrain Посмотрел далее ... Доклад отличный! По вашей аналогии, примерно как сесть в такси бомбилы из Кавказа :) Водитель с акцентом, но душевно что-то рассказывает =)
Сначала проходил Spring сам, потом делал тестовые на Spring Boot, сейчас имея небольшой опыт смотрю его лекции на стажировке. Евгений очень круто и без воды объясняет, доходчиво и понятно. Как лектор он крутой
Все советуют это видео новичкам в Спринге, так вот не слушайте их. Лекция явно для тех, кто уже в теме, так что если вы ничего не поняли - то нормально. Лично я вернулся к этой лекции спустя полгода работы на Спринге
@@dimchik-kenshi думаю вам уже неактуально, но может кому-то из прочитавших позже будет полезно У Алишева есть курс по Спрингу, часть которого лежит на ютубе в открытом доступе Канал alishev, там в целом много полезного по Java
Лекция крайне плотная и информативная. Но после неё всё равно остаётся куча внутренностей, которые еще надо "потрошить", изучать)) Например, про то, как работает сканер бинов в современной версии спринга. И каким именно образом работает класс, подменяемый dynamic proxy. Хотя, когда-то я еще писал свой кривой BeanDefinitionReader и BeanFactory, так что у меня всё таки вопросов по внутренностям чуть меньше)) Погружаться в это можно очень долго. Но это интересно!
46:23 - двадцать шестое июня, четверг, воcемь вечера. Несмотря на то, что все устали от коммитов в проект, ребята нашли в себе силы прийти ещё на доклад Борисова и поразвиваться.
Пока смотрела все было понятно. На следующий день хотела повторить- вообще ниче не помню! А вообще, доклад- супер. Если эта инфа и есть в оф доках, отфильтровать ее самостоятельно было бы очень не просто
Евгений крайне интересно вещает, запись смотрится на одном дыхании, но всё время меня не покидала мысль, что поведением похож на Александра Якушева("Курск" КВН)
7:18 неверное утверждение- BeanFactory создаёт singleton-бины при первом запросе, а не не при запуске контекста. А вот ApplicationContext как раз создаёт синглтоны при поднятии контекста
можно и заимплементить интерфейс BeanFactoryPostProcessor и доставать через рефлексию нужны поля, разница только в том, что BeanPostProcessor работатет уже с проиниализироваными полями обьекта, а BeanFactoryPostProcessor - после загрузки бинов в контейенер dzone.com/articles/spring-bean-lifecycle
Как он делает эту магию при написании кода? пишет r и у него появляется целая строка, где он создает экземпляр класса Random. Потом в другом месте нажимает по всей видимости ctrl+alt+L и у него сами проставляются точка с запятой в конце строки, кто знает как это настроить?)
А как происходит консолидация (объединение) результатов работы методов postProcessAfterInitialization разных BeanPostProcessor'ов? Ну то есть...Пусть есть 10 моих кастомных аннотаций, которые меняют логику бина, добавляя к его методам 10 соответствующих функционалов. Делаем 10 BeanPostProcessor'ов (далее BPP). Это нужно делать на стадии AfterInitialization и возвращать в методе postProcessAfterInitialization прокси с добавленным функционалом. В каком порядке сработают мои 10 BPP? Что после отработки всех 10 BPP будет в контейнере: один прокси объект (объединяет в себе все функционалы) или 10 разных прокси оберток над оригиналом? Ну то есть в итоге же я должен получить bean, к оригинальной реализации которого накручено 10 функционалов. Как это получается? Это многослойная прокси обёртка получаетя?
Думаю первый раз создастся прокси над оригинальным классом, а потом будут создавать прокси на предыдущим прокси и так 9 раз. И результирующий прокси будет выполнять весь функционал. В каком порядке будут вызываться BPP это не должно быть важно. Если это важно, т.е. Вам нужно чтобы логика одного BPP срабатывала прежде другого BPP, то тогда нужно пересмотреть эту логику и возvожно объединить в один BPP.
Жесть конечно как тяжко всё это воспринимать человеку недавно зашедшему в спринг, по 20 раз пересматриваю каждый момент, чтобы понять что он там пытался осветить.
Можно конечно. Но цель доклада немного глубже конкретной задачи профилирования). AOP ведь тоже работает через proxy, а после доклада складывается впечатление, как оно может быть реализовано.
Классный урок. Но оператора я бы выгнал. Показывать лектора крупным планом без доски большую часть времени, это супер. Наверное оператор считает, что в размахивании руками информации больше, чем в примерах на доске.
прям с трудом верится, что видео перед выкладыванием не было ускорено. неужели можно так быстро мыслить, говорить и жестикулировать?) однако при просмотре на скорости 0,75 понимаешь, ... не мог человек в таком состоянии прийти на свое выступление)))
@@igorvasylevskyi3629 По мне, так новичку надо смотреть минимум два раза - сразу и после того как поковыряешься в спринге. Первый просмотр просто много чего в голову откладывает, а второй - уже рассортировывает.
думаю нет,потому что ни хрена не поймешь. я прошел курс Алишева , написал маленький проект и даже после этого когда смотрел ничего не понял. раза 10 пересмотрел и вроде на 80% понял
Спринг изучаю не так давно, и все время меня коробило чувство, что за меня кучу работы делает Господь Бог. С одной стороны хорошо, но с другой - я не мог точно знать, как он это делает, а непонимание процесса до конца вызывало дискомфорт. Это все равно что играть в игру не до конца понимая её правила. С этим видео хоть что-то проясняется. Ещё заметил, что многие вещи в Спринге становятся более понятными, когда ты до этого велосипедил их вручную.
Michael Morrison Ели брать только Java SE, то тут не соглашусь, тут чистый кодинг, а вот EE и Spring , то есть где в дело вступают контейнеры, то там поначалу очень много временем уходит на понимание работы этих контейнеров, так как львиную долю работы выполняют именно они. Есть конторы, которые сводят к минимуму использование фреймворков, и пишут свои библиотеки, чтобы иметь более полный контроль над кодовой базой.
Michael Morrison Я спринг читаю в метро по дороге на работу для общего развития, прямо сплошняком по reference. Хоть и не пользуюсь, а кругозор расширяет ))
норм) обычный жизненный цикл бина... по поводу eventLiteners конечно накручено я думаю это было просто сказано в образовательных целях сомневаюсь чтобы вот так извращались в рядовых проектах обычно все заканчивается на postProcessAfterInitialization
If the target object to be proxied implements at least one interface then a JDK dynamic proxy will be used. All of the interfaces implemented by the target type will be proxied. If the target object does not implement any interfaces then a CGLIB proxy will be created.
В мене був NPE через те що я в методі postProcessAfterInitialization(Object bean, String beanName) забув змінити return null на return bean. Можливо вам допоможе)
+Roman Chmeluk В общем-то упущение в дизайне фреймворка, что он не хэндлит такое. Тем более что IDE при генерации метода по умолчанию вставляют "return null;", и это всем известно.
28:16 - Евгений Борисов, небольшая поправка -Первый подход - это циглиб (когда класс не имеет интерфейса или класс файнал(с ваших слов)), а второй это динамик прокси. Вы просто 5ю секундами ранее говориле сначала о наследовании от классов, а потом как второй вариант от интерфейсов, и следом вы НАЗЫВАЕТЕ эти подходы как Динамик прокси и "вторым" Вы называетее циглиб.
26:24 - "то ему придётся делать очень сложную работу..... " - Евшений Борисов, Вам удаётся совмещать стендап комеди, с обучением программированию, и программированием людей на выполнение очень сложной работы. Х))
Мда спринг очень гибок, даже слишком гибок, я лично предпочитаю больше EJB3.2 и очень стандартизированную архитектуру, блин зачем Оракл отдал JEE в Eclipse, ведь так всё было хорошо и стабильно, теперь клиенты всех хотят Спринг, теперь стринг надо всем джавистам учить.
Я 10 лет работаю с явой, примерно лет 7 назад удалил spring из все проектов и слава богу. Перешел на Guice. Но на самом деле и Guice особо не нужен. Написал свой маленький Injector. Чем меньше чужого кода в твоих проектах, тем лучше. (Hibernate кстати тоже снес)
У современных баз данных mongodb, redis, google datastore, cassandra есть своей api, плюс я использую свои утилиты или можно библиотеки написанные другими людьми. В крайнем случае можно jdbc напрямую, через опять же свои обертки. Скорость, простота и предсказуемость решения важнее, чем мнимое удобство hibernate.
Молодцы ребята,очень интересный ролик. Кто хочет почитать или просто угареть от еще одной теории о том что на земле лесов нет: www.as-gard.com/30-metrovye-kusty
Для меня недоходчиво было от слова совсем, автор изъясняется на эльфийском, нужно смотреть каждое второе слово в словаре. Терминологии, которую объяснил вначале, раз-два и обчёлся.
8 лет прошло, а до сих пор актуальный и информативный доклад.
Я бы даже сказал, 8 лет прошло, а более качественного материала на эту тему я на просторах сети не нашел
@@user-nv9dr7nt3d как новичок сейчас смотрю, пока мало что понятно. но, думаю, дело времени.
@@Daniel-mo1iy сюда стоит заходит когда уже прошел какой-то приличный курс по спрингу, тогда прям будет хорошо
8 лет прошло, а у нас эти фишки только начали использовать на проекте под маркой "а вот оказывается как ещё можно делать в спринге".
продлеваем: 9 лет прошло, а до сих пор актуальный и информативный доклад.
Пишу из будущего прошло 300 лет, а доклад все ещё актуален
Спустя 10 лет мне наконец-то пригодилось! Написал свой первый бинпостпроцессор, ура!
Смотрю 5й раз, с каждым разом понимаю чуть больше)
это как библию читать))
За время разработки цитатника в этом видео, я выделил топ цитат от Евгения:
1) try-catch всегда некрасиво, и плохо сказывается на нервной системе
2)
-Вы используете тесты?
-Да, мы пишем тесты
-А как вы пишите тесты?
-Ну как? - main создаем, прямо в том же классе, который надо протестировать - очень удобно. Прям там создаем объект из этого класса, запускаем, смотрим - если 17 - то нормально
3) Лучше знать, что есть проблема (null), чем жить с каким-то нулем
4) Знаете почему важно не делать грамотические ошибки? - стыдно перед заграничными партнерами
5) ...сatch пустой не буду оставлять - грех
познавательно и доходчиво, 10 постбинпроцессоров из 10
ведьмак от мира фреймворков
Бинпостпроцессоров =))
скорее 5/5, по количеству выводимых рандомом сообщений
08:30 BeanPostProcessor
25:15 Профайлер, JMX
49:00 ApplicationListener
Спасибо!
Плотность информации на одну минуту видео просто зашкаливает. Всё по делу без воды. Каждое предложение - очень ценная информация. Если по этим двум частям сделать книгу, то выйдет мануал страниц на 300, не меньше.
Этот доклад прям на цитаты можно разбирать:
"Лучше получить эксепшн, чем жить с каким-то нулем",
"Не буду catch блок пустым оставлять - грех".
"трай и кетч всегда некрасиво и плохо сказывается на нервной системе" :)
Еще это: "Если у внутреннего компонента спринга класс меньше двадцати букв, то это просто несерьезно" ))
@@hramovalexey Либо как в части про профилирование: "Если стоит - то ему придется делать сложную работу"
"А кто здесь не грешил? ))"
Лучшие лекции по spring даже несмотря на дату публикации.
Огромное спасибо за такое видео. Чел просто супер объясняет. Побольше бы именно такого плана видео.
Если у программистов есть хороший тон и правила чистого кода, то у ведущего (в данном случае докладчика) не должны быть "айбернейты" , "собаки", также эмм ымм бээем. При всем уважении.
@@azamatk4302 так вам шашечки или ехать? :)
@@BiteMyBrain Посмотрел далее ... Доклад отличный! По вашей аналогии, примерно как сесть в такси бомбилы из Кавказа :) Водитель с акцентом, но душевно что-то рассказывает =)
смотрел очень давно и год назад, сейчас в третий раз смотрю и все понимаю, самый крутой видос по спрингу
шикарное видео, раз в годик пересматриваю с удовольствием)
Сначала проходил Spring сам, потом делал тестовые на Spring Boot, сейчас имея небольшой опыт смотрю его лекции на стажировке. Евгений очень круто и без воды объясняет, доходчиво и понятно. Как лектор он крутой
Все советуют это видео новичкам в Спринге, так вот не слушайте их. Лекция явно для тех, кто уже в теме, так что если вы ничего не поняли - то нормально. Лично я вернулся к этой лекции спустя полгода работы на Спринге
вернулся спустя 3 года)
полностью согласен, гораздо полезнее тем кто уже в теме
Необязательно. Я смотрел эту лекцию до того, как написал первые строчки на спринге.
@@spirridd я смотрю и нихрена не понимаю
Посоветуете что-то новичкам?)
@@dimchik-kenshi думаю вам уже неактуально, но может кому-то из прочитавших позже будет полезно
У Алишева есть курс по Спрингу, часть которого лежит на ютубе в открытом доступе
Канал alishev, там в целом много полезного по Java
Спасибо большое за лекцию! И отдельное спасибо за чёткую наложенную картинку с кодом!
ребята, это база! уважение Евгению
Доклад очень хороший . Только недавно начал работать со Спрингом . после доклада стало намного понятнее как он работает . Супер !
Один из лучших технических докладов на русском языке
на иврите же :)
Если поставить скорость видео на х0.5, то можно услышать как говорит Евгений после употребления Бенчмарка или Синглтона
Один из лучших роликов по теме
Лучший спикер по Java!)
Да, человек умеет рассказывать. Спасибо большое.)
Лекция крайне плотная и информативная. Но после неё всё равно остаётся куча внутренностей, которые еще надо "потрошить", изучать)) Например, про то, как работает сканер бинов в современной версии спринга. И каким именно образом работает класс, подменяемый dynamic proxy. Хотя, когда-то я еще писал свой кривой BeanDefinitionReader и BeanFactory, так что у меня всё таки вопросов по внутренностям чуть меньше)) Погружаться в это можно очень долго. Но это интересно!
Спасибо вам огромное. Один из самых приятных докладов. Евгений отлично рассказывает, все очень последовательно и по делу.
Кто эти люди, которые поставили дизлайк!!??
Доклад на высоте, спасибо.
Лекция супер. Если кому интересно, то рандом так игрался из-за того, что в метод передаем не разницу, а сумму (смещаем отрезок)
46:23 - двадцать шестое июня, четверг, воcемь вечера. Несмотря на то, что все устали от коммитов в проект, ребята нашли в себе силы прийти ещё на доклад Борисова и поразвиваться.
До сих пор лучшее видео о спринге на ютубе
Как хорошо что есть в записи! Был бы на докладе в живую, уловил бы процентов 30 только..
Пока смотрела все было понятно. На следующий день хотела повторить- вообще ниче не помню! А вообще, доклад- супер. Если эта инфа и есть в оф доках, отфильтровать ее самостоятельно было бы очень не просто
+
Легендарный доклад
Евгений крайне интересно вещает, запись смотрится на одном дыхании, но всё время меня не покидала мысль, что поведением похож на Александра Якушева("Курск" КВН)
а я смотрю и думаю, кого же он мне напоминает
шедевр искусства
Просто огонь! Спасибо.
Офигительный доклад, спасибо!
Евгений, спасибо. Очень доступно.
это оч круто, первый раз досмотрел до конца и даже что-то понял :)
Большое спасибо!
7:18 неверное утверждение- BeanFactory создаёт singleton-бины при первом запросе, а не не при запуске контекста. А вот ApplicationContext как раз создаёт синглтоны при поднятии контекста
считаю что работы Евгения должны спрашивать в универе и на собеседованиях на ровне с другими предметами
это сильно, браво
Отличное видео, понятным языком) Спасибо
Шикарно!
Волшебная лекция) Спасибо)))
11.05.2050 spring уже нет, все еще лекция актуальна
Gut gemachen, Evgeny!
Смотрю в 2021 и мне прямо очень заходит, могут же
+1 за Therion
А где можно найти презентацию доклада?
Спасибо
можно и заимплементить интерфейс BeanFactoryPostProcessor и доставать через рефлексию нужны поля, разница только в том, что BeanPostProcessor работатет уже с проиниализироваными полями обьекта, а BeanFactoryPostProcessor - после загрузки бинов в контейенер
dzone.com/articles/spring-bean-lifecycle
Как он делает эту магию при написании кода? пишет r и у него появляется целая строка, где он создает экземпляр класса Random. Потом в другом месте нажимает по всей видимости ctrl+alt+L и у него сами проставляются точка с запятой в конце строки, кто знает как это настроить?)
У enabled флага volatile не нужен?
Здесь не многопоточность
А как происходит консолидация (объединение) результатов работы методов postProcessAfterInitialization разных BeanPostProcessor'ов?
Ну то есть...Пусть есть 10 моих кастомных аннотаций, которые меняют логику бина, добавляя к его методам 10 соответствующих функционалов. Делаем 10 BeanPostProcessor'ов (далее BPP). Это нужно делать на стадии AfterInitialization и возвращать в методе postProcessAfterInitialization прокси с добавленным функционалом.
В каком порядке сработают мои 10 BPP?
Что после отработки всех 10 BPP будет в контейнере: один прокси объект (объединяет в себе все функционалы) или 10 разных прокси оберток над оригиналом?
Ну то есть в итоге же я должен получить bean, к оригинальной реализации которого накручено 10 функционалов. Как это получается? Это многослойная прокси обёртка получаетя?
Думаю первый раз создастся прокси над оригинальным классом, а потом будут создавать прокси на предыдущим прокси и так 9 раз. И результирующий прокси будет выполнять весь функционал. В каком порядке будут вызываться BPP это не должно быть важно. Если это важно, т.е. Вам нужно чтобы логика одного BPP срабатывала прежде другого BPP, то тогда нужно пересмотреть эту логику и возvожно объединить в один BPP.
21 сишарперов дислайкнули
Жесть конечно как тяжко всё это воспринимать человеку недавно зашедшему в спринг, по 20 раз пересматриваю каждый момент, чтобы понять что он там пытался осветить.
палец вверх от СЕООНЛИ!!!!!!!!
Сильно не ругайте за вопрос - только начинаю изучать spring. Разве нельзя делать профилирование такого типа через spring AOP?
Можно конечно. Но цель доклада немного глубже конкретной задачи профилирования). AOP ведь тоже работает через proxy, а после доклада складывается впечатление, как оно может быть реализовано.
Классный урок. Но оператора я бы выгнал. Показывать лектора крупным планом без доски большую часть времени, это супер. Наверное оператор считает, что в размахивании руками информации больше, чем в примерах на доске.
прям с трудом верится, что видео перед выкладыванием не было ускорено. неужели можно так быстро мыслить, говорить и жестикулировать?)
однако при просмотре на скорости 0,75 понимаешь, ... не мог человек в таком состоянии прийти на свое выступление)))
))))
Люди все разные, энергичный просто человек, увлеченный
Он просто это уже не первый десяток раз рассказывает, это я как экскурсионный гид говорю. Всё уже на автомате...
если бы я так защищал свой диплом, мне бы поставили шестерку и вручили приз зрительских симпатий
на 0,75 нормально смотреть
Смотрю на 2.0
))))) и голос, как-будто 0,75 хряпнул
Тоже сначала увеличивал, потом вернул обычную
Да, редкий пример, когда человек не нудит и все говорит по делу. Очень хороший докладчик. Смотрел на 1 с частыми перемотками назад.
Что нужно знать, чтобы это видео было полезно? Я знаю только Java Core и SQL. Будет какой-то толк? Или посоветуете что-то прочитать?
Ето точно не для новичков, ето для тех, кто уже нормально ознакомлен со Spring
Igor Vasylevskyi ну вот и я так думаю, а много людей мне советуют эти видео, когда я у них спрашиваю о инфе про спринг
@@igorvasylevskyi3629 По мне, так новичку надо смотреть минимум два раза - сразу и после того как поковыряешься в спринге. Первый просмотр просто много чего в голову откладывает, а второй - уже рассортировывает.
Не пропущена ли часть видео где Евгений с пакетом qualifiers играется?
Где посмотреться второй часть?
Подскажите стоит смотреть с этого если спринг не изучал до этого
думаю нет,потому что ни хрена не поймешь. я прошел курс Алишева , написал маленький проект и даже после этого когда смотрел ничего не понял. раза 10 пересмотрел и вроде на 80% понял
"Чиню баг, которого нет, а у него всё равно баг" жиза
Лекция отличная, но раньше я думал что говорят "поднимусь повыше" скроля вниз только люди 60+
Спринг изучаю не так давно, и все время меня коробило чувство, что за меня кучу работы делает Господь Бог. С одной стороны хорошо, но с другой - я не мог точно знать, как он это делает, а непонимание процесса до конца вызывало дискомфорт. Это все равно что играть в игру не до конца понимая её правила. С этим видео хоть что-то проясняется. Ещё заметил, что многие вещи в Спринге становятся более понятными, когда ты до этого велосипедил их вручную.
Michael Morrison Ели брать только Java SE, то тут не соглашусь, тут чистый кодинг, а вот EE и Spring , то есть где в дело вступают контейнеры, то там поначалу очень много временем уходит на понимание работы этих контейнеров, так как львиную долю работы выполняют именно они. Есть конторы, которые сводят к минимуму использование фреймворков, и пишут свои библиотеки, чтобы иметь более полный контроль над кодовой базой.
Michael Morrison Я спринг читаю в метро по дороге на работу для общего развития, прямо сплошняком по reference. Хоть и не пользуюсь, а кругозор расширяет ))
бля, теперь и я тут
ска теперь и я в вашем ебучем спринговом болоте🤦♂️
актуально в 2019?
не очень, хотя старьіх проектов с xml есть много еще
ruclips.net/video/nGfeSo52_8A/видео.html с 2:10
Igor Vasylevskyi
👍🏼👍🏼👍🏼👍🏼
Всегда актуально, технология же не меняется.
59:00 если бин создан через метод в @Configuration то getBeanClassName вернет null же?
Если речь идёт про метод, аннотированный @Bean и подобные, то насколько я знаю, спринг генерирует имя бина по имени метода.
вы не нашли ответ почему так происходит?
Думаю что getBeanClassName и здесь нормально отработает, т.к. в BeanDefinition название класса бина возьмется как имя название возвращаемого объекта
Так и не понял как он "решил" проблему с Lazy в самом конце.
норм) обычный жизненный цикл бина... по поводу eventLiteners конечно накручено я думаю это было просто сказано в образовательных целях сомневаюсь чтобы вот так извращались в рядовых проектах обычно все заканчивается на postProcessAfterInitialization
По поводу того, что спринг выбирает механизм проксирования CGlib или DynamicProxy,... он всегда использует Cglib, всегда
Доку быть хоть почитал, как он создаст Gglib, если мой бин не наследуется ни от одного интерфейса?
If the target object to be proxied implements at least one interface then a JDK dynamic proxy will be used. All of the interfaces implemented by the target type will be proxied. If the target object does not implement any interfaces then a CGLIB proxy will be created.
еще ПрОфиль и профИль.))) Лекция супер.
39:32. А если метод ничего не возвращает?
Кидает налл поинтер. В поле BeanDefinition beanDefinition = factory.getBeanDefinition(name); factory = null
В чем проблема?
В мене був NPE через те що я в методі postProcessAfterInitialization(Object bean, String beanName) забув змінити return null на return bean. Можливо вам допоможе)
+Roman Chmeluk В общем-то упущение в дизайне фреймворка, что он не хэндлит такое. Тем более что IDE при генерации метода по умолчанию вставляют "return null;", и это всем известно.
не забыл ?
или AutowiredAnnotationBeanPostProcessor для лучшего усвоения материала )
вы не нашли ответ почему так происходит?
Дайте линк на картинку, которая в начале лекции. Которая "Спринг в картинках"
vk.com/doc4606_318090168
Этот документ был удалён из общего доступа.
2014.jpoint.ru/presentations/Borisov_spring.pdf
2014.jpoint.ru/presentations/Borisov_spring.pdf
чет у меня нет там такого плагина в списке
Не совсем то докладчик называет namespace-ами.
28:16 - Евгений Борисов, небольшая поправка -Первый подход - это циглиб (когда класс не имеет интерфейса или класс файнал(с ваших слов)), а второй это динамик прокси.
Вы просто 5ю секундами ранее говориле сначала о наследовании от классов, а потом как второй вариант от интерфейсов, и следом вы НАЗЫВАЕТЕ эти подходы как Динамик прокси и "вторым" Вы называетее циглиб.
26:24 - "то ему придётся делать очень сложную работу..... " - Евшений Борисов, Вам удаётся совмещать стендап комеди, с обучением программированию, и программированием людей на выполнение очень сложной работы. Х))
Мёд для ушей.
сахар для кода
творог для костей
Синхронизация для потоков
Москва для москвичей
Скайрим для нордов
top
А МОЖНО Оборватьь
Вот бы скорость 0,9
Не знал что Гарик в Спринге шарит.
На Харламова чем-то похож.
Бля как же тяжко понимать, вопросов по мере просмотра только больше
я тоже не понял сразу, пересмотрел раза 2, почитал - все уложилось) главное не бросать
Interesting; however, despite the fact, that I understand Russian well, you're talking way too fast, man.
payback speed = 0,5; subtitles enable?)
айбернет😂👍👍👍👍
правильно будет hайбернет. букву h в русском алфавите не хватает.
11:37
мужик говорит в x2
че
Мда спринг очень гибок, даже слишком гибок, я лично предпочитаю больше EJB3.2 и очень стандартизированную архитектуру, блин зачем Оракл отдал JEE в Eclipse, ведь так всё было хорошо и стабильно, теперь клиенты всех хотят Спринг, теперь стринг надо всем джавистам учить.
че серьезно?) реально возникла проблема с тем что кастомеры говорят "не хотим ЖЕЕ"?)
Ну да иначе я бы этом здесь не писал
ты бесиш
Я 10 лет работаю с явой, примерно лет 7 назад удалил spring из все проектов и слава богу. Перешел на Guice. Но на самом деле и Guice особо не нужен. Написал свой маленький Injector. Чем меньше чужого кода в твоих проектах, тем лучше. (Hibernate кстати тоже снес)
и как работаете з базой данных?
У современных баз данных mongodb, redis, google datastore, cassandra есть своей api, плюс я использую свои утилиты или можно библиотеки написанные другими людьми. В крайнем случае можно jdbc напрямую, через опять же свои обертки. Скорость, простота и предсказуемость решения важнее, чем мнимое удобство hibernate.
Smychagin Alexei вы один над своим проектом работаете, или остальные разработчики выучили ваш инжектор? а как же spring data, mvc, batch...
миллионы девов юзают спринг, а тут я один на белой лошади. А заказчик знает, что он оплачивает создание велосипедов за его деньги?
Предсказуемость реализации и собственный велосипед когда уже есть масса стандартных - это взаимоисключающие параграфы.
Молодцы ребята,очень интересный ролик.
Кто хочет почитать или просто угареть от еще одной теории о том что на земле лесов нет:
www.as-gard.com/30-metrovye-kusty
Для меня недоходчиво было от слова совсем, автор изъясняется на эльфийском, нужно смотреть каждое второе слово в словаре. Терминологии, которую объяснил вначале, раз-два и обчёлся.