Java Mentor – Telegram
Java Mentor
293 subscribers
173 photos
48 videos
1 file
79 links
Download Telegram
1️⃣ 21 день — слишком долгий срок. В какой-то момент мне захотелось что-то добавить, а что-то изменить. Но выбранный формат и цель не позволяли вносить коррективы.
2️⃣ В процессе захотелось не просто отмечать галочки, а делать это ради чего-то. Про цели, конечно, не подумал. Решил оставить это на следующую итерацию.
3️⃣ Привычки и цели — это хорошо, но захотелось их разделить по двум разным листам 📄📄

А следующая итерация вот она и наступила.

Я перешёл на двухнедельные спринты. Купил себе дырокол и папочку (от слова "папка", извращенцы) 😏

Распечатал красивых листиков и доволен как конь 🐎

Я не знаю, получится ли у меня в этот раз не сойти с дистанции, но знаю, что мне просто нужно каждый день уделять 30 минут данному проекту ради целей, которые я себе определил ⏱️
Посмотрим, друзья. Спасибо, что вы не отписались все с моего канала, пока я решал какие-то свои личные проблемы 🙌
То, что я запланировал себе на спринт, — вы можете увидеть в приложенных картинках в коментах к посту. Надеюсь, теперь будем списываться чаще 💘
Please open Telegram to view this post
VIEW IN TELEGRAM
👏10👍75🔥4
Короче, то что есть в спринге аннотация Transactional - знают все.

Но не все знают (сам не знал этого) различные варианты параметра Propagation.

Делаю проект щас, на основе которого сниму видос по этой теме. Но точно не сегодня. Но если накидаете реакций, пойму что это интересно, и это очень может помочь с мотивацией)

Хочу тобы было удобно, смотрите, документация прямо в свагере, скачаете себе проект, запустите посмотрите по коду, потыкаете различное поведение, прямо из, мать его сваггера.

Итнтересно, жду - 🔥
Такое себе, не очень как бы и надо - 👎
🔥33👎1💯1
Всем привет, ребят!

Короче не могу молчать. Я делаю видос про Transactional и он у меня занимает ну капец как много времени. 🤯

Я написал сценарий для вступления, и отснял вступление. Знаете, вообще хорошо так заходит, когда есть подготовленный сценарий.

А дальше надо снимать экран и свою говорящую голову, которая помимо демонстрации происходящего на экране, должна вещать что-то, желательно, структурированное. Видимо я был уверен в своих силах, но по итогу вышел какой-то кал. Пришлось писать сценарий. А это капец как лень - писать что я буду говорить на видосе. В общем с горем пополам я только что закончил писать этот сценарий для видоса. Когда буду снимать - хз. Когда буду монтировать - хз. 😀

И есть такое ощущение, что раз пообещал выложить видос, то не появляться в блоге, пока видос не будет готов. Собрав всю волю в кулак решил послать в жопу это ощущение. 🤦‍♂️

Я просто не могу молчать. Столькими вещами хочется поделиться.

Ну, во-первых - помидоры. Я стал выращивать помидоры. 🍅

Просто гляньте. На кой хер мне они сдались - хз 🤣

Знаете, это произошло как-то спонтанно Я не планировал это делать. Более того, я не знаю как это делать. Оказывается есть столько ньюансов о том как выращивать помидоры. Если вам кажется, что технари - зазнавшиеся в своем интеллектуальном превосходстве люди - посмотрите на садоводов. Это просто родина снобизма и завышенного ЧСВ 🤣

Это я к чему. Если бы я посмотрел видос "Как вырастить помидоры" - я бы ни за что не взялся за это дело. А тут я просто не знаю какие могут возникнуть трудности, и просто делаю 1 понятный шаг - посадить семена, пересадить ростки в отдельные горшки, пересадить помидоры в горшки побольше. Кажется это крутой урок. Часто мы рисуем в голове себе кучу преград, которые тормозят нас в действии. Проще было бы вообще их не знать и тупо делать что получается, не зная страха.

В следующий раз, вкушая помидор - подумайте, а какие бы внутренние преграды и барьеры послать нахер и просто сделать то, что хочется? 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍33🆒2
Тыкните плз, будет полезно для понимания актуальности след постов)
Anonymous Poll
15%
Живу в Питере
85%
Живу не в Питере
Я чего про Питер спрашивал.

В последние месяцы у меня дома возросло количество отвлекающих факторов, и сосредоточиться на работе стало в разы сложнее 🤪

Офис на работе крутой, но ехать туда далековато и от этого часто лениво.

Задумался о том, чтобы попробовать какой-нибудь коворкинг, и нашел этих ребят:

Просто коворкинг

Коворкинг с классным пространством, в котором выдают ноутбуки для работы, есть принтеры, переговорки, кухня и другие плюшки.

И все это бесплатно. Бесплатно для людей до 35 лет.

В общем у меня есть целый год пользоваться благами этого крутого проекта.

Не стал затягивать с посещением, и обнаружил, что в коворкинге все топовые места уже заняты 😂

