Вспоминаем основы: Модификаторы в 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
Итак, это была последняя статья в этом году
Хочется подвести итоги и поставить цели на 2023.
Чтобы как-то отвлечься, я с головой ушел в разработку на работе и свои проекты. Поэтому за этот год довольно много достижений и новых изученных технологий. Хоть какая-то польза от этого года. Но полноценную статью с подведением итогов я не успел дописать, сделаю это во время праздников. Но коротко зафиксирую достижения в этом посте.
Результаты за 2022 год:
- Изучил множество новых технологий: Реактивная разработка на Quarkus, Kafka, GraphQL, Redis, Protobuffers и множество других слов, которые украсили резюме в этом году.
- Написал 19 статей в блоге. Но в прошлом году было намного больше :(
- Выступил с небольшим докладом на конференции Podlodka Java Crew #1.
- Запустил подкаст с другом.
- Закрыли подкаст с другом через 7 выпусков. Возможно когда-нибудь возродим его 😄
- Сходил на подкаст в качестве гостя. Выпуск будет в январе, и анонс тоже :)
- Запустил второй сайт с короткими заметками по разработке - DevNotes.
- Настроил инфраструктуру для своих проектов: Git, CI/CD, Nexus. Возможно напишу гайд о том, как поднять свою независимую инфраструктуру для разработки и не бояться получить бан в GitHub/GitLab/DockerHub.
- Полностью закончил дизайн основного блога, осталось только поправить баги, которые возникают на мобильных устройствах.
- Почти весь год провел с Я.Практикум, помогая студентам на курсе Java. Но пришлось покинуть Практикум, так как перестало хватать на все времени :(
Планы на 2023:
- Выступить с полноценным докладом на конференции Jpoint или Jocker.
- Собрать команду авторов и развивать блог уже командой.
- Вдохнуть вторую жизнь в проект Gitlab Notification. Уже начал это делать, думаю в январе закончу.
- Оживить сайт DevNotes, а то я на него подзабил. Тут много еще работы в плане дизайна сайта и фишечек.
- Развивать YouTube канал и телеграм каналы
- Написать документацию к своим библиотекам и презентовать их широкой публике.
Как-то так. Год получился на удивление продуктивным.
Интересно было бы послушать о ваших главных достижениях в этом году, пишите в комментарии👇
А я поздравляю всех с наступающим Новым Годом.
Желаю поменьше работать и побольше зарабатывать 🙃
Все остальное вам и без меня пожелают 😄
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🎄5
Автоматизация рутины при выпуске релизов с Maven
Если у вас есть проект, в котором больше 5 модулей, то вам должна быть знакома боль выпуска релиза. Ведь надо руками обновить версию родительского помника в каждом модулей, и это еще благоприятная ситуация. А если версии модулей самостоятельные, то риск допустить ошибку увеличивается.
В таких случаях поможет maven-release-plugin, о нем и пойдет речь в последней заметке в этом году:
https://struchkov.dev/blog/release-releases-with-maven/
P.S. Таймер криво сработал, этот пост должен был быть над предыдущим 😅
Если у вас есть проект, в котором больше 5 модулей, то вам должна быть знакома боль выпуска релиза. Ведь надо руками обновить версию родительского помника в каждом модулей, и это еще благоприятная ситуация. А если версии модулей самостоятельные, то риск допустить ошибку увеличивается.
В таких случаях поможет maven-release-plugin, о нем и пойдет речь в последней заметке в этом году:
https://struchkov.dev/blog/release-releases-with-maven/
P.S. Таймер криво сработал, этот пост должен был быть над предыдущим 😅
🔥2
Всех с 2023 релизом 😁🥳🍾
Надеюсь он будет менее баговый, чем 2022 😅
Желаю стабильных релизов и легких деплоев весь 2023😂
Надеюсь он будет менее баговый, чем 2022 😅
Желаю стабильных релизов и легких деплоев весь 2023
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🍾8