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

И опять-опять про идею.

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

Кто какими лицензиями пользуется и пользуется ли вообще?

#idea
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🛠 Трудовые будни

Стояла задача в сервисе принимать команды, которые имеют разную структуру.
Т.е. в одном месте из json получить разные объекты

Я, конечно, сделал, и оно, конечно, работает, но...
На ревью меня завернули и отправили читать про полиморфный json 😮

Очень интересный зверь 🤓

Настраивается просто:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type", visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = AddCommand.class, name = "AddCommand"),
@JsonSubTypes.Type(value = DeleteCommand.class, name = "DeleteFortsLimitsCommand")
})
public interface Command {
EventType getType();
}

public abstract class BaseCommand implements Command {...}

public class AddCommand extends BaseCommand {...}


т.е. в полученном json ищем поле (в моем случае type) и по его значению выбираем класс, в который будет произведена десереализация. 🔥

Почитать можно тут

А вы сталкивались с таким зверем ⁉️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🎓 CodeReview

На собесах иногда просят сделать код-ревью.

Набросал себе схему, как проводить это самое ревью.

1️⃣ Корректность работы
(т.е. что делаем, что ожидаем, проверяем, что закрыли ресурсы, и т.п.)

2️⃣ Обработка ошибок
(все ли обработаны и в нужном ли месте)

3️⃣ Алгоритмы и перфоманс
(можно ли сделать лучше)

4️⃣ Read-n-Code Quality
(кривые имена, дублирование кода, и т.д)

Ничего не забыл ⁉️

Если есть примеры кода, которые вам давали или вы давали на собесе, бросьте в коменты посмотреть

#interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Сегодня почти случайно попал на IT Community Day Сбера
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Приветственный кофе брейк
👍2🔥1
Первая тема
👍2
Второй пошел 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Немного видов с 14 этажа
🔥4
Ну хоть одно знакомое лицо ☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Очередной кофе-брейк и маленький подарочек
👍3
Третья част марлезонского балета 😜
Руководитель офиса Яндекс в Екатеринбурге и чувак и Т-Банка на тему почему у нас все сложно при найме
Много слов 😴
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📖 WhiteBook

Последнее время приходится достаточно много повторять и доучивать.
Как обычно заметочки записываю в книжечку. ✏️

Сегодня закончил заметки по "SQL и Базы данных" 🙂

Если будет время - посмотрите, почитайте...
Любые комментарии приветствуются ‼️

#whitebook
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
🎓 Развитие

Начались очередные тренировки по алгоритмам.
Я опять вписался. 🤦‍♂️
Но мою инициативу никто особо не поддержал, т.ч. в этот раз похоже буду в одиночку. 🦸‍♂

Первая лекция была про тестирование, и последнее две задачи были связаны с написанием тестовых кейсов. 😱
Вроде не сложно, только сдать долго не получалось потому что обратной связи просто не. Т.е. совершенно не понятно почему твой кейс не принят.😦

На первый этап ушло около 6ти часов что в принципе я считаю очень не плохо 💪

А вам нравятся такие тренинги или как обычно времени нет ⁉️

#algorithm_training
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
😱 Типа простые задачки...

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

И так школьная задачка по информатике. 😱

У меня в шкафу в двух ящиках в одном лежат футболки и другом шорты.
Футболки и шорты двух разных цветов. Для простоты - красные и синие.
Известно количество по каждому цвету A и B - футболки, С и D - шорты.
Вопрос: Если вытаскивать "неглядя", сколько минимум нужно вытащить футболок и шорт, что бы гарантированно получить пару одного цвета.
(Выдать надо пару [N, M] - кол-во футболок и шорт). 🩳👕

И так что бы гарантированно получить футболки разных цветов надо вытащить max(A, B)+1, а шорт - max(C, D)+1.
Т.о. что бы создать пару надо вытащить только одни шорты и одну футболку ответственно:
[max(A, B)+1, 1] и [1, max(C, D)+1]

И ответом будет вариант где общее кол-во вещей меньше.

Вроде все очевидно, но этот вариант решения у меня не прошел. 😫
Я задумался почему? Скорее всего что это гарантированный, но не минимальный вариант. 🤦🏻‍♂️

Как можно еще гарантированно получить пару одного цвета?
Т.к. мы знаем кол-во вещей каждого цвета то можно взять на одну вещь больше - что гарантирует нам два цвета.
Если у нас A красных футболок мы берем A + 1 футболок, а шорт берем С + 1.
Т.о. получаем еще варианты
[A + 1, C + 1] и [B + 1, D + 1]


Теперь надо выбирать из этих четырех вариантов.

Кстати еще надо не забыть про крайний случай, т.к. нигде не сказано что кол-во больше 0;
Т.о. варианты актуальны если:
[max(A, B) + 1, 1] - A > 0 и B > 0
[1, max(C, D) + 1] - C > 0 и D > 0
[A + 1, C + 1] - В > 0 и D > 0
[B + 1, D + 1] - A > 0 и C > 0

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

Ну и выбираем вариант где N + M будет минимальной.

Как вам задачка? Хочется обратно в школу ⁉️

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