Поерзал на стуле, поменял место, потом поменял место еще раз, на самое топовое и понял, что не в местах дело. А просто меня удручает офисная атмосфера. Все так чинно, важно, и скучно. 😴

К счастью в соседнем помещении я обнаружил крутую кофейню для тех, видимо, кому за 35 🤣

Там и кормят вкусно, и чай китайский разливают, вид бомбический, и розетки у каждого столика.

Так что если вы из Питера - очень рекомендую данное пространство

Какой-то рекламный пост, за который мне нихера не заплатят ))
🔥115👍2😁2
🚀 Новый разбор: Spring @Transactional, Propagation и Proxy

В этом видео я показываю:

🔸 Как работает аннотация @Transactional в Spring
🔸 Что такое разные Propagation и как они работают
🔸 Свой пример Proxy, чтобы понять как под капотом Spring создает и откатывает транзакции

📹 Смотрим видео на YouTube:
🔗 Смотреть

💻 Репозиторий с кодом:
🔗 GitHub
🔥133👍3❤‍🔥1
Media is too big
VIEW IN TELEGRAM
Ламповые домашние рассуждения поехавшего профессора, в которых он затрагивает, в том числе, и этот видос: https://youtu.be/o2xAkuBf9W4?si=Z4IOlda2ubZfjqKZ

PS Пупс, я вообще хз, интересно ли тебе слушать мое бородатое рыло аж целых 7 минут, так что не стесняйся влепить какаху - если все мимо, и жгучее сердечко, если оно у тебя екнуло
❤‍🔥12👍3
💡 Когда и где использовать @Transactional в Spring?

После выхода последнего видео получил хороший вопрос:

"А когда вообще стоит использовать @Transactional? Например, для методов getAll, getById, create, update, delete — нужно ли? И создает ли она дополнительную нагрузку?"

Выше оставил маленькую шпору, а ниже разбирем всё по порядку 👇

📌 1. Где использовать?
@Transactional имеет смысл в методах, где мы меняем состояние базы данных — то есть выполняем INSERT, UPDATE или DELETE.
Это:

🔸create
🔸update
🔸delete

а также более сложные методы, где за один вызов происходит несколько изменений в разных таблицах

‼️ Особенно важно оборачивать транзакцией методы с несколькими изменениями — тогда в случае ошибки все изменения откатятся.

А вот если у вас всего один апдейт, то @Transactional технически не обязателен — драйвер JDBC и так выполняет операцию в транзакции (если надо расскажу об этом подробнее). Но вешать её можно для единообразия, особенно если логика метода со временем может вырасти.

📌 2. Нагрузка на БД
Транзакция сама по себе — не "тяжёлая" операция, но:

1. Держит соединение с БД дольше
2. Может блокировать строки или таблицы (зависит от уровня изоляции)
3. В случае долгих транзакций — мешает другим запросам

Поэтому не транзакционируем всё подряд, особенно долгие чтения.

📌 3. Нагрузка на приложение
Spring при использовании @Transactional создаёт прокси и оборачивает вызов метода в транзакционный менеджер.
Эта накладка минимальна, а основная "стоимость" транзакций всегда на стороне базы.

💬 Итог:

1️⃣ Несколько изменений в БД → транзакция обязательна
2️⃣ Один апдейт → можно без неё, но допустимо вешать для консистентности
3️⃣ Чтение → транзакция редко нужна, но бывают исключения

Это базовые принципы, но транзакции ещё и по-разному взаимодействуют друг с другом: одни продолжают существующую, другие создают новую, третьи вообще запрещают выполнение внутри транзакции.
Подробно об этом я рассказал в новом видео — в котором разобрал параметр Propagation и показал на примере как оно работает под капотом

🎥 Ссылка на видео: https://youtu.be/ZWuvSOCRs3Q?si=TPUYjcVto42gfHMp
7🔥7👍2
Попросил ChatGPT нарисовать мне баннер для YouTube канала, на основе всего того, что он обо мне знает.

Похож? 😂

Судя по всему знает он обо мне многое, кроме того, что я НОШУ ЧЕЛКУ ТОЛЬКО ВПЕРЕД!!! 🤣
🥴5🤣3👍2🙈2💘2
💻 Совсем немного Java Core
🔥 И ты забудешь про хардкор
А чтоб сервак твой не упал
👉 Вступи скорее в мой канал

Короче, всем привет!

У меня на канале — и думаю, никто не будет с этим спорить — ублюдская шапка:

📩 Для связи: @zor_07
📚 обучающие материалы по Java
Пет-проекты
Помощь в составлении резюме
Подготовка к собесам

Какие-то всратые галочки. Люди на это смотрят и такие: «Ну нахер…» — как в том меме со священником.

Короче, надо придумать новую шапку.

Я пробовал с GPT, но он разговаривает такими же пресными ублюдскими формулировками, от которых меня ввергает в экзистенциальную апатию и скуку.

🙏 ПАМАГИТЕ!
Мне нужна новая шапка. 🥹

