Java Mentor – Telegram
Java Mentor
294 subscribers
173 photos
48 videos
1 file
79 links
Download Telegram
Всем привет!

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

Все это в амбициозных планах, которые разбиваются о мою ленивую жопу 🍑

Можно было бы списать все на большую загруженность, сбитый режим, нехватку времени, магнитные бури и на Венеру не в том доме, но... есть подозрение, что виновник торжества где-то внутри, а не снаружи 🗿.

Поэтому, пока что, вместо сочного видоса или моего бородатого лица в кружопеле, я подготовил для вас маленькую статейку на тему того,

Почему 0.1 + 0.2 != 0.3 в Java?

Судя по распределению голосов выше - победил Трамп почитать ее было бы полезно всем, кто тыкнул не в false 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍6🔥4🤣2👎1
Иногда мне пишут: Анзор, интеграция поломалась.

Тут несколько вариантов:
1. Интеграция просто выключена
2. Интеграция поломалась
3. Увольняться

Увы, пока что вариант 3 неприемлем, так что разбираемся с тем, включена ли интеграция или выключена.

Стоит сказать, что данная интеграция запрашивает данные из внешнего сервиса и сохраняет в нашу базу.

Запрашивает прямо селектом из внешней базы.

И как-то раз, мы всю базу внешнему сервису и положили.

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


Ну так вот, первый переключатель находится в таблице системных настроек. В нем простой true/false. Чтобы можно было включать и выключать в рантайме.

А второй - в application.yml

Тоже true/false пропертя.

Над сервисом, который отвечает за логику интеграции стоит @ConditionalOnProperty и сервис интеграции зависит от этой самой проперти.


А теперь загадка:
Как посмотреть с каким значением этой проперти сервис задеплоили на прод?

Приложуха крутится в докере, к нему есть доступ.

Актуатора нет(

Накидывайте варианты, и позже расскажу как я выучил команду docker cp ⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥43😨1
Всем привет!

Пропал на какое-то время. Буду исправляться.

Сейчас в разработке обучающий видос по ACID и Transactional 🔥

Одна из любимых тем на собесах 🤌

Хочу максимально упростить освоение этой приблуды 🤓

Расскажу про уровни изоляции транзакций.

Разберем транзакции в Spring
различные варианты propagation аннотации Transactional.

Выложу ориентировочно завтра, так что до встречи на ютубе 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥174👍3
This media is not supported in your browser
VIEW IN TELEGRAM
👍96👌2
Так, ребят, всем привет!

Я короче понял, что постов про Java делать не хочу.

1. Есть дофига каналов, где это итак делается. Например вот
2. Вся эта инфа итак есть в инете в больших объемах. И как-то изгаляться, чтобы написать как-то иначе о том, что уже 1000 раз обсосали - ну такое себе.

Несмотря на это я хочу приносить пользу, поэтому:

1. У нас есть чат, где вы можете задать вообще любой около-джавный вопрос - и получить ответ (более менее адекватный)
2. Мне понравилось делать видосы на ютюб. Вот там буду рассказывать и показывать что-то полезное (возможно)

А что тут?

Здесь хочу писать о себе, делиться мыслями, страхами, успехами и неудачами. Короче обычные, человечные, эмоциональные посты.

А то, чесслово, уже устал оправдываться перед собой за то, что посты не пишу про фишки джавы и тонкости спринга. Не хочу)
🔥14👍82
Я, в общем-то, неплохой прогер. Но когда дело касается железа, я вообще нуб-нубяра.

Мне всегда было влом разбираться в железе, в том, какие видюхи топ, и что такое DDR3-4-5. А что у процов есть поколения — я вообще понял недавно.

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

Когда я закончил универ, я купил себе комп за 50к. Б/у. Он был хороший. До тех пор, пока я не решил его почистить. После моей чистки сгорело всё: материнка, видюха, проц, звуковая карта, оперативка. 🔥💀

И я заменил это всё чем-то, что влезло в корпус и в мой бюджет:

🖥 Материнка
ASUSTeK COMPUTER INC. B85M-E Rev X.0x microATX

⚙️ Проц
Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz, 4 cores

🧠 16 ГБ ОЗУ DDR3

⚡️ БП
Corsair VS 650W

🎮 Видюха
Radeon RX 570 Series

Как говорится: «Я его слепила из того, что было, ну а то, что было, то и полюбила».

Любовь эта длилась долго. Даже не любовь. Такой пресный брак, без радостей супружеской жизни. 😅

Я мог программировать — и хорошо. Ну а потом я устроился в Dins, и там мне дали ноут мечты:

💻 ThinkPad T14, i7 и 32 ГБ оперативки.

Так я и жил, пока не начал заниматься монтажом. И тут мои девайсы стали давиться объёмами возложенных на них задач. 🎬

Установка «я не могу купить себе новый комп, потому что это очень дорого» мешала наслаждаться процессом.

Я всё время искал какие-то обходные пути. Открыл для себя сервисы облачного гейминга, где можно арендовать мощное железо и работать условно через RDP.

Юзал два таких сервиса:
🎮 Warplay, Gatoga.

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

Но я арендую квартиру, и инет тут не быстрый. Так что приходилось мириться с фризами и обрывами соединения. 📶😩

Терпелка у меня не резиновая, и в какой-то момент лопнула.

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

Потом открыл Озон и увидел, что там прям топовый комп продают за 100+ 😳.

Я, конечно, не стал там ничего брать и попросил помощи у брата, который шарит за железо.

И он помог мне собрать комплектующие, суммарно на 131к.

