JVM Brain | Java&Kotlin
263 subscribers
106 photos
34 videos
1 file
130 links
Говорим о Java и пишем на Java (вообще не только).

Видео, статьи, обсуждения интересных тем.
Download Telegram
Интересна ли тема вакансий или прикрываем лавочку? Выбор за вами )
Anonymous Poll
80%
Интересна
14%
Интересна, но не стажерские или джуновые позиции
6%
Не интересуют вакансии
NoSuchFieldError - интересная ошибка, с которой меня попросили сегодня помочь разобраться. Возникает, когда наше приложение не может найти какое-либо статическое поля другого класса, несмотря на то, что в исходниках есть ссылка на него.

Обычно возникает при использовании сторонних библиотек, когда они предполагают транзитивные зависимости. Например, в классе MediaType spring-web в одной из версий было добавлено поле APPLICATION_GRAPHQL, логично, что при использовании в нашем проекте версии ниже приложение его просто не найдет.

Варианты решения:
1. Явно указываем в наших зависимостях версию той самой библиотеки.
2. Поднимаем версию библиотеки, которая тянет ту самую проблемную версию (тут надо смотреть а используется ли нужная версия на самом деле) - в контексте спринга, например, надо поднять версию spring-boot
👍4
В Java 21 расширили pattern matching - теперь можно использовать в конструкциях switch-case
static String formatterPatternSwitch(Object obj) {
return switch (obj) {
case Integer i -> String.format("int %d", i);
case Long l -> String.format("long %d", l);
case Double d -> String.format("double %f", d);
case String s -> String.format("String %s", s);
default -> obj.toString();
};
}
JVM Brain | Java&Kotlin
Пора бы и спойлернуть, работы конечно полно еще, но для ознакомления жаждущих http://jvmbrain.ru/courses/java-web . Видите превью ссылки? Это ответ на вопрос почему я все же подумываю о переезде на Next.js - сейчас страница рендерится на сервере (SSR) и чтобы…
Всем ожидающим. Старт перенесён на 15 августа, закрытая группа в телеграм будет сформирована ближе к старту. Для тех, кто мало со мной знаком и сомневается просто посмотрите в канале записи по тегу #отзывы - в комментариях можно будет найти ответы на вопросы.
👍1
Варианты форматирования строк в Java

String text = "example";
String.format("%s formatted text", text);


"%s formatted text".formatted(text);

STR."\{text} formatted text"; // новая фича String Templates появилась в Java 21


Пользуетесь ли форматированием и каким из вариантов?
Немного из жизни разработки. С одной стороны теряешь толкового разработчика, а с другой стороны рад за него, когда уходит в другую компанию с повышением зп в 2,5 раза, особенно, если он вырос под твои руководством и твой вклад в это развитие тоже был. Растить кадры все же приятное дело )
👍7
А еще сегодня я понял один парадокс - компания в состоянии взять дополнительных разработчиков в команду, но, если сказать, что будешь работать за двоих-троих, то они совсем не готовы платить тебе их зарплату дополнительно (повышать на совокупную или хотя бы близко к ней сумму).

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

Внимание вопрос - где логика?
👍2
У кого тут не было идей своего проекта - вот даже придумали все за вас ) осталось только реализовать, пусть криво и на коленке, но зато какой это будет опыт

https://sineys.ru/?utm_source=codenrock&utm_medium=email&utm_campaign=sineys2024&utm_term=announcement
Как вам замедление ютуба, кстати? Не мешает смотреть в том числе мои новые видео?
Многие из нас (надеюсь) знакомы с семантикой ACID хранилищ данных (Atomicity, Consistency, Isolation, Durability - атомарность, согласованность, изолированность, долговечность), но есть еще и другая, которая позволяет хранилищам обрабатывать бОльшие объемы данных и транзакций - BASE (Basic Available, Soft state, Eventual Consistency - доступность в большинстве случаев, неустойчивое состояние, согласованность в конечном счете).

Большинство систем, полагающихся на семантику BASE, основаны на репликации с несколькими "хозяевами", где операции записи могут быть выполнены для разных процессов многопоточно, а также имеется механизм разрешения конфликтов, зачастую довольно простой - "кто позже, тот и победил".
👍3
Самое время продолжить чтение полезных книг. Мне казалось все интересное было в начале, но, кажется сюжет закручивается в сторону решения прикладных задач
https://yandex.ru/yaintern/backend нашел очередную возможность стажировки для начинающих, вся информация по ссылке

Только заранее выделите время на тестовое задание
JVM Brain | Java&Kotlin
https://youtube.com/shorts/fRtFYPdbt3I?feature=share
Почему было снято это видео.
Часто, в рамках переработки требований к продукту мы меняем и поведение, а это в свою очередь влияет на тесты. Заходишь ты в упавший тест и пробуешь понять "а что здесь проверяется" - название ни о чем не говорит, описания нет и ты сидишь и разбираешься, а зачем он был нужен и насколько он важен.

Не забывайте, что таким человек может быть как другой разработчик, так и вы через пару месяцев, забыв для чего их писали.
👍1
Решил я значит стартануть новый проект на Spring Boot 3 (пора бы уже перейти на что-то свежее) и вроде как бы все не сложно, но, кроме стандартных библиотек к сервисам прикручиваются проверки покрытия кода тестами, мониторинги, кэши, генерирование моделей из openapi спецификаций и прочее - все это накладывает ограничения на совместимости версий библиотек и плагинов.

Если интересно увидеть серию видео на тему переезда со 2 версии ставьте реакции - буду пилить плейлист )
👍6
Stop writing in pseudocode ☝️