Новости из мира Java, обзоры интересных библиотек и фреймворков, обучающие статьи. Онлайн обсуждения актуальных тем и обмен опытом. Для связи @java_freak
Поделиться с друзьями:
Java Tricks
Начинаю серию публикаций в которых поделюсь лайфхаками. Как оказалось не все мои знакомые о них знали. Возможно подобная подборка окажется интересной. Буду рад обратной связи от вас в комментариях.
Начать хочу с инициализации коллекций.
Пример до 9 java:
Map someMap = new HashMap();
someMap.put("someKey_1","someValue_1");
someMap.put("someKey_2","someValue_2");
Пример после 9 java:
Map someMap = Map.of("someKey_1","someValue_1","someKey_2","someValue_2");
Возникает вопрос можно ли до 9 java "сделать все в 1 строку" например если это поле класса?
Да ))
Map someMap = new HashMap(){{ put("someKey_1","someValue_1"); put("someKey_2","someValue_2");
}};
2021-08-18 10:25:34
C10K Problem
Сегодня я поделюсь с Вами ссылкой на очень интересную статью про проблему C10k. Думаю многие слышали об этой проблеме и возможно сталкивались. Статья интересна тем, что в ней даются советы и рекомендации для Java разработчиков.
В статье даются также рекомендации по тюнингу операционной системы и пример использования bpftrace для диагностики проблемы.
Лично мне в этой статье особенно понравился разбор использования DirectByteBuffer и доп материал по ссылке "...об утечках памяти в ByteBuffer".
https://proglib.io/p/principy-obrabotki-tysyach-soedineniy-v-java-2020-04-04
Оригинал с моего любимого ресурса
https://dzone.com/articles/thousands-of-socket-connections-in-java-practical
2021-08-02 13:31:39
IntelliJ IDEA 2021.2
Хочу поздравить всех любителей IntelliJ IDEA с выходом новой версии!!!
Лично меня в прошлой версии раздражал баг в Run Configuration на маке.
При выборе конфигурации название иногда не обновлялось, но конфигурация переключалась.
Сегодня после обновления бага ушла ))
Из интересных фишек (из списка изменений) лично для меня в этом релизе:
1. появилась поддержка gRPC
2. появилась поддержка Protocol Buffers
3. работа с Docker по SSH
4. Test Data plugin для генерации тестовых данных для тестов по Cmd+N
Очень хочется все попробовать )) Впечатление напишу позже как распробую ))
Какие фичи вы считаете интересными в новом релизе?
https://www.jetbrains.com/idea/whatsnew/
2021-07-28 12:43:15
«Почему Kotlin хуже, чем Java?»
Недавно наткнулся на интересную статью. Сейчас достаточно много материала рекламирующего Kotlin, но большая редкость встретить материал рассказывающий о минусах.
Помню время когда толпы разработчиков "бегали" со Scala говоря о нем как об "очередном убийце" Java, но этого не случилось. Scala хороший язык и я ничего против него не имею. Он занял свою нишу, но сильно потеснить Java не смог.
И вот на сцене "очередной убийца" Java )) Так его преподносят некоторые разработчики. Возможно это те кто раньше пытались "убить Scala-ой" Java ))
Я считаю, что в Kotlin есть много интересных фишек и как язык он мне нравится. Перечисление фишек есть в любом "рекламном буклете" про него. Думаю, что он тоже со временем займет свою нишу и страсти вокруг него поугаснут. С большой долей вероятности он станет доминировать в Android разработке, но займет ли доминирующую позицию на беке...время покажет ))
Как вы относитесь к Kotlin и что думаете о статье? Поделитесь мнением в комментариях.
Рекомендую ознакомиться со статьей:
https://habr.com/en/company/funcorp/blog/558412/
2021-07-26 11:26:04
Мне очень нравятся идеи функционального и реактивного программирования. Расстраивает то что некоторые разработчики пытаются противопоставлять ФП и ООП. В Java благодаря улучшениям начиная с версии 8 появилось много конструкций позволяющих гармонично их совместить.
Java не чисто объектно-ориентированный язык так как в нем не все является объектом (например наличие примитивных типов данных...). При этом он и не чисто функциональный (например позволяет менять состояние...).
Довольно интересные идеи по этой теме есть в блоге Роберта Мартина (написал легендарную книгу "Чистый код"). Рекомендую добавить его блог в закладки )) Прикладываю также перевод его статьи на хабре.
Согласны ли вы с его доводами или у вас иная точка зрения?
https://blog.cleancoder.com/uncle-bob/2014/11/24/FPvsOO.html
https://habr.com/en/post/474518/
2021-07-21 13:42:42
Сегодня я хочу поделиться с вами самым лучшим на мой взгляд ресурсом по паттернам проектирования и рефакторингу. Все кому я рекомендовал этот ресурс хорошо о нем отзывались. Материал дается простым языком и с хорошими примерами.
Если у вас есть альтернативные любимые ресурсы по темам паттернов проектирования и рефакторингу, то пишите в комментариях.
https://refactoring.guru/ru
2021-07-19 13:08:28
Очень интересный ресурс с набором заданий по разным языкам и в том числе по Java. Его можно использовать как для проведения собеседований, так и для личного развития. Можно прокачивать джунов ))
Можем устроить челендж кто больше наберет балов. Можете постить ссылки на ваши результаты и наиболее интересные вопросы.
https://edabit.com/challenges
2021-07-15 13:28:48
Коллекция популярных алгоритмов, реализованных на Java.
Не все из этих алгоритмов оптимальны для всех кейсов и нужно осознанно подходить к выбору. Иногда можно найти в стандартной библиотеке Java примеры получше. Однако для демонстрационных и образовательных целей этот репозиторий подходит замечательно.
https://github.com/TheAlgorithms/Java
2021-07-14 08:38:44
Здесь собраны популярные вопросы с технических интервью и, разумеется, ответы на них. Темы затронуты самые разные:
• структуры данных;
• популярные алгоритмы и их эффективность;
• общие концепции программирования.
В репозитории много ссылок на полезные текстовые материалы и видеолекции.
https://github.com/winterbe/java8-tutorial
2021-07-13 07:48:40
Самый популярный Java-репозиторий на GitHub – коллекция паттернов проектирования всех видов и мастей.
Паттерны – это лучшие практики организации проектов, которые упрощают и ускоряют процесс разработки. Они представляют собой хорошо продуманные и протестированные решения самых распространенных задач программирования. Паттерны учитывают много мелочей, о которых вы легко можете забыть, и спасают от распространенных и глупых ошибок.
Каждый паттерн в репозитории, содержит подробное описание и примеры реализации на Java.
https://github.com/iluwatar/java-design-patterns
2021-07-13 06:28:01