💰 Жёну успокоил факт, что я потрачу на 170к меньше, чем мог, да и я сам остался довольным 😎.

Погамал в игрушки, монтаж летает 🚀.

Хочется в это всё впихнуть полезную мысль, которую я для себя открыл.

Часто мы думаем, что не можем что-то сделать. Если поменять угол восприятия и задаться вопросом: «А как я могу это сделать?», то, скорее всего, окажется, что невозможность рассеется, и вы увидите разные варианты обретения желаемого.

Всем пис, обретайте желаемое! И если интересно подробнее про новый комп узнать — напишите в комментах! 😃
❤‍🔥8👍8🔥7
Онлайн конференция по Spring. Бесплатно. Сейчас

Буквально только что узнал, что минуты через 3 начнется конференция по Spring на русском языке.

Если кому интересно, залетайте сюда:

https://springnow.ru
👍4🔥4
Вопрос, на который я не ответил на собесе 👩‍💻

Короче, смотрите, все знают, что нельзя удалять из списка элементы в for-each цикле 👎

А если не знают, то теперь знают.👍

Если внутри что-то удалить из списка (или добавить) будет атата: ⚠️ConcurrentModificationException

Когда мы итерируемся по коллекции через for-each , Компилятор преобразует for-each в использование Iterator, как если бы код выглядел так:

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
System.out.println(item);
}


И даже если мы возьмем итератор:

Iterator<String> iterator = list.iterator();

Добавим что-то в список:

list.add("B");


Пробежимся итератором по списку:

while (iterator.hasNext()) {
String item = iterator.next();
System.out.println(item);
}




На первой же итерации в методе next() получим ту же бяку: ⚠️ConcurrentModificationException 💩


Вопрос: как итератор понимает, что список модифицировали?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍31
В общем да, налутал вопросов с рейда на собес.
Поделюсь еще одним. 🪙

Представим себе, что у нас есть два синхронизированных метода:

class WTF { 
public synchronized void wtf1() {
System.out.print(" wtf - 1 ");
}

public synchronized void wtf2() {
System.out.print(" wtf - 2 ");
}
}


Вопрос:
Могут ли методы wtf1() и wtf2() выполняться одновременно разными потоками?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5
Я пожалел, что не знал этого с утра 🙈

Сходил на еще 1 собес, к тем же ребятам.

Из того, на что можно было бы лучше ответить - способы блокировок в бд, а именно select for update 👩‍💻

Почитайте, будет полезно.

А лучше не просто почитайте, а представьте, что есть таблица order с полями:
id
amount
status


Статус может быть PENDING, PROCESSED.

Задача - селектнуть все записи со статусом PENDING и обновить на статус - PROCESSED

Важный момент!
Делать это необходимо в нескольких потоках.

Т.е. 1 поток - 1 обработчик записей

Вопрос

👩‍💻 Какой селект написать для каждого обработчика, для того, чтобы организовать параллельную обработку записей?

Обработчики не знают друг о друге, их может быть от одного до N (количество не важно)

Хинт в начале поста закинул. Развлекайтесь)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53👍2
Шпаргалка по Kafka.pdf
8.7 MB
🅰️🅰️🅰️🅰️🅰️


Всем привет!
Ловите шпору по кафке, надеюсь будет полезно 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥152👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥131
Не будьте равнодушными к своей работе, особенно если это ваша первая работа.

Это разбивает сердце лидам 💔

И приводит к увольнениям 😅

Подробности расскажу позже

Голосовуха естественно выложена с согласия голосообладателя
👍1
Java Mentor
Не будьте равнодушными к своей работе, особенно если это ваша первая работа. Это разбивает сердце лидам 💔 И приводит к увольнениям 😅 Подробности расскажу позже Голосовуха естественно выложена с согласия голосообладателя
Подробности.

Был у нас разработчик, новенький во всех смыслах 🔤🔤🎆

К слову я его собеседовал, и рекомендовал не делать ему оффера. 🌟

Но наше руководство, ввиду своей терпимости к альтернативно одаренным, решило иначе. 🤓

Вопросы к работе человека возникали не в первый раз. 🤔

Многие вещи были непонятны. Но это и не страшно. Это и не плохо. Это нормально. Не бойтесь тупить. Думаю достаточно дисклеймеров для всех мягкосердечных, поехали дальше. 🥰

Самое страшное, что у человека отсутствовало желание разобраться в непонятном вопросе.😐

Либо он свое желание не транслировал, и всячески удерживал себя от реализации этого желания 🗿

Голос, который транслирует душевную боль в голосовухе выше, принадлежит нашему тех лиду, который в силу своей должности, обречен делать ревью всего говнокода, который мы порождаем. 😭

Что вызвало такие эмоции?

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

Человек (не знаю как по другому его называть, имена палить не хочется) оценил задачу в 4.5 дня.

В качестве результата работы был выдан копипаст старого кода.😂

Я сам не до конца понимаю, как все это произошло, и передаю, так сказать, со слов очевидца.

Когда у человека стали спрашивать на что были потрачены 4.5 дня, человек попросил уволиться одним днем.🤩⭐️👋

Теорию о том, что опыт нарисован в резюме, выдвинул я. Все таки очень сложно производить впечатление человека с опытом в три года, когда этого опыта нет совсем.

Но что поделать, к этому привели рынок, реальность и ретроградный меркурий. 🃏

Кто-то готов с этим мириться, кто-то нет. Суть поста не в этом. А в том, чтобы… ну послушайте голосовуху выше)
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣8😱6