Struchkov // Java TechLead
919 subscribers
16 photos
2 videos
73 links
Заметки: https://garden.struchkov.dev
— — — — —
Блог: https://struchkov.dev/blog
— — — — —
Связь: @uPagge
Download Telegram
Домашняя экосистема облачных сервисов на базе 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
Хочу поделиться впечатлениями о новой конференции Podlodka Java Crew 👀

Первое, что хотелось бы отметить, приятную атмосферу и расписание. Два доклада в день утром и вечером 5 дней. Это очень удобно встроилось в мой календарь. Информация спокойно усваивается, не происходит перегруз. При этом доклады идут дольше, чем заявлено, никто не пытается закончить побыстрее, чтобы уложиться в сроки. После доклада все желающие задают свои вопросы.

Было много интересных обсуждений, но, кажется, маловато технических докладов с live-code. Надеюсь, что со временем таких докладов станет больше.

Отдельно отмечу Java-квизы. Сначала скептически отнёсся к этой активности, но решил поучаствовать. Оказалось довольно интересно посоревноваться с коллегами по цеху 🙂

Спасибо подлодке за новую конференцию по Java 💪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Сегодня я впервые дебютирую в качестве докладчика на конференции подлодки ☝️

Приходите послушать, если участвуете в конференции. Это секция открытого микрофона с 19 до 20.

Буду рассказывать как написать оптимальный Docker image для приложения 📦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Конференция закончилась, атмосфера очень понравилась 👍

Бонусом победил в соревновании и получу проходку на следующей сезон конференции, что особенно приятно ☺️

Кажется, что доклад получился скомканным. Пришлось тараторить, чтобы уложиться в 15-20 минут 😅
Оказалось, что доклад тянет на полноценный, если его подробно рассказывать 👀

Ну получилось, как получилось. Чуть позже скину запись. Вроде разрешили распространять))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
В продолжение темы пагинации написал еще две статьи:

Постраничная пагинация в 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/
👍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
🔥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. Таймер криво сработал, этот пост должен был быть над предыдущим 😅
🔥2