JavaWhiteBook
92 subscribers
202 photos
4 videos
81 links
Привет!
Меня зовут Алексей. Мне 50.
Я третий год работаю java-разработчиком.
В этом канале я рассказываю про трудности-печали, с которыми сталкиваюсь, а также радости-победы, которые случаются.
Только практика, никакой теории, и очень простыми словами.
Download Telegram
Сегодня на конфе в Перми...
😜😝👍
🔥9👍2
🛠 Трудовые будни

Сегодня работу работаю не из дома, а из отелю в Москве.
А всё почему, а потому что завтра корпоратив 🔥🔥🔥

Тем кому интересны мои небольшие похождения можно смотреть тут
👍2
🛠 Трудовые будни

Всем привет!

Вчера мне дали задачу по кафке!!!

Что имеем:
Первый сервис создает запись в БД, а другой ее должен апдейтить.
Запись и апдейт происходят через другой сервис.
Эти сервисы комуницируют через кафку. 🪄💫

Проблема:
Так вот, бывает такая фигня, что апдейт прилетает раньше, чем создание и все ломается. 🤬

Предполагаемое решение:
Ждать ответа от сервиса записи в первом сервисе, и после получения отправлять сообщение во второй с разрешением на апдейт. 🤞

На обсуждении мне сказали: "Все очень просто! (тут уже стало страшно) Создаешь топик, в первом продюсер, во втором консьюмер. Делаешь логику. И все..." 🤦‍♂️

Чтож, пошел делать 😬
🔥7
Ровно год назад я вышел на текущую работу, и мне до сих пор нравится. 🥳

Очень приятно когда люди вокруг обременены интеллектом. Кстати коллектив достаточно молодой и активный 🏀🏂🏄‍♂️🚴

Большинство задач интересные и не "кровавые". 💥
Из до сих пор не познанного из благ это ДМС и премии.
Думаю что всё и впереди. 😁

Не могу сказать что я сильно вырос за этот год, но то что точно стал увереннее в своих знаниях, это точно. 🧐

На вопрос: Рассматриваете предложения о смене места?
Я искренне отвечаю: Нет!

А вам нравится где вы работаете и какими задачами занимаетесь?
👍7
🎓 Развитие

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

Дома как раз почти закончил ремонт, поэтому можно безнаказанно переключиться на учёбу. 😜

А раз так - сегодня утро начал с покупки новой книжечки. 📖

А что вы сейчас читаете или учите?

#algorithm
👍6
🎓 Развитие

Утром прочитал первую главу 🤔

Пока ничего нового не узнал 🤗

Но заметочку все же сделал 🤭

Кто по картинке угадает что за алгоритм?

#algorithm
Если кому интересно можете присоединятся
идет прямо сейчас 😏
🎓 Развитие

Осень. Яндекс. Алгоритмы.

Кто хочет пошевелить мозгами присоединяйтесь! 🥳

В прошлом году было очень весело и интересно.
Надеюсь что в это они придумают что-то не менее увлекательное!!! 🤞

И сразу - на финальный спринт я не пойду. 🙈

#algorithm_training
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
🎓 Развитие

Пара инсайтов на тему "Учите матчасть!"

И так задача первая
список каких либо элементов надо "нарезать кусками".

Конечно нужно написать свой метод и гордится, до тех пор пока не узнаешь про класс ListUtils из пакета org.apache.commons.collections4
и его метод:
partition(List<T> list, int size)

После этого просветленный удаляешь 40 строк своего уже не столь восхитительного кода и заменяешь его одной строкой.

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

Что делал я, и тоже гордился собой, как хранилище использовал HashMap и хранил ключи в отсортированном массиве, искал в нем бинарным поиском ключ и если не находил, то брал ключ на котором остановился поиск.

Но после того как узнаешь про методы TreeMap:
floorKey(K obj), lowerKey(K obj) и higherKey(K obj)
можно много строчек по удалять.
До сих пор не понимаю, как я их пропустил мимо ушей, но спасибо задачкам на литкоде...

#учитематчасть
🔥7
23. Merge k Sorted Lists

Сегодня внезапно порешал и главное решил хародовую задачу. 🥳