📏 Ограничения:
— немного скрытой эротизации — маст хэв
— но так, чтобы было понятно: мы всё-таки порой и про Java разговариваем
— максимум 255 символов (вместе с пробелами и эмодзи)

Вот мои варианты:

💡 Войти в Java, чтоб сервак не упал, а жизнь не переставала возбуждать?
Невозможно — скажете вы. Просто подпишись — отвечу я.

💡 Как выучить Java, чтоб твой сервак никогда не падал?
За 10 лет я этого так и не понял. Но ты залетай — будем разбираться вместе.

Все ещё ВСРАТО. Мне не нравится.

✍️ Накидайте ваши варианты для описания канала.
🏆 Победителю, чей вариант я использую (или отрефакторю и заюзаю), — бесплатная консультация на любую тему (хоть сколько-нибудь близкую к Java).

👉 Варианты от GPT для разгона

💡 «Java без боли и уныния: чтобы код компилился, сервак не падал, а жизнь стояла колом от удовольствия. Подписывайся — будем разбираться вместе 🍅»

💡 «Как выучить Java и не потерять стояк на жизнь? Тут и про Spring, и про базы, и про то, как не сойти с ума на собесах. Влетаешь — дальше только веселее 🚀»

🤪 Дичайшие варианты от GPT

💡 «Java и стояк на жизнь: одно поддерживаем транзакциями, другое — кофеином . Подписывайся, пока GC не собрал твой энтузиазм!»

💡 «Освоишь Java — сервак не упадёт. Подпишешься сюда — и либидо тоже. Тут баги фиксят не только в коде, но и в душе ❤️»

💡 «Канал о Java: чтобы твой код не вис, сервак не падал, а стояк не прерывался даже после дедлайна 🍆»

💡 «Java, Spring и немного эротики: чтобы не только тесты проходили, но и ты всегда был готов к нагрузочному 😏»
😁6🍌3😨3🗿1👾1
Сегодня записывал видос на одну интересную тему, которую я сильно тут задолжал.

Все произошло как-то импульсивно. Просто сел, и решил сразу начать запись как пойдет. Ай как хорошо у меня все получалось. Лайв кодинг с пояснениями, размышлениями. Что за лев был этот тигр.

1.5 часа безудержного кодинга. А по итогу что? По итогу этот тигр не включил микрофон 🎤 🤦‍♂️

Короче да, перезапишу в скором времени, но пока что это фиаско, братан 😂

Сразу расскажу как дела. Я прошел на работе испытательный срок. В конце июля. Но поздравили меня с этим недавно. Я на самом деле этому рад, потому что на новом месте без обратной связи не всегда легко понять справляюсь я или нет.

Задачи довольно сложные. Кодовая база не просто большая, а 🤬 какая большая. Более 100 микросервисов + несколько монолитов.

Фикшу баги, занимаюсь аналитическими задачами.

Была аналитическая задача узнать на какую максимально возможную версию можно поднять один крайне важный инфраструктурный компонент.

Пока я ею занимался вдруг что-то крайне важное и нужное сломалось на проде.

Я описываю в общих чертах без конкретики, так как не хочется случайно нарушить nda, но в общих чертах поделиться все равно хочу.

Сломалось что-то важно и нужное прям каждый день. Клиенты страдали от этой поломки. Нужно было сделать фикс максимально быстро. Замедлилась обработка сообщений в одном брокере сообщений. И надо было понять почему. С учетом размера кодовой базы и отсутствием доступа к логам прода понять это было не то чтобы очень просто.

За первый день удалось разобраться в принципе как эта херабора работает.

За второй день удалось выкатить костыль, который позволил не задерживать обработку сообщений в этой очереди.

Но этот костыль не решал первопричину проблемы. С этим все еще разбираемся. Добавил дополнительный вывод логов, который поможет найти виновника проблемы.

Кстати с доп логированием тоже не все просто. Нужно оценивать объем логов и их размер, чтобы не выйти за лимиты памяти заложенные в логах.

Решая эту проблему вдруг пришла мысль: «теперь понятно, почему мне платят такие деньги»

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

Вот представьте - 100 микросервисов, какие-то из них читают из очередей. Сейчас поддерживается ордеринг сообщений. Т.е. сообщения читаются в том порядке, в котором были отправлены. А в новой версии ордеринг не будет гарантироваться, и надо понять сломает ли это что-нибудь.

К понедельнику (истерический смех).

Примерно такие вот будни у бэкенд проктолога. Во всем этом дерьме стараюсь научиться выделять время этому проекту, радовать вас чем-то полезным интересным. Иногда забываю включить микрофон…
🔥96👍4
Поделитесь плз, читаете ли вы книги? И если да, то как?

- Бумажные
- В читалках электронных?
- На телефонах/планшетах? Какие юзаете приложения-читалки?

И как вы выбираете что почитать? Как приходит понимание, что вот эту книжку я почитать хочу?

Думаю снова вернуться к чтению и хочу понять какой формат был бы удобным для меня)
💘2