Struchkov // Java TechLead
919 subscribers
16 photos
2 videos
73 links
Заметки: https://garden.struchkov.dev
— — — — —
Блог: https://struchkov.dev/blog
— — — — —
Связь: @uPagge
Download Telegram
Любопытная фича в гугле. Если вы подтвердили права на домен в гугл, а потом загуглили что-то о чем у вас есть пост, то гугл покажет вам вот такое окошко.
Большой гайд по Optional в Java

Сегодня мы узнаем, как уменьшить шанс получить NullPointerException используя класс Optional.

https://struchkov.dev/blog/optional-in-java/
👍1🔥1
Обновил статью: Реализация JWT в Spring Boot

Обновил все зависимости на актуальные. Перевел примеры с Java 11 на Java 17
Некоторые классы и методы уже при написании были deprecated. Поэтому актуализировал все примеры кода.

— — — — —
https://struchkov.dev/blog/jwt-implementation-in-spring/
Forwarded from Код Дурова
🧑‍💻 Виртуальный ассистент для программиста //

Сервис для помощи в написании кода Copilot от GitHub вышел общедоступный релиз. За $10 разработчику предлагается продвинутая нейросеть, способная анализировать ПО и дописывать конструкции кода за человека.

@d_code
Решил попробовать переводить статьи некоторых англоязычных блогеров по Java.
Так как сейчас активно изучаю кишки Hibernate, то статьи будут соответсвующие.

Однако просто переводить неинтересно, поэтому статьи будут адаптированы, то есть что-то устаревшее выкинуто, что-то новое добавлено. Также буду проверять примеры, или писать их с нуля, чтобы можно было все запустить и проверить.

У этой инициативы несколько целей:
* Так получается глубже понять материал.
* Попрактиковаться в английском.
* Улучшить ситуацию с материалами по Java на русском языке.

И вот первая переведенная и адаптированная статья, которая рассказывает о такой проблеме Hibrnate, как MultipleBagFetchException. Также разбираются способы решения.
— — — — —
https://struchkov.dev/blog/hibernate-multiple-bag-fetch-exception/
👍4
Перевел еще одну статью про StatelessSession

Интерфейс StatelessSession в Hibernate предоставляет командно-ориентированный API, который дает вам больше контроля над выполняемыми SQL-запросами. Он гораздо ближе к JDBC, что позволяет увеличить производительность сервиса.

https://struchkov.dev/blog/hibernates-statelesssession/
— — — — —
#guide #java #hibernate #translate #thorben_janssen
👍1
Продолжаю осваивать кваркус и реактивное программирование.

На этот раз разберемся в проблеме, которая возникает при попытке сохранить что либо в базу данных при чтении сообщения из топика кафки с помощью 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
👍1🔥1
Домашняя экосистема облачных сервисов на базе Raspberry PI 4

Если вы хотите настроить приватные сервисы, такие как: сетевое файловое хранилище, менеджер паролей, хранилище фотографий, торрент-клиент. То эта статья для вас.

Статья получилась достаточно большой. В ней я делюсь своим опытом в построении небольших домашних экосистем, построенных на 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 #разбор
Яндекс довольно быстро вывел статью в топ по нескольким ключевым запросам 🤩
👏8
Основы транзакций в Spring

В этой статье мы разберемся, что такое транзакции. Что это за свойства 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
👍4
Забавное наблюдение. Если «гуглить» в яндексе на тему программирования, то нумерация страниц выглядит следующим образом 🙃
👍10
Собираем 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
👍71
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
👍6
Seek Method или Keyset Pagination

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
👍3
Обновление статьи: Проблема реактивного Hibernate Panache с Kafka в Quarkus

Кажется багу починили, с версии 2.14.0 достаточно поставить аннотацию @ActivateRequestContext вместе с @Incoming и можно работать с Hibernate Panache при получении сообщений из Kafka. Поэтому актуализировал статью под новую версию.

P.S. Кажется писать статьи по багам дело не благородное, потом приходиться их актуализировать 😅
— — — — —
https://struchkov.dev/blog/panache-with-kafka-consumer-quarkus/
👍3