Продолжаю осваивать кваркус и реактивное программирование.
На этот раз разберемся в проблеме, которая возникает при попытке сохранить что либо в базу данных при чтении сообщения из топика кафки с помощью Hibernate Panache. Вы сможете сохранить только 5 сообщений, почему? Читайте в статье 👇
https://struchkov.dev/blog/panache-with-kafka-consumer-quarkus/
— — — — —
#quarkus #java #hibernate #kafka #reactive
На этот раз разберемся в проблеме, которая возникает при попытке сохранить что либо в базу данных при чтении сообщения из топика кафки с помощью Hibernate Panache. Вы сможете сохранить только 5 сообщений, почему? Читайте в статье 👇
https://struchkov.dev/blog/panache-with-kafka-consumer-quarkus/
— — — — —
#quarkus #java #hibernate #kafka #reactive
👍1
Наткнулся на любопытное видео, которое наглядно показывает отличия императивного и реактивного подходов.
Если никогда не сталкивались с реактивным программированием, то рекомендую посмотреть. Особенно доставила сравнительная аналогия про бабок: «Есть хитрые бабки, которые приходят в больницу. И когда им нужно посетить несколько врачей, они ходят по очередям и занимают их. А потом, где подходит очередь они туда и идут. А есть обычные пациенты, которые идут по очередям последовательно. Очевидно кто их них пройдет всех врачей быстрее.»
https://www.youtube.com/watch?v=c_QRmlFvfCk
— — — — —
#spring #reactive #youtube #java
Если никогда не сталкивались с реактивным программированием, то рекомендую посмотреть. Особенно доставила сравнительная аналогия про бабок: «Есть хитрые бабки, которые приходят в больницу. И когда им нужно посетить несколько врачей, они ходят по очередям и занимают их. А потом, где подходит очередь они туда и идут. А есть обычные пациенты, которые идут по очередям последовательно. Очевидно кто их них пройдет всех врачей быстрее.»
https://www.youtube.com/watch?v=c_QRmlFvfCk
— — — — —
#spring #reactive #youtube #java
YouTube
Spring Webflux - Почему он такой быстрый?
Разбираемся почему WebClient от SpringWebflux работает в 20 раз быстрее обычного http-клиента.
👍1🔥1
Домашняя экосистема облачных сервисов на базе Raspberry PI 4
Если вы хотите настроить приватные сервисы, такие как: сетевое файловое хранилище, менеджер паролей, хранилище фотографий, торрент-клиент. То эта статья для вас.
Статья получилась достаточно большой. В ней я делюсь своим опытом в построении небольших домашних экосистем, построенных на OpenSource решениях.
https://struchkov.dev/blog/raspberry-home-cloud-services-ecosystem/
— — — — —
#гайдлайн #raspberry #linux #docker
Если вы хотите настроить приватные сервисы, такие как: сетевое файловое хранилище, менеджер паролей, хранилище фотографий, торрент-клиент. То эта статья для вас.
Статья получилась достаточно большой. В ней я делюсь своим опытом в построении небольших домашних экосистем, построенных на OpenSource решениях.
https://struchkov.dev/blog/raspberry-home-cloud-services-ecosystem/
— — — — —
#гайдлайн #raspberry #linux #docker
Вспоминаем основы: Модификаторы в Java
Модификаторы это ключевые слова в Java, которые "изменяют и регулируют" работу классов, методов и переменных.
P.S. Оказалось писать статьи для начального уровня может быть сложнее, чем какие-то сложные разборы. Нужно учитывать, что читатель не знает каких-то вещей, и стараться донести все в понятной форме.
Также мне интересно насколько высоко моя статья попадет в поисковой выдаче по такому популярному запросу.
https://struchkov.dev/blog/modifiers-in-java/
— — — — —
#java #junior #java-core #разбор
Модификаторы это ключевые слова в Java, которые "изменяют и регулируют" работу классов, методов и переменных.
P.S. Оказалось писать статьи для начального уровня может быть сложнее, чем какие-то сложные разборы. Нужно учитывать, что читатель не знает каких-то вещей, и стараться донести все в понятной форме.
Также мне интересно насколько высоко моя статья попадет в поисковой выдаче по такому популярному запросу.
https://struchkov.dev/blog/modifiers-in-java/
— — — — —
#java #junior #java-core #разбор
Основы транзакций в Spring
В этой статье мы разберемся, что такое транзакции. Что это за свойства ACID. Как транзакции выполняются на уровне SQL, JDBС, а также на уровне Spring.
https://struchkov.dev/blog/transaction-jdbc-and-spring-boot/
— — — — —
#гайд #java #spring #spring_data #middle #jdbc #transactional
В этой статье мы разберемся, что такое транзакции. Что это за свойства ACID. Как транзакции выполняются на уровне SQL, JDBС, а также на уровне Spring.
https://struchkov.dev/blog/transaction-jdbc-and-spring-boot/
— — — — —
#гайд #java #spring #spring_data #middle #jdbc #transactional
👍5
Заметки Разработчиков
Во время основной работы, и в Я.Практикум постоянно появляется желание написать полноценную статью в блог с разбором какой-либо темы. Но сил и времени, а теперь и желания, совсем нет. Чтобы не впадать в творческий кризис, запустил новый блог для коротких заметок.
Там буду делиться полезными трюками и хаками, коротко объясняя что к чему. Также буду писать рецензии/рекомендации на книги/доклады, которые буду изучать.
Предполагаю, что со временем к проекту присоединяться другие разработчики. Если есть желание писать короткие заметки, то напишите мне, обсудим :)
P.S. Уже начал пилить телеграм бота для этого сайта, чтобы можно было подписаться на конкретного автора, конкретный тег. Допустим, чтобы можно было получать уведомления в телегу только о spring, от определенного автора, и так далее.
— — — — —
https://note.struchkov.dev
Во время основной работы, и в Я.Практикум постоянно появляется желание написать полноценную статью в блог с разбором какой-либо темы. Но сил и времени, а теперь и желания, совсем нет. Чтобы не впадать в творческий кризис, запустил новый блог для коротких заметок.
Там буду делиться полезными трюками и хаками, коротко объясняя что к чему. Также буду писать рецензии/рекомендации на книги/доклады, которые буду изучать.
Предполагаю, что со временем к проекту присоединяться другие разработчики. Если есть желание писать короткие заметки, то напишите мне, обсудим :)
P.S. Уже начал пилить телеграм бота для этого сайта, чтобы можно было подписаться на конкретного автора, конкретный тег. Допустим, чтобы можно было получать уведомления в телегу только о spring, от определенного автора, и так далее.
— — — — —
https://note.struchkov.dev
Telegram
Mark Struchkov
mark.struchkov.dev
👍4
Опубликованы видео доклады с Jpoint 2022
Посмотреть все доклады можно тут: https://www.youtube.com/playlist?list=PLVe-2wcL84b8OCdXV_tqP8YrMIlgB_BER
От себя порекомендую следующие доклады:
* Никита Летов — Используем @Transactional like a Pro
* Андрей Сальников — Индексы в PostgreSQL. Как понять, что создавать
* Григорий Кошелев — Log4j: ломай меня полностью
* Иван Углянский — Thread Wars: проект Loom наносит ответный удар
* Владимир Парфиненко — Как поймать рекурсию за хвост
P.S. И в своем новом блоге для заметок, рассказал про мой первый опыт «посещения» этой конференции за деньги.
Посмотреть все доклады можно тут: https://www.youtube.com/playlist?list=PLVe-2wcL84b8OCdXV_tqP8YrMIlgB_BER
От себя порекомендую следующие доклады:
* Никита Летов — Используем @Transactional like a Pro
* Андрей Сальников — Индексы в PostgreSQL. Как понять, что создавать
* Григорий Кошелев — Log4j: ломай меня полностью
* Иван Углянский — Thread Wars: проект Loom наносит ответный удар
* Владимир Парфиненко — Как поймать рекурсию за хвост
P.S. И в своем новом блоге для заметок, рассказал про мой первый опыт «посещения» этой конференции за деньги.
👍6
Собираем Docker Image для Spring Boot
В этой статье рассматриваются различные способы создания образов для Spring Boot приложения. Например, можно воспользоваться плагином Jib, который может создать образ без докера.
Но самая интересная часть — это оптимизированный Dockerfile. Используя модули, которые появились в Java 9 и утилиту jlink, уменьшим наш образ в 3-4 раза.
https://struchkov.dev/blog/build-docker-image-for-spring-boot/
— — — — —
#guide #java #middle #docker #spring #maven
В этой статье рассматриваются различные способы создания образов для Spring Boot приложения. Например, можно воспользоваться плагином Jib, который может создать образ без докера.
Но самая интересная часть — это оптимизированный Dockerfile. Используя модули, которые появились в Java 9 и утилиту jlink, уменьшим наш образ в 3-4 раза.
https://struchkov.dev/blog/build-docker-image-for-spring-boot/
— — — — —
#guide #java #middle #docker #spring #maven
👍7❤1
Forwarded from DevNotes.Log
Доклад: Spring Cloud goes cloud
Случайно натолкнулся на внутренний доклад для Epam от Евгения Борисова. То есть этот доклад доступен только по ссылке. Доклад выложили 29 августа 2022 года, и за это время его посмотрели всего 24 раза. Но судя по комментариям Евгения это видео сделано намного раньше.
Я никогда не работал со Spring-Cloud, было интересно взглянуть что там к чему. Если вы никогда не интересовались этой темой, то будет полезно глянуть. Однако до 44 минуты никакого клауда нет, но есть размышления Борисова о микросервисах. Также демонстрируется работа весьма спорной Spring Data REST. Этот модуль генерирует для ваших JpaRepository контроллеры.
Во второй части вы узнаете о том, как уменьшить размер вашего контейнера. Эта часть доклада вдохновила меня на написание статьи: "Собираем Docker Image для Spring Boot". Также в этой части повествуется про Spring-Actuator.
https://note.struchkov.dev/lecture-spring-cloud-goes-cloud/
-- -- -- -- --
#spring_cloud #backend #lecture #spring #review #java #borisov_evgeny #barmin_alexander
Случайно натолкнулся на внутренний доклад для Epam от Евгения Борисова. То есть этот доклад доступен только по ссылке. Доклад выложили 29 августа 2022 года, и за это время его посмотрели всего 24 раза. Но судя по комментариям Евгения это видео сделано намного раньше.
Я никогда не работал со Spring-Cloud, было интересно взглянуть что там к чему. Если вы никогда не интересовались этой темой, то будет полезно глянуть. Однако до 44 минуты никакого клауда нет, но есть размышления Борисова о микросервисах. Также демонстрируется работа весьма спорной Spring Data REST. Этот модуль генерирует для ваших JpaRepository контроллеры.
Во второй части вы узнаете о том, как уменьшить размер вашего контейнера. Эта часть доклада вдохновила меня на написание статьи: "Собираем Docker Image для Spring Boot". Также в этой части повествуется про Spring-Actuator.
https://note.struchkov.dev/lecture-spring-cloud-goes-cloud/
-- -- -- -- --
#spring_cloud #backend #lecture #spring #review #java #borisov_evgeny #barmin_alexander
👍6
Seek Method или Keyset Pagination
Spring, Quarkus и другие фреймворки генерируют за вас SQL запросы для пагинации по базе данных.
Делают ли они это эффективно? Рассмотрим проблемы пагинации с точки зрения SQL.
https://struchkov.dev/blog/seek-method-or-keyset-pagination/
— — — — —
#analysis #sql #performance #database #middle #index
Spring, Quarkus и другие фреймворки генерируют за вас SQL запросы для пагинации по базе данных.
Делают ли они это эффективно? Рассмотрим проблемы пагинации с точки зрения SQL.
https://struchkov.dev/blog/seek-method-or-keyset-pagination/
— — — — —
#analysis #sql #performance #database #middle #index
Forwarded from DevNotes.Log
Community day Joker 2022
Завтра будет бесплатный день Java конференции Joker, только нужно зарегистрироваться.
Многие заявленные доклады звучат интересно:
* Поваренная книга программиста: Vert.x
* Клуб (не)анонимных монолитиков
* Как сделать деплой незаметным для пользователя
* Разработка распределенной очереди с отложенными задачами на основе PostgreSQL
* Platform V User Sessions — распределенное хранилище сессионных данных
https://note.struchkov.dev/community-day-joker-2022/
-- -- -- -- --
#lecture #joker #java #announcement
Завтра будет бесплатный день Java конференции Joker, только нужно зарегистрироваться.
Многие заявленные доклады звучат интересно:
* Поваренная книга программиста: Vert.x
* Клуб (не)анонимных монолитиков
* Как сделать деплой незаметным для пользователя
* Разработка распределенной очереди с отложенными задачами на основе PostgreSQL
* Platform V User Sessions — распределенное хранилище сессионных данных
https://note.struchkov.dev/community-day-joker-2022/
-- -- -- -- --
#lecture #joker #java #announcement
👍3
Обновление статьи: Проблема реактивного Hibernate Panache с Kafka в Quarkus
Кажется багу починили, с версии 2.14.0 достаточно поставить аннотацию
P.S. Кажется писать статьи по багам дело не благородное, потом приходиться их актуализировать 😅
— — — — —
https://struchkov.dev/blog/panache-with-kafka-consumer-quarkus/
Кажется багу починили, с версии 2.14.0 достаточно поставить аннотацию
@ActivateRequestContext вместе с @Incoming и можно работать с Hibernate Panache при получении сообщений из Kafka. Поэтому актуализировал статью под новую версию.P.S. Кажется писать статьи по багам дело не благородное, потом приходиться их актуализировать 😅
— — — — —
https://struchkov.dev/blog/panache-with-kafka-consumer-quarkus/
👍3
Хочу поделиться впечатлениями о новой конференции Podlodka Java Crew 👀
Первое, что хотелось бы отметить, приятную атмосферу и расписание. Два доклада в день утром и вечером 5 дней. Это очень удобно встроилось в мой календарь. Информация спокойно усваивается, не происходит перегруз. При этом доклады идут дольше, чем заявлено, никто не пытается закончить побыстрее, чтобы уложиться в сроки. После доклада все желающие задают свои вопросы.
Было много интересных обсуждений, но, кажется, маловато технических докладов с live-code. Надеюсь, что со временем таких докладов станет больше.
Отдельно отмечу Java-квизы. Сначала скептически отнёсся к этой активности, но решил поучаствовать. Оказалось довольно интересно посоревноваться с коллегами по цеху🙂
Спасибо подлодке за новую конференцию по Java💪
Первое, что хотелось бы отметить, приятную атмосферу и расписание. Два доклада в день утром и вечером 5 дней. Это очень удобно встроилось в мой календарь. Информация спокойно усваивается, не происходит перегруз. При этом доклады идут дольше, чем заявлено, никто не пытается закончить побыстрее, чтобы уложиться в сроки. После доклада все желающие задают свои вопросы.
Было много интересных обсуждений, но, кажется, маловато технических докладов с live-code. Надеюсь, что со временем таких докладов станет больше.
Отдельно отмечу Java-квизы. Сначала скептически отнёсся к этой активности, но решил поучаствовать. Оказалось довольно интересно посоревноваться с коллегами по цеху
Спасибо подлодке за новую конференцию по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
podlodka.io
Онлайн-конференция Podlodka Java Crew, сезон #8
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам java-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
👍1
Сегодня я впервые дебютирую в качестве докладчика на конференции подлодки ☝️
Приходите послушать, если участвуете в конференции. Это секция открытого микрофона с 19 до 20.
Буду рассказывать как написать оптимальный Docker image для приложения 📦
Приходите послушать, если участвуете в конференции. Это секция открытого микрофона с 19 до 20.
Буду рассказывать как написать оптимальный Docker image для приложения 📦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Конференция закончилась, атмосфера очень понравилась 👍
Бонусом победил в соревновании и получу проходку на следующей сезон конференции, что особенно приятно ☺️
Кажется, что доклад получился скомканным. Пришлось тараторить, чтобы уложиться в 15-20 минут 😅
Оказалось, что доклад тянет на полноценный, если его подробно рассказывать 👀
Ну получилось, как получилось. Чуть позже скину запись. Вроде разрешили распространять))
Бонусом победил в соревновании и получу проходку на следующей сезон конференции, что особенно приятно ☺️
Кажется, что доклад получился скомканным. Пришлось тараторить, чтобы уложиться в 15-20 минут 😅
Оказалось, что доклад тянет на полноценный, если его подробно рассказывать 👀
Ну получилось, как получилось. Чуть позже скину запись. Вроде разрешили распространять))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Struchkov // Java TechLead
Собираем Docker Image для Spring Boot В этой статье рассматриваются различные способы создания образов для Spring Boot приложения. Например, можно воспользоваться плагином Jib, который может создать образ без докера. Но самая интересная часть — это оптимизированный…
Вот и запись вчерашнего выступления подъехала: https://youtu.be/MAFYm9tv-R4
Дополнительно создал канал на YouTube, хочу попробовать делать обучающие видео к статьям.
Ссылка на канал: @struchkovdev
Дополнительно создал канал на YouTube, хочу попробовать делать обучающие видео к статьям.
Ссылка на канал: @struchkovdev
YouTube
Оптимальный Docker Image для Spring Boot
Рассмотрим популярные способы упаковки приложения в контейнер. Определим их плюсы и минусы, а после напишем свой оптимальный Dockerfile для Spring Boot.
Статья: https://struchkov.dev/blog/build-docker-image-for-spring-boot/
Задать вопрос, оставить комментарий:…
Статья: https://struchkov.dev/blog/build-docker-image-for-spring-boot/
Задать вопрос, оставить комментарий:…
🔥10👍1
В продолжение темы пагинации написал еще две статьи:
Постраничная пагинация в SpringBoot
Статья рассчитана для новичков, которые хотят разобраться как отдавать данные порциями (страницами), а не все разом.
Опытные разработчики ничего нового не узнают. Хотя возможно задумаются, стоит ли протаскивать классы Page и Pageable через все слои приложения🧐
Постраничная пагинация в Quarkus
Тоже самое, но про реактивный кваркус. Там не все так просто, как в SpringBoot.
Первое решение, которое я реализовал выполняло 4 запроса к БД, вместо 2.
В этой статье есть объяснение почему так, и как это исправить.
P.S. В планах еще статья про реализацию KeySet Pagination.
Постраничная пагинация в SpringBoot
Статья рассчитана для новичков, которые хотят разобраться как отдавать данные порциями (страницами), а не все разом.
Опытные разработчики ничего нового не узнают. Хотя возможно задумаются, стоит ли протаскивать классы Page и Pageable через все слои приложения
Постраничная пагинация в Quarkus
Тоже самое, но про реактивный кваркус. Там не все так просто, как в SpringBoot.
Первое решение, которое я реализовал выполняло 4 запроса к БД, вместо 2.
В этой статье есть объяснение почему так, и как это исправить.
P.S. В планах еще статья про реализацию KeySet Pagination.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Struchkov // Java TechLead
Основы транзакций в Spring В этой статье мы разберемся, что такое транзакции. Что это за свойства ACID. Как транзакции выполняются на уровне SQL, JDBС, а также на уровне Spring. https://struchkov.dev/blog/transaction-jdbc-and-spring-boot/ — — — — — #гайд…
Уровни изоляций траназакций
Продолжаю покрывать базовые темы. В этот раз разбирается с проблемами, которые могут возникнуть при параллельных транзакциях, а их не мало.
Кажется получилось годная статья. Особенное внимание стоит уделить примерам, которые иллюстрируют каждую проблему.
https://struchkov.dev/blog/transactional-isolation-levels/
Продолжаю покрывать базовые темы. В этот раз разбирается с проблемами, которые могут возникнуть при параллельных транзакциях, а их не мало.
Кажется получилось годная статья. Особенное внимание стоит уделить примерам, которые иллюстрируют каждую проблему.
https://struchkov.dev/blog/transactional-isolation-levels/
👍15
Коллеги на работе скинули запись с небольшим количеством интересных докладов. Ну а я делюсь с вами ☺️
Пока все посмотреть не успел, но планирую))
Доклады с таймкодами:
12:55 — Иван Углянский — «Один день из жизни JVM-инженера». Этот доклад был на последнем дне Jocker 2022.
1:05:05 —Андрей Цветцих — «Эволюция и популярные мифы CQRS». Любопытный доклад про архитектуру приложения.
2:17:29 — Алексей Рагозин — «Матрица мониторинга»
3:11:22 — Владимир Плизга — «Экскурсия в бэкенд Интернета вещей»
4:25:30 — Илья Орлов — «Scylla в проде: о выживании чудовищ в диких условиях кровавого энтерпрайза»
5:00:39 — Сергей Задорожный — «Руководство бравого докер-секурити мастера»
Запись: https://www.youtube.com/watch?v=k-AQlEdRyO0
Пока все посмотреть не успел, но планирую))
Доклады с таймкодами:
12:55 — Иван Углянский — «Один день из жизни JVM-инженера». Этот доклад был на последнем дне Jocker 2022.
1:05:05 —Андрей Цветцих — «Эволюция и популярные мифы CQRS». Любопытный доклад про архитектуру приложения.
2:17:29 — Алексей Рагозин — «Матрица мониторинга»
3:11:22 — Владимир Плизга — «Экскурсия в бэкенд Интернета вещей»
4:25:30 — Илья Орлов — «Scylla в проде: о выживании чудовищ в диких условиях кровавого энтерпрайза»
5:00:39 — Сергей Задорожный — «Руководство бравого докер-секурити мастера»
Запись: https://www.youtube.com/watch?v=k-AQlEdRyO0
YouTube
Backend Day
00:00 — Вот-вот начнём
12:55 — Иван Углянский (Excelsior Huawei) — «Один день из жизни JVM-инженера»
1:05:05 —Андрей Цветцих (Тинькофф) — «Эволюция и популярные мифы CQRS»
2:17:29 — Алексей Рагозин (независимый эксперт) — «Матрица мониторинга»
3:11:22 — Владимир…
12:55 — Иван Углянский (Excelsior Huawei) — «Один день из жизни JVM-инженера»
1:05:05 —Андрей Цветцих (Тинькофф) — «Эволюция и популярные мифы CQRS»
2:17:29 — Алексей Рагозин (независимый эксперт) — «Матрица мониторинга»
3:11:22 — Владимир…
🔥9👍3