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

Задача: Добавить в топик поле
Срок: 1 день

И так это новый проект, который я в глаза не видел.
Я мысленно приготовил себе веревку, мыло, вазелин... и все что обычно готовят при поверхностно-теоретическом уровне знаний.
По факту все оказалась не так сложно - оказывается надо просто добавить поле в объект и прописать соответствующую строку мапере.
Я не знаю сколько бы я это делал сам, но главный разраб этого проекта объяснил все за 7 минут. Я потратил значительно больше времени что бы скачать и запустить проект. Основной "затратой" по времени оказалось выяснение как это все протестировать...

К вечеру нервы немого успокоились, так внятно и не поняв что же такое топик 😜

#story #kafka
2👍2
Сегодняшний день опять не разочаровал...

Дали новую задачу, и не абы какую, а реализовать модуль интеграции со сторонним сервисом, причем который работает через протокол soap.
Короче вчера была белая полоса...
👍1
Почти все, кто ведет разработку на Java, пользуются IntelliJ IDEA.
Есть два плагина которые помогают сделать код визуально более читаемым.

Indent Rainbow
радужная покраска отступов
Сразу видно где что не так, т.к. не правильные отступы подсвечиваются.
Очень полезно если вы не любите пользоваться автоформатированием, а этим как выяснилось страдают многие.

Rainbow Brackets
красит в радужные цвета скобочки
Это не просто красиво, это жутко удобно, т.к. когда смотришь на код (особенно с большой вложенностью) значительно проще выделить блоки.

И еще одна раздражающая особенность настройки идеи по-умолчанию - это абсолютно не заметные полосы прокрутки в темной теме.
Оказывается это решается очень просто - надо включить контрастный скролбар:
Settings -> Appearance & Behavior -> Appearance
Use contrast scrillbars

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

#idea #ideaplugins
👍1
Ну что, со вчерашнего дня я официально безработный.
Немножко отдохну и начну искать новое место.
Как говорится - пойду в перед к новым горизонтам...
Алгоритм Черепаха и Заяц
Разбирая вчера этот алгоритм понял, что с помощью него можно решить минимум четыре часто встречающиеся задачи со связными списками.
1. Поиск середины
2. Определить цикличен список или нет
3. Найти первый узел цикла (нужна небольшая доработка)
4. Найти последний элемент списка (доработать вариант в п.3)

В заметках расписал немого подробнее.

Мой репозиторий с решениями задач на leetcode - может кому поможет.

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

Побитовые операции

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

На данный момент разобрался со следующим:
"Сдвиг вправо"
25 >> 1 = 12,
т.е. по факту это деление на 2 в указанной степени 25/2 = 25/2^1
25 >> 2 = 2/2^2 = 25/ 4 = 6 
25 >> 3 = 2/2^3 = 25/ 8 = 3
25 >> 4 = 2/2^4 = 25/16 = 11

"Сдвиг влево"
5 << 1 = 10
т.е. это умножение на 2 в указанной степени 5*2^1 = 5*2
5 << 2 = 5*2^2 = 5* 4 = 20
5 << 3 = 5*2^3 = 5* 8 = 40
5 << 4 = 5*2^4 = 5*16 = 80

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

И еще одно "Побитовое И"
простой вариант n & 1 и можно определить четное число или нет, работает быстрее чем n % 2.
1 & 1 = 1
2 & 1 = 0
3 & 1 = 1
4 & 1 = 0

Ну разве не магия!!!

Побитовых операций еще много, тут вроде не плохо написано
👍1🔥1
Решил 100 задач на LeetCode

Маленький шаг для человечества и огромный для меня. 🚀

Задачки решаю простые и подряд - и поверьте это не всегда easy. 🔫
В голове кое что поменялось 🙃, особенно в плане чтения задания и кеширования повторяющихся вычислений. 🧐
Даже пришлось вспоминать что-то из комбинаторики. 🥸

Так же начал проходить первый уровень образовательного плана LeetCode 75.

Кроме того, вписался в ежемесячный челендж и делаю задачи из него. А тут бывают и хардовые задания.🤯
С одной до сих пор справится не могу - 1473. Paint House III 🥵
решение вроде есть, но на тестах упираюсь в Time Limit Exceeded, 🤬
так что если у кого есть мысли по этой задаче делитесь...

#leetcode
👍2
Вчера получил первую медальку🥇 на leetcode за прохождение первого учебного плана.

В борьбе за месячную медальку споткнулся о две хардовые задачи:
Задача от 8 числа
Задача от 23 числа
Причем в первой всего один вариант и больше нет мыслей, а во второй ЧЕТЫРЕ варианта 🤯
В обоих задачах на тестах Time Limit Exceeded 🤬
В последней вроде есть еще один вариант, но пока не могу понять как его использовать. 😢

Новый учебный план открывать не буду, пойду поучу теорию, а то вдруг завтра на собесе опять спросят: "Почему JAVA???"...👻

#leetcode
👍1👏1
Собеседование++

Последние несколько недель ищу работу. 👀
Статистика по хэ-хэ такова:
  Отправлено откликов: 53
Даже не прочитано: 12
Отказов: 12
Собеседований: 2,5

Полсобеса - это собес в телеге🔥

📌 Краткий список вопросов с сегодняшнего:
Методы Object
HashCode & Equals и правила переопределения
Equals - Основные принципы
Чем черевато hash = const
Основные типы Коллекций, примеры реализаций
Чем отличаются List, Set, Map
Какие типы БД бывают
Почему реляционные так называются
Что такое инверсия управления
Как заинжектить бин
Что такое транзакция

На вопросы про многопоточку сразу сказал пас. 🙅‍♂️

Но самый интересный вопрос был от HR'а в начале собеса: Не планируете ли переезжать за рубеж? 🥳
После него все прошло просто замечательно...

#inteview
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Сортировка слиянием.

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

📌 Описание алгоритма на wiki

Вспомнить, какие вообще есть алгоритмы сортировки, можно тут 👈

Что касается ежемесячного челенжа на leetcode - осталось три дня.
Сегодня выплыла легкая задача, которая была сделана за 5 минут. 😜
Кажется, что медалька стала ближе. Посмотрим, какие задания дадут в последние дни.
Очень надеюсь 🙏🏻, что за выходные смогу победить покраску домов. 🤬

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

#algorithm
👍1
Победа...
но только моя личная 🥇

Решил я все-таки эту сложную задачу про покраску домов 👏
Но, к сожалению, челленж провалил - у меня не осталось возможности купить билетик, чтобы мне зачли не своевременное решение. 😭
Не обратил внимания, что билетиков ограниченное кол-во, и использовал все возможности ранее. 🙄

#leetcode
👍1
Закончил свои записки по кору.
Если найдете ошибки — обязательно пишите.
Если считаете, что что-то нужно добавить, то тоже пишите.
Если кому-то когда-то поможет — буду очень рад.
Напомню, что контент адаптирован под мобильный, собственно, с этого все и началось...

#whitebook
👍3🔥2