Получилось не сразу.
Сначала пошел в лоб - загонял элементы в массив и его сортировал. А уже из него брал меньший и засовывал в результирующий список.
Получилось плохо и по времени и по памяти. 🤦‍♂️

Потом после поиска структур данных, которые хранят отсортированные данные попробовал PriorityQueue - и сразу улучшил время почти в три раза.
Но дойти до заветных 4мс так и не смог. 🤔

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

А вы решали эту задачу
🔴 23. Merge k Sorted Lists?

#leetcode #algorithm
👍3
Давайте разомнем мозги!!!

Вчера начались тренировки по алгоритмам 4.0

Открылись задачи для разминки.
10 задач.
Как обычно что-то яндексовском диалекте 🤦🏻‍♂️

Постараюсь сегодня порешать.🤯

Есть еще кроме меня "больные на голову" люди кто участвует

#algorithm_training
Ну вот и размял мозги! 🤯

За два дня решил почти 10 задач.

Парочка была достаточно простыми.
Три оказались сложными.
Особенно последняя. 🫣

Вроде все сделал по феншую - с использованием динамического программирования.
Но во временные рамки так и не влез. 🤬
Подумаю об этом завтра.

Сегодня была первая лекция по тренировкам.
Тема: Сортировки: быстрая, слиянием и поразрядная.
Вроде ничего нового не услышал, и все вспомнил. 🧐

Дали ДЗ - 5 задач, думаю что вспомню еще лучше, ну или проверю как помню !

#algorithm_training
Первую домашку сделал...

Вроде все просто и понятно, но все равно просидел почти 7 часов...

Такое ощущение что кто-то хочет есть мой мозг.

#algorithm_training
🔥1😁1
Сейчас слушал лекцию и услышал замечательный лайхак!

Начну из далека - "... выход в вещественную математику почти всегда плохо, в итоге могут возникать проблемы с потерей точности."

Так чему это я, не редко приходится округлять вверх.
Например, 10/3 мы хотим получить 4.
Но по факту 10/3 = 3.333..4, это вещественное число...
Нужно что придумывать...
Как-то обрабатывать хвостик...
Короче типа печалька...

А вот как округлять вверх с помощью целочисленной арифметики:
(divisible + divider - 1) / divider;


Наш пример:
(10 + 3 - 1) / 3 = 12/3 = 4

Математика это круто❗️
А когда у вас был последний инсайт⁉️
🔥3
«Стою на асфальте я в лыжи обутый.
Толь лыжи не едут, толь я – долбанутый»,


Продолжаем тренироваться на кроликах алгоритмах 🤡

Третья домашка:
A. Дейкстра
B. Дейкстра с восстановлением пути
C. Быстрый алгоритм Дейкстры
D. Автобусы в Васюках
E. На санях

Четвертый день "сани не едут"! 🤦‍♂️

За то теперь знаю минимум два определения математического дерева.
Зачем? Потому что задача вроде бы на графы, но как мы знаем
"... брюки легким движением превращаются..."
так вот так же, граф превращается в дерево. 🪄

Время еще есть - думаю найду решение.

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

Правильная постановка задачи это почти половина решения, вы согласны?

#algorithm_training
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Очень хочется похвастаться. 🎉🎉🥳
Речь о тренировках по алгоритмам

Во-первых, решил все задания в четвертой домашке с первого раза. 🤘

Правда без косяков не обошлось.
Один раз надо было быть внимательнее при копировании кода. 🤦‍♂️
А второй тонкости из встроенного кампилятора - ну кто ж знал что он не понимает приватные статически классы. 🫤

И во вторых, я никогда не был в первой сотне рейтинга участников.
Это конечно может измениться, но сейчас очень приятно.
👍👍👍

Всем удачной недели!!!

#algorithm_training
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19
Ура, для меня тренировки закончены 😇

Они бы закончились еще в прошлую субботу, если бы повезло.

У меня не ехали сани .
Причем не ехали дней 10ть.
Причем как не ехали, ехали, но кое где на тестах спотыкались. 🤦‍♂️

Вчера ночером психанул, снес все что написал до этого и начал заново.
Конечно нашел ошибки, понял что до конца не понял алгоритм Дейкстры.
В итоге все заработало. 👍

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

#algorithm_training
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12