Java-дайджесте от infoQ за прошедшую неделю
В Java-дайджесте от infoQ за прошедшую неделю представлены:
- новости о JDK 19 и JDK 20
- Microsoft присоединяется к рабочим группам MicroProfile и Jakarta EE
- обновление Jakarta EE 10
- обновления Spring, Payara Enterprise 5.41.0,
- обновления GlassFish 7.0-M7, Micronaut 3.5. 3
- обновления Hibernate Search 6.2.Alpha1, Native Build Tools 0.9.13
- обновления Project Reactor 2022.0.0-M4, Piranha 22.7.0
- обновления PrimeFaces, JobRunr 5.1.5 и Tomcat Native 2.0.1
Читать статью
В Java-дайджесте от infoQ за прошедшую неделю представлены:
- новости о JDK 19 и JDK 20
- Microsoft присоединяется к рабочим группам MicroProfile и Jakarta EE
- обновление Jakarta EE 10
- обновления Spring, Payara Enterprise 5.41.0,
- обновления GlassFish 7.0-M7, Micronaut 3.5. 3
- обновления Hibernate Search 6.2.Alpha1, Native Build Tools 0.9.13
- обновления Project Reactor 2022.0.0-M4, Piranha 22.7.0
- обновления PrimeFaces, JobRunr 5.1.5 и Tomcat Native 2.0.1
Читать статью
👍6
Kafka и Chronicle Queue
Хотя облачные сервисы удобны и гибки, эксплуатационные затраты на приложения, развёрнутые в облаке, иногда могут быть существенными. В этой статье мы расскажем о способе существенного снижения эксплуатационных затрат в чувствительных к задержке Java-приложений с Event-Driven Architecture (EDA) при помощи миграции с Kafka на Chronicle Queue — опенсорсной, более эффективно использующей ресурсы реализации очереди с пониженной задержкой.
Читать статью
Хотя облачные сервисы удобны и гибки, эксплуатационные затраты на приложения, развёрнутые в облаке, иногда могут быть существенными. В этой статье мы расскажем о способе существенного снижения эксплуатационных затрат в чувствительных к задержке Java-приложений с Event-Driven Architecture (EDA) при помощи миграции с Kafka на Chronicle Queue — опенсорсной, более эффективно использующей ресурсы реализации очереди с пониженной задержкой.
Читать статью
Telegraph
Kafka и Chronicle Queue
Хотя облачные сервисы удобны и гибки, эксплуатационные затраты на приложения, развёрнутые в облаке, иногда могут быть существенными. В этой статье мы расскажем о способе существенного снижения эксплуатационных затрат в чувствительных к задержке Java-приложений…
👍3🔥2
Производительность: нюансы против очевидностей. JDK edition
Привет, это продолжение статьи, в которой я разбирал разные неочевидные вещи из мира производительности. В этот раз будем копать ещё глубже, хоть и начнём с относительно простых примеров. И да, в этой статье будет много интересного про строки.
Читать статью
Привет, это продолжение статьи, в которой я разбирал разные неочевидные вещи из мира производительности. В этот раз будем копать ещё глубже, хоть и начнём с относительно простых примеров. И да, в этой статье будет много интересного про строки.
Читать статью
👍6
Лояльность покупателей — гигантская ответственность, а не просто технологии
Всем привет. Я Игорь, тимлид в команде, которая занимается системой лояльности в CSI. Расскажу, как работают и устроены системы лояльности в ритейле, о том, как мы создали новую архитектуру системы Set Loyalty, что применяем из фреймворков и инструментов.
Читать статью
Всем привет. Я Игорь, тимлид в команде, которая занимается системой лояльности в CSI. Расскажу, как работают и устроены системы лояльности в ритейле, о том, как мы создали новую архитектуру системы Set Loyalty, что применяем из фреймворков и инструментов.
Читать статью
👍3🔥2
Создание игры Kalah на Java через TDD
Из данной статьи вы узнаете, как на Java реализовать игру Калах, используя разработку через Test-Driven Development. Калах - это настольная логическая игра из семейства игр манкала. Количество игроков — двое.
В игре используется доска Калах и несколько жетонов. На каждой стороне доски есть 6 маленьких ямок; и большая яма на каждом конце. Цель игры состоит в том, чтобы захватить больше жетонов, чем противник.
Читать статью
Из данной статьи вы узнаете, как на Java реализовать игру Калах, используя разработку через Test-Driven Development. Калах - это настольная логическая игра из семейства игр манкала. Количество игроков — двое.
В игре используется доска Калах и несколько жетонов. На каждой стороне доски есть 6 маленьких ямок; и большая яма на каждом конце. Цель игры состоит в том, чтобы захватить больше жетонов, чем противник.
Читать статью
👍10
Все, что нужно знать о парсинге JSON с помощью Jackson
Jackson — одна из самых мощных и популярных библиотек в Java. Из статьи вы узнаете, как ее использовать для работы с JSON.
Читать статью
Jackson — одна из самых мощных и популярных библиотек в Java. Из статьи вы узнаете, как ее использовать для работы с JSON.
Читать статью
👍5🔥2
В Java-дайджесте от infoQ за прошедшую неделю представлены:
- новости о JDK 18, JDK 19, JDK 20
- GraphQL 1.0.1
- обновления Liberica JDK, Quarkus 2.10.3, CVE в Grails, JobRunr 5.1.6
- Apache Tomcat 9.0.65 и 10.1.0-M17
- Tornado VM на Apple M1 и конференция JBNC.
Читать статью
- новости о JDK 18, JDK 19, JDK 20
- GraphQL 1.0.1
- обновления Liberica JDK, Quarkus 2.10.3, CVE в Grails, JobRunr 5.1.6
- Apache Tomcat 9.0.65 и 10.1.0-M17
- Tornado VM на Apple M1 и конференция JBNC.
Читать статью
👍4🔥2❤1
Руководство по работе git rebase
В статье разбираются детали использования и принцип работы команды git rebase.
Читать статью
В статье разбираются детали использования и принцип работы команды git rebase.
Читать статью
👍6
🔥 Попробуйте себя в качестве автоматизатора тестирования на Java! 🔥
Cоставьте свой первый баг-репорт под руководством опытного практика 10 августа в 20:00 мск на открытом уроке в OTUS!
Что вас ждет на занятии?
📌 Разберем структуру баг-репорта,
📌 Узнаем, как правильно его оформлять,
📌 Рассмотрим наиболее частые ошибки,
📌 Вместе составим наш первый баг-репорт.
После вебинара вы сможете продолжить обучение на онлайн-курсе «Java QA Engineer. Basic».
👉🏼 Для участия зарегистируйтесь и пройдите вступительный тест https://otus.pw/WBJy/
Cоставьте свой первый баг-репорт под руководством опытного практика 10 августа в 20:00 мск на открытом уроке в OTUS!
Что вас ждет на занятии?
📌 Разберем структуру баг-репорта,
📌 Узнаем, как правильно его оформлять,
📌 Рассмотрим наиболее частые ошибки,
📌 Вместе составим наш первый баг-репорт.
После вебинара вы сможете продолжить обучение на онлайн-курсе «Java QA Engineer. Basic».
👉🏼 Для участия зарегистируйтесь и пройдите вступительный тест https://otus.pw/WBJy/
👍4
Разбор нововведений, ожидаемых в Java 19
На данный момент утверждены все нововведения, ожидаемые в Java 19, а именно:
- Record Patterns (Preview)
- Linux/RISC-V Port
- Virtual Threads (Preview)
- Structured Concurrency (Incubator)
и т. д.
В статье дается описание каждой новой функции языка.
Читать статью
На данный момент утверждены все нововведения, ожидаемые в Java 19, а именно:
- Record Patterns (Preview)
- Linux/RISC-V Port
- Virtual Threads (Preview)
- Structured Concurrency (Incubator)
и т. д.
В статье дается описание каждой новой функции языка.
Читать статью
👍7
Считаем уникальные IPv4 адреса
Как создавать быстрые и эффективные алгоритмы? В статье, на примере задачи по подсчёту уникальных IPv4 адресов, рассматриваются приёмы и методы обработки больших объёмов данных. Вы узнаете, как написать код, работающий в десятки раз быстрее и использующий в несколько десятков раз меньше памяти, чем "наивные" алгоритмы.
Читать статью
Как создавать быстрые и эффективные алгоритмы? В статье, на примере задачи по подсчёту уникальных IPv4 адресов, рассматриваются приёмы и методы обработки больших объёмов данных. Вы узнаете, как написать код, работающий в десятки раз быстрее и использующий в несколько десятков раз меньше памяти, чем "наивные" алгоритмы.
Читать статью
Telegraph
Считаем уникальные IPv4 адреса
Эта задача была предложена мне на одном из курсов по Java. В статье излагаю своё решение, а также анализ его эффективности. Обработка IP адресов необходима для многих проектов, и я надеюсь, что алгоритмы, описанные в этой статье, могут быть полезны. Задача…
👍6🔥3😁1
К микросервисам через reverse engineering и кодогенерацию
Разрабатывая информационную систему с нуля, мы можем выбрать практически любой вариант технологии и архитектуры в целом, в том числе — принцип взаимодействия частей системы. Но что делать, если система уже есть и у неё довольно богатая история? Как большую энтерпрайз систему, которая развивалась в режиме монолита, разделить на микросервисы и организовать взаимодействие между ними?
Часто основная сложность заключается в том, что нужно одновременно поддерживать уже существующий код монолита и параллельно внедрять новые принципы и подходы. В статье я расскажу, как мы в Wrike, используя reverse engineering и немного кодогенерации, реализовали первые шаги по выделению отдельных микросервисов и запустили первый «почти настоящий» BFF-сервис в рамках нашего монолита.
Читать статью
Разрабатывая информационную систему с нуля, мы можем выбрать практически любой вариант технологии и архитектуры в целом, в том числе — принцип взаимодействия частей системы. Но что делать, если система уже есть и у неё довольно богатая история? Как большую энтерпрайз систему, которая развивалась в режиме монолита, разделить на микросервисы и организовать взаимодействие между ними?
Часто основная сложность заключается в том, что нужно одновременно поддерживать уже существующий код монолита и параллельно внедрять новые принципы и подходы. В статье я расскажу, как мы в Wrike, используя reverse engineering и немного кодогенерации, реализовали первые шаги по выделению отдельных микросервисов и запустили первый «почти настоящий» BFF-сервис в рамках нашего монолита.
Читать статью
👍5
Hibernate Best Practices для начинающих
В данной статье я не ставлю цель подробно описать Hibernate, такого материала полно в сети. Это скорее справочник, в который можно заглянуть и увидеть возможные проблемные места и их решение, который позволит вам не допустить грубых ошибок при использовании Hibernate. Статья рассчитана на читателя уже знакомого с Hibernate и Spring.
Читать статью
В данной статье я не ставлю цель подробно описать Hibernate, такого материала полно в сети. Это скорее справочник, в который можно заглянуть и увидеть возможные проблемные места и их решение, который позволит вам не допустить грубых ошибок при использовании Hibernate. Статья рассчитана на читателя уже знакомого с Hibernate и Spring.
Читать статью
👍7
Осваиваем реактивное программирование на Java
Асинхронный ввод/вывод уже какое-то время используется в обиходе. При этом разные языки реализуют его по-разному, но все предоставляют способ уменьшить количество потоков, давая вроде бы полную конкурентность. JavaScript занимался этим с самого начала. При использовании всего одного потока будет мало хорошего, отправь вы в продакшн блокирующий вызов.
Несмотря на то, что реактивный Java все больше привлекает интерес разработчиков, большинство знакомых мне программистов по-прежнему живут в многопоточной парадигме. Почему? Принцип потоков относительно легко усвоить. Реактивное же программирование требует переосмысления многих привычных нам принципов программирования. Попытка объяснить, почему асинхронный ввод/вывод является лучшей альтернативой, подобна попытке объяснить сферичность Земли тому, кто всегда верил в ее плоскую природу.
Читать статью
Асинхронный ввод/вывод уже какое-то время используется в обиходе. При этом разные языки реализуют его по-разному, но все предоставляют способ уменьшить количество потоков, давая вроде бы полную конкурентность. JavaScript занимался этим с самого начала. При использовании всего одного потока будет мало хорошего, отправь вы в продакшн блокирующий вызов.
Несмотря на то, что реактивный Java все больше привлекает интерес разработчиков, большинство знакомых мне программистов по-прежнему живут в многопоточной парадигме. Почему? Принцип потоков относительно легко усвоить. Реактивное же программирование требует переосмысления многих привычных нам принципов программирования. Попытка объяснить, почему асинхронный ввод/вывод является лучшей альтернативой, подобна попытке объяснить сферичность Земли тому, кто всегда верил в ее плоскую природу.
Читать статью
Telegraph
Осваиваем реактивное программирование на Java
Асинхронный ввод/вывод уже какое-то время используется в обиходе. При этом разные языки реализуют его по-разному, но все предоставляют способ уменьшить количество потоков, давая вроде бы полную конкурентность. JavaScript занимался этим с самого начала. При…
👍4
🔥 Бесплатная Live coding сессия, где будем решать задачу с собеседования в международную FinTech компанию
В прямом эфире Роман Оборин, Senior Java Developer в BNP Paribas и преподаватель курса Middle Java Dev, проведет Live coding сессию по написанию объектно-ориентированного кода на Java, покрытого разными типами тестов: Unit, Integration, Stress.
На Live сoding ты сможешь понаблюдать, как пишет код Senior-разработчик, прокомментировать процесс и решить реальную задачу, которую дают на собеседованиях. Ну и конечно, прокачаешь свои hard skills:
— Структурируешь знания по принципам SOLID
— Прокачаешь знания по разным видам тестирования, в том числе многопоточных программ
— Подготовишься к техническому интервью с этапом Live coding
🚀 Стартуем 18 августа в 19:00 по мск
Регистрируйся бесплатно: https://cutt.ly/RZ148dT
В прямом эфире Роман Оборин, Senior Java Developer в BNP Paribas и преподаватель курса Middle Java Dev, проведет Live coding сессию по написанию объектно-ориентированного кода на Java, покрытого разными типами тестов: Unit, Integration, Stress.
На Live сoding ты сможешь понаблюдать, как пишет код Senior-разработчик, прокомментировать процесс и решить реальную задачу, которую дают на собеседованиях. Ну и конечно, прокачаешь свои hard skills:
— Структурируешь знания по принципам SOLID
— Прокачаешь знания по разным видам тестирования, в том числе многопоточных программ
— Подготовишься к техническому интервью с этапом Live coding
🚀 Стартуем 18 августа в 19:00 по мск
Регистрируйся бесплатно: https://cutt.ly/RZ148dT
👍2
Варианты использования Java ML библиотек совместно с Spring, Docker, Spark, Rapids, CUDA
В данной статье рассматривается способ использования GPU nVidia с технологией CUDA в Docker-контейнерах для распределенной тренировки моделей машинного обучения на нескольких машинах. Цель статьи - показать вариант использования Big Data Tool Apache Spark в Docker-контейнерах, совместно с акселератором GPU вычислений Rapids на устройствах nVidia CUDA, с применением библиотек DJL, Spark ML, XGBoost, в приложении Spring Boot на Java 8 (требование Rapids), на нескольких машинах под управлением ОС Windows 10 Pro для решения задачи тренировки моделей машинного обучения в распределенной системе.
Читать статью
В данной статье рассматривается способ использования GPU nVidia с технологией CUDA в Docker-контейнерах для распределенной тренировки моделей машинного обучения на нескольких машинах. Цель статьи - показать вариант использования Big Data Tool Apache Spark в Docker-контейнерах, совместно с акселератором GPU вычислений Rapids на устройствах nVidia CUDA, с применением библиотек DJL, Spark ML, XGBoost, в приложении Spring Boot на Java 8 (требование Rapids), на нескольких машинах под управлением ОС Windows 10 Pro для решения задачи тренировки моделей машинного обучения в распределенной системе.
Читать статью
👍3
Основы Java за 14 дней вместе с наставником – практикующим разработчиком.
10 учебных модулей, 62 урока с практикой в браузере, вебинары и лайвкодинг-сессия. Не важно, сколько вам лет, какое у вас образование и кем вы работаете сейчас.
Полная стоимость курса всего 990 рублей 🙌
Начинаем 16 августа.
Занимайте место в группе!
10 учебных модулей, 62 урока с практикой в браузере, вебинары и лайвкодинг-сессия. Не важно, сколько вам лет, какое у вас образование и кем вы работаете сейчас.
Полная стоимость курса всего 990 рублей 🙌
Начинаем 16 августа.
Занимайте место в группе!
👍2
Vector API в Java: краткий обзор и тестирование
Некоторое время назад попалась на глаза статья про Vector API в Java.
Прочитал, заинтересовался. Наконец, недавно дошли руки посмотреть, что же это такое и как работает.
Результаты немного неоднозначные.
Читать статью
Некоторое время назад попалась на глаза статья про Vector API в Java.
Прочитал, заинтересовался. Наконец, недавно дошли руки посмотреть, что же это такое и как работает.
Результаты немного неоднозначные.
Читать статью
👍2
Java, реактивное программирование, Reactor, Spring Cloud Function, Streams, etc…
Статья является кратким обзором компонентов Spring Framework, позволяющих реализовывать программы в терминах функций асинхронной обработки сообщений. И ориентирована на разработчиков, уже знакомых со Spring Framework, но ещё не имеющих опыта построения реактивных приложений с декларативным управлением функциями-компонентами.
Читать статью
Статья является кратким обзором компонентов Spring Framework, позволяющих реализовывать программы в терминах функций асинхронной обработки сообщений. И ориентирована на разработчиков, уже знакомых со Spring Framework, но ещё не имеющих опыта построения реактивных приложений с декларативным управлением функциями-компонентами.
Читать статью
👍4
Статический анализ кода в современной Java-разработке
Сегодня я хочу затронуть тему, которая будет полезна как Java-разработчикам, так и начинающим тех- и тимлидам. Я расскажу о том, как добиться высокого качества кода на вашем Java проекте и перестать волноваться о стилях кодирования.
Если вы идёте по пути подготовки развесистых страничек на wiki по стилям кодирования и правилам оформления кода, то это дурно пахнет. Есть другой более надёжный способ, как защитить вашу кодовую базу и добиться полного соблюдения всех принятых стандартов и соглашений. И это, конечно же, статический анализ кода.
Далее я покажу своё видение того, какие инструменты и в какой конфигурации должны применяться на Java проектах, а особенно в микросервисах.
Читать статью
Сегодня я хочу затронуть тему, которая будет полезна как Java-разработчикам, так и начинающим тех- и тимлидам. Я расскажу о том, как добиться высокого качества кода на вашем Java проекте и перестать волноваться о стилях кодирования.
Если вы идёте по пути подготовки развесистых страничек на wiki по стилям кодирования и правилам оформления кода, то это дурно пахнет. Есть другой более надёжный способ, как защитить вашу кодовую базу и добиться полного соблюдения всех принятых стандартов и соглашений. И это, конечно же, статический анализ кода.
Далее я покажу своё видение того, какие инструменты и в какой конфигурации должны применяться на Java проектах, а особенно в микросервисах.
Читать статью
👍5