Задача: вернуть изображение по API
Самое простое решение вернуть byte[]. Сказано - сделано, но... фронт не понимает что это картинка. Печалька...
Начал искать решение и наткнулся на аннотацию @Produces
Ни разу ранее не использовал, но по описанию подходит.
@Produces
Аннотация используется для указания типов MIME-носителей или представлений, которые ресурс может создавать и отправлять обратно клиенту.
Если @Produces применяется на уровне класса, все методы в ресурсе могут по умолчанию создавать указанные типы MIME.
Если она применяется на уровне метода, аннотация переопределяет все @Produces аннотации, применяемые на уровне класса.
Источник
Написал над методом
#annotation
Самое простое решение вернуть byte[]. Сказано - сделано, но... фронт не понимает что это картинка. Печалька...
Начал искать решение и наткнулся на аннотацию @Produces
Ни разу ранее не использовал, но по описанию подходит.
@Produces
Аннотация используется для указания типов MIME-носителей или представлений, которые ресурс может создавать и отправлять обратно клиенту.
Если @Produces применяется на уровне класса, все методы в ресурсе могут по умолчанию создавать указанные типы MIME.
Если она применяется на уровне метода, аннотация переопределяет все @Produces аннотации, применяемые на уровне класса.
Источник
Написал над методом
@Produces({"image/jpeg", "image/png", "image/gif"})
и все заработало.#annotation
👍3
Вчера дали понюхать пороху кафку
Задача: Добавить в топик поле
Срок: 1 день
И так это новый проект, который я в глаза не видел.
Я мысленно приготовил себе веревку, мыло, вазелин... и все что обычно готовят при поверхностно-теоретическом уровне знаний.
По факту все оказалась не так сложно - оказывается надо просто добавить поле в объект и прописать соответствующую строку мапере.
Я не знаю сколько бы я это делал сам, но главный разраб этого проекта объяснил все за 7 минут. Я потратил значительно больше времени что бы скачать и запустить проект. Основной "затратой" по времени оказалось выяснение как это все протестировать...
К вечеру нервы немого успокоились, так внятно и не поняв что же такое топик 😜
#story #kafka
Задача: Добавить в топик поле
Срок: 1 день
И так это новый проект, который я в глаза не видел.
Я мысленно приготовил себе веревку, мыло, вазелин... и все что обычно готовят при поверхностно-теоретическом уровне знаний.
По факту все оказалась не так сложно - оказывается надо просто добавить поле в объект и прописать соответствующую строку мапере.
Я не знаю сколько бы я это делал сам, но главный разраб этого проекта объяснил все за 7 минут. Я потратил значительно больше времени что бы скачать и запустить проект. Основной "затратой" по времени оказалось выяснение как это все протестировать...
К вечеру нервы немого успокоились, так внятно и не поняв что же такое топик 😜
#story #kafka
❤2👍2
Сегодняшний день опять не разочаровал...
Дали новую задачу, и не абы какую, а реализовать модуль интеграции со сторонним сервисом, причем который работает через протокол soap.
Короче вчера была белая полоса...
Дали новую задачу, и не абы какую, а реализовать модуль интеграции со сторонним сервисом, причем который работает через протокол soap.
Короче вчера была белая полоса...
👍1
Почти все, кто ведет разработку на Java, пользуются IntelliJ IDEA.
Есть два плагина которые помогают сделать код визуально более читаемым.
Indent Rainbow
радужная покраска отступов
Сразу видно где что не так, т.к. не правильные отступы подсвечиваются.
Очень полезно если вы не любите пользоваться автоформатированием, а этим как выяснилось страдают многие.
Rainbow Brackets
красит в радужные цвета скобочки
Это не просто красиво, это жутко удобно, т.к. когда смотришь на код (особенно с большой вложенностью) значительно проще выделить блоки.
И еще одна раздражающая особенность настройки идеи по-умолчанию - это абсолютно не заметные полосы прокрутки в темной теме.
Оказывается это решается очень просто - надо включить контрастный скролбар:
#idea #ideaplugins
Есть два плагина которые помогают сделать код визуально более читаемым.
Indent Rainbow
радужная покраска отступов
Сразу видно где что не так, т.к. не правильные отступы подсвечиваются.
Очень полезно если вы не любите пользоваться автоформатированием, а этим как выяснилось страдают многие.
Rainbow Brackets
красит в радужные цвета скобочки
Это не просто красиво, это жутко удобно, т.к. когда смотришь на код (особенно с большой вложенностью) значительно проще выделить блоки.
И еще одна раздражающая особенность настройки идеи по-умолчанию - это абсолютно не заметные полосы прокрутки в темной теме.
Оказывается это решается очень просто - надо включить контрастный скролбар:
Settings -> Appearance & Behavior -> Appearance✅
Use contrast scrillbars
Вот пожалуй три вещи которые сделают так, что на код в идее будет приятно смотреть, если на это код вообще можно смотреть без слез, ну вы меня понимаете....#idea #ideaplugins
👍1
Алгоритм Черепаха и Заяц
Разбирая вчера этот алгоритм понял, что с помощью него можно решить минимум четыре часто встречающиеся задачи со связными списками.
1. Поиск середины
2. Определить цикличен список или нет
3. Найти первый узел цикла (нужна небольшая доработка)
4. Найти последний элемент списка (доработать вариант в п.3)
В заметках расписал немого подробнее.
Мой репозиторий с решениями задач на leetcode - может кому поможет.
#algorithm
Разбирая вчера этот алгоритм понял, что с помощью него можно решить минимум четыре часто встречающиеся задачи со связными списками.
1. Поиск середины
2. Определить цикличен список или нет
3. Найти первый узел цикла (нужна небольшая доработка)
4. Найти последний элемент списка (доработать вариант в п.3)
В заметках расписал немого подробнее.
Мой репозиторий с решениями задач на leetcode - может кому поможет.
#algorithm
👍2
🎓 Развитие
Побитовые операции
Для меня пока достаточно сложно представить, где именно в рабочем процессе можно использовать эту побитовую магию, но при решении задач можно получить некоторый профит.
Самое главное что они выполняются быстрее чем математические.
На данный момент разобрался со следующим:
"Сдвиг вправо"
т.е. по факту это деление на 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Например, если в длинном цикле нам нужно что то делить на 2, то быстрее будет использование сдвига вправо.
5 << 3 = 5*2^3 = 5* 8 = 40
5 << 4 = 5*2^4 = 5*16 = 80
И еще одно "Побитовое И"
простой вариант
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
Маленький шаг для человечества и огромный для меня. 🚀
Задачки решаю простые и подряд - и поверьте это не всегда easy. 🔫
В голове кое что поменялось 🙃, особенно в плане чтения задания и кеширования повторяющихся вычислений. 🧐
Даже пришлось вспоминать что-то из комбинаторики. 🥸
Так же начал проходить первый уровень образовательного плана LeetCode 75. ⏱
Кроме того, вписался в ежемесячный челендж и делаю задачи из него. А тут бывают и хардовые задания.🤯
С одной до сих пор справится не могу - 1473. Paint House III 🥵
решение вроде есть, но на тестах упираюсь в Time Limit Exceeded, 🤬
так что если у кого есть мысли по этой задаче делитесь...
#leetcode
👍2
Вчера получил первую медальку🥇 на leetcode за прохождение первого учебного плана.
В борьбе за месячную медальку споткнулся о две хардовые задачи:
Задача от 8 числа
Задача от 23 числа
Причем в первой всего один вариант и больше нет мыслей, а во второй ЧЕТЫРЕ варианта 🤯
В обоих задачах на тестах Time Limit Exceeded 🤬
В последней вроде есть еще один вариант, но пока не могу понять как его использовать. 😢
Новый учебный план открывать не буду, пойду поучу теорию, а то вдруг завтра на собесе опять спросят: "Почему JAVA???"...👻
#leetcode
В борьбе за месячную медальку споткнулся о две хардовые задачи:
Задача от 8 числа
Задача от 23 числа
Причем в первой всего один вариант и больше нет мыслей, а во второй ЧЕТЫРЕ варианта 🤯
В обоих задачах на тестах Time Limit Exceeded 🤬
В последней вроде есть еще один вариант, но пока не могу понять как его использовать. 😢
Новый учебный план открывать не буду, пойду поучу теорию, а то вдруг завтра на собесе опять спросят: "Почему JAVA???"...👻
#leetcode
👍1👏1
Собеседование++
Последние несколько недель ищу работу. 👀
Статистика по хэ-хэ такова:
Полсобеса - это собес в телеге🔥
📌 Краткий список вопросов с сегодняшнего:
✅ Методы Object
✅ HashCode & Equals и правила переопределения
✅ Equals - Основные принципы
✅ Чем черевато
✅ Чем отличаются
✅ Почему реляционные так называются
✅ Что такое инверсия управления
✅ Как заинжектить бин
✅ Что такое транзакция
На вопросы про многопоточку сразу сказал пас. 🙅♂️
Но самый интересный вопрос был от HR'а в начале собеса: Не планируете ли переезжать за рубеж? 🥳
После него все прошло просто замечательно...
#inteview
Последние несколько недель ищу работу. 👀
Статистика по хэ-хэ такова:
Отправлено откликов: 53
Даже не прочитано: 12
Отказов: 12
Собеседований: 2,5
Полсобеса - это собес в телеге🔥
📌 Краткий список вопросов с сегодняшнего:
✅ Методы Object
✅ HashCode & Equals и правила переопределения
✅ Equals - Основные принципы
✅ Чем черевато
hash = const
✅ Основные типы Коллекций, примеры реализаций✅ Чем отличаются
List, Set, Map
✅ Какие типы БД бывают✅ Почему реляционные так называются
✅ Что такое инверсия управления
✅ Как заинжектить бин
✅ Что такое транзакция
На вопросы про многопоточку сразу сказал пас. 🙅♂️
Но самый интересный вопрос был от HR'а в начале собеса: Не планируете ли переезжать за рубеж? 🥳
После него все прошло просто замечательно...
#inteview
👍3