Java 18. Что нового добавили и почему вам это пригодится
Выход Java 18 назначен на 22 марта 2022 года, ждать осталось недолго. Релиз уже несколько дней находится во второй фазе стабилизации, а значит, список фич уже финализирован, а значит настало время обратить на них наше внимание.
Сейчас у нас есть возможность попробовать новый функционал и понять, насколько он полезен. А пробовать есть что, несмотря на то, что это не LTS релиз!
В этой статье мы рассмотрим новые JEP и объясним, что они делают, и для чего они нужны.
Читать статью
Выход Java 18 назначен на 22 марта 2022 года, ждать осталось недолго. Релиз уже несколько дней находится во второй фазе стабилизации, а значит, список фич уже финализирован, а значит настало время обратить на них наше внимание.
Сейчас у нас есть возможность попробовать новый функционал и понять, насколько он полезен. А пробовать есть что, несмотря на то, что это не LTS релиз!
В этой статье мы рассмотрим новые JEP и объясним, что они делают, и для чего они нужны.
Читать статью
👍6😢1
Уж+ёж: реактивные компоненты в сервлетном окружении (3/3)
В предыдущей заметке было подробно рассмотрено одно из решений для обеспечения повсеместной доступности текущего обрабатываемого HTTP-запроса. В отличие от неё, нынешняя заметка посвящена не одному большому пункту, а двум компактным: поддержке AOP-аспектов и работе OpenFeign-клиентов в «гибридных» приложениях.
Читать статью
В предыдущей заметке было подробно рассмотрено одно из решений для обеспечения повсеместной доступности текущего обрабатываемого HTTP-запроса. В отличие от неё, нынешняя заметка посвящена не одному большому пункту, а двум компактным: поддержке AOP-аспектов и работе OpenFeign-клиентов в «гибридных» приложениях.
Читать статью
👍4
Java: есть ли жизнь на десктопе?
Привет! Я Виктор Барсуков, Java-разработчик в Lamoda. В этой статье хочу рассказать о своем опыте разработки десктопного Java-приложения в рамках пет-проджекта. Что из этого получилось и что можно было бы сделать иначе.
Читать статью
Привет! Я Виктор Барсуков, Java-разработчик в Lamoda. В этой статье хочу рассказать о своем опыте разработки десктопного Java-приложения в рамках пет-проджекта. Что из этого получилось и что можно было бы сделать иначе.
Читать статью
👍8
Публикуем проект с помощью Gradle и Sonatype в Maven Central без рук
Это такое приятное чувство, когда ты закончил какую-то задачу. А особенно когда твой проект уже готов к релизу. Остался лишь последний шаг.
Публикация проекта в Maven Central, имеено об этом я расскажу в этой статье. Как настроить Gradle, чтобы потом без труда настроить CI.
Читать статью
Это такое приятное чувство, когда ты закончил какую-то задачу. А особенно когда твой проект уже готов к релизу. Остался лишь последний шаг.
Публикация проекта в Maven Central, имеено об этом я расскажу в этой статье. Как настроить Gradle, чтобы потом без труда настроить CI.
Читать статью
👍6
Java News Roundup: Payara Platform 2022 Roadmap, OpenJDK Drafts, Kotlin 1.6.20-M1, Gradle 7.4
This week's Java roundup for February 7th, 2022, features news from OpenJDK, JDK 18, JDK 19, JSR 381 approved by the JCP, Payara Platform 2022 roadmap, Quarkus 2.7.1, Helidon 2.4.2, Micronaut 3.3.1, Hibernate Search 6.1.1, Hibernate Reactive 1.1.3.Final, JReleaser Early-Access, Failsafe 3.2.1, Kotlin 1.6.20-M1, Gradle 7.4, Apache Tika 2.3.0 and end-of-life for Apache Tika 1.x release train.
Читать статью
This week's Java roundup for February 7th, 2022, features news from OpenJDK, JDK 18, JDK 19, JSR 381 approved by the JCP, Payara Platform 2022 roadmap, Quarkus 2.7.1, Helidon 2.4.2, Micronaut 3.3.1, Hibernate Search 6.1.1, Hibernate Reactive 1.1.3.Final, JReleaser Early-Access, Failsafe 3.2.1, Kotlin 1.6.20-M1, Gradle 7.4, Apache Tika 2.3.0 and end-of-life for Apache Tika 1.x release train.
Читать статью
InfoQ
Java News Roundup: Payara Platform 2022 Roadmap, OpenJDK Drafts, Kotlin 1.6.20-M1, Gradle 7.4
This week's Java roundup for February 7th, 2022, features news from OpenJDK, JDK 18, JDK 19, JSR 381 approved by the JCP, Payara Platform 2022 roadmap, Quarkus 2.7.1, Helidon 2.4.2, Micronaut 3.3.1, Hibernate Search 6.1.1, Hibernate Reactive 1.1.3.Final,…
👍6
Лучшие практики по работе с микросервисами в Spring Boot
Работая с микросервисами Spring Boot на протяжении многих лет, автор статьи составил список рекомендаций по стилю кодирования и лучших практик. Он пишет: "Этот список вовсе не является исчерпывающим, но я надеюсь, что вы найдете в нем что-то интересное для себя вне зависимости от того, являетесь ли вы новичком или опытным разработчиком микросервисов Spring Boot."
Читать статью
Работая с микросервисами Spring Boot на протяжении многих лет, автор статьи составил список рекомендаций по стилю кодирования и лучших практик. Он пишет: "Этот список вовсе не является исчерпывающим, но я надеюсь, что вы найдете в нем что-то интересное для себя вне зависимости от того, являетесь ли вы новичком или опытным разработчиком микросервисов Spring Boot."
Читать статью
👍6
Как я отказался от миллионных RSU или опыт собеседования в Ozon
Данный текст появился как результат моего желания дать Ozon развернутый честный фидбэк о процессе собеседования и примерное описание чего же ждать на разных этапах интервью своим коллегам-соискателям. Приступим!
Читать статью
Данный текст появился как результат моего желания дать Ozon развернутый честный фидбэк о процессе собеседования и примерное описание чего же ждать на разных этапах интервью своим коллегам-соискателям. Приступим!
Читать статью
👍4
Eclipse Collections 11.0.0 Features New APIs and Functionality
The release of Eclipse Collections 11.0.0, a collections library compatible with the Java collection types, provides new methods for new functionalities or improved performance. The ClassComparer class was introduced to compare the methods of two classes and display the similarities and differences.
Читать статью
The release of Eclipse Collections 11.0.0, a collections library compatible with the Java collection types, provides new methods for new functionalities or improved performance. The ClassComparer class was introduced to compare the methods of two classes and display the similarities and differences.
Читать статью
InfoQ
Eclipse Collections 11.0.0 Features New APIs and Functionality
The release of Eclipse Collections 11.0.0, a collections library compatible with the Java collection types, provides new methods for new functionalities or improved performance. The ClassComparer class was introduced to compare the methods of two classes…
👍6
Ручная кофемолка: инструменты командной строки для Java
В книге "97 вещей, которые должен знать каждый Java-программист" есть глава о некоторых инструментах командной строки в JDK (я дал 2 из 97 советов).
Поскольку я сам часто использую такие помощники, я хотел кратко представить их в сегодняшней статье.
Я предпочитаю командную строку для своей повседневной работы, используя комбинацию команд git, sed, grep, и т. д., bash что упрощает выполнение повторяющихся задач.
Читать статью
В книге "97 вещей, которые должен знать каждый Java-программист" есть глава о некоторых инструментах командной строки в JDK (я дал 2 из 97 советов).
Поскольку я сам часто использую такие помощники, я хотел кратко представить их в сегодняшней статье.
Я предпочитаю командную строку для своей повседневной работы, используя комбинацию команд git, sed, grep, и т. д., bash что упрощает выполнение повторяющихся задач.
Читать статью
👍6
JDK 18, 19: все, что известно на данный момент
Из статьи вы узнаете, что на данный момент известно об ожидаемых и утвержденных фичах для Java 18, 19.
Читать статью
Из статьи вы узнаете, что на данный момент известно об ожидаемых и утвержденных фичах для Java 18, 19.
Читать статью
👍4
Java News Roundup: JEP 424, NetBeans 13, Hazelcast 5.1, JHipster 7.7, Spring Cloud Gateway CVEs
This week's Java roundup for February 28th, 2022, features news from OpenJDK, JDK 19, point and milestone releases on various Spring projects, Quarkus 2.7.3.Final, Micronaut 3.3.4, HIbernate Validator versions 6.2.2.Final, 7.0.3.Final and 8.0.0.Alpha1, Hazelcast 5.1, Apache NetBeans 13, Apache Log4j 2.17.2, JHipster 7.7.0, and JReleaser 1.0.0-M3.
Читать статью
This week's Java roundup for February 28th, 2022, features news from OpenJDK, JDK 19, point and milestone releases on various Spring projects, Quarkus 2.7.3.Final, Micronaut 3.3.4, HIbernate Validator versions 6.2.2.Final, 7.0.3.Final and 8.0.0.Alpha1, Hazelcast 5.1, Apache NetBeans 13, Apache Log4j 2.17.2, JHipster 7.7.0, and JReleaser 1.0.0-M3.
Читать статью
InfoQ
Java News Roundup: JEP 424, NetBeans 13, Hazelcast 5.1, JHipster 7.7, Spring Cloud Gateway CVEs
This week's Java roundup for February 28th, 2022, features news from OpenJDK, JDK 19, point and milestone releases on various Spring projects, Quarkus 2.7.3.Final, Micronaut 3.3.4, HIbernate Validator versions 6.2.2.Final, 7.0.3.Final and 8.0.0.Alpha1, Hazelcast…
👍4🔥1
По колено в JVM куче, или на пороге потери данных
Смоделируем ситуацию: у вас есть приложение на JVM (без разница, будь то Kotlin, Java или Scala), а еще у вас есть уверенность в себе и немного не хватает ответственности.
В пачке с приложением, а именно сервером, идет несколько стандартных штук - база данных, небольшой http слой, в общем, все стандартно.
Ах да, забыл упомянуть - мы хостим майнкрафт сервер с огромной самописной модификацией, которая меняет почти все нюансы геймплея. Не стоит фокусироваться на майнкрафте - просто представим, что у нас есть набор моделей, которые довольно часто меняются - игрок получает уровень, тратит свободные очки опыта, создает королевство, уходит из него и бла-бла-бла.
Мне кажется, любой уважающий себя программист на +- хобби проекте захочет навернуть нереально крутое самописное решение, чем, собственно говоря, я и занялся.
Читать статью
Смоделируем ситуацию: у вас есть приложение на JVM (без разница, будь то Kotlin, Java или Scala), а еще у вас есть уверенность в себе и немного не хватает ответственности.
В пачке с приложением, а именно сервером, идет несколько стандартных штук - база данных, небольшой http слой, в общем, все стандартно.
Ах да, забыл упомянуть - мы хостим майнкрафт сервер с огромной самописной модификацией, которая меняет почти все нюансы геймплея. Не стоит фокусироваться на майнкрафте - просто представим, что у нас есть набор моделей, которые довольно часто меняются - игрок получает уровень, тратит свободные очки опыта, создает королевство, уходит из него и бла-бла-бла.
Мне кажется, любой уважающий себя программист на +- хобби проекте захочет навернуть нереально крутое самописное решение, чем, собственно говоря, я и занялся.
Читать статью
👍4
Project Loom: новое слово в параллелизме
Loom — это проект, развиваемый в рамках OpenJDK, призванный устранить ограничения традиционной модели параллелизма, предлагая более легкую альтернативу потокам.
Решение состоит в том, чтобы ввести виртуальную многопоточность, которая позволит JVM более эффективно управлять взаимосвязью между ними. Это то, что проект Loom намеревается сделать, представив новый класс виртуальных потоков.
Читать статью
Loom — это проект, развиваемый в рамках OpenJDK, призванный устранить ограничения традиционной модели параллелизма, предлагая более легкую альтернативу потокам.
Решение состоит в том, чтобы ввести виртуальную многопоточность, которая позволит JVM более эффективно управлять взаимосвязью между ними. Это то, что проект Loom намеревается сделать, представив новый класс виртуальных потоков.
Читать статью
👍4🔥3
JRebel Java Development Trends and Analysis 2022
JRebel has published the 2022 Java Developer Productivity Report, and this year marks the 10th anniversary of this annual publication about Java trends. Many things have changed in the past 10 years as most of today’s common technologies were not yet invented, for example: Docker, Kubernetes and microservices. Over 876 Java development professionals responded to the survey that ran from October 2021 to January 2022.
Читать статью
JRebel has published the 2022 Java Developer Productivity Report, and this year marks the 10th anniversary of this annual publication about Java trends. Many things have changed in the past 10 years as most of today’s common technologies were not yet invented, for example: Docker, Kubernetes and microservices. Over 876 Java development professionals responded to the survey that ran from October 2021 to January 2022.
Читать статью
InfoQ
JRebel Java Development Trends and Analysis 2022
JRebel has published the 2022 Java Developer Productivity Report, and this year marks the 10th anniversary of this annual publication. The survey investigates Java trends about architectures, frameworks and productivity tools.
👍6
Когда стоит использовать перечисления в Java?
Многие считают перечисления “кодом с запашком” и антипаттерном в ООП. Это мнение прослеживается и в некоторых книгах, например в “Внедрение зависимостей в . Net” Марка Симана:
“ВНИМАНИЕ! ПО ОБЩЕМУ ПРАВИЛУ ПЕРЕЧИСЛЕНИЯ ЯВЛЯЮТСЯ КОДОМ С ЗАПАШКОМ, И ИХ НЕОБХОДИМО ПРЕОБРАЗОВЫВАТЬ В ПОЛИМОРФНЫЕ КЛАССЫ.
В большинстве случаев перечислениями действительно злоупотребляют, но это не значит, что их обязательно нужно избегать. При правильном использовании они могут сослужить мощным инструментом. В текущей статье мы разберем сценарии, в которых перечисления уместны и в которых нет.
Читать статью
Многие считают перечисления “кодом с запашком” и антипаттерном в ООП. Это мнение прослеживается и в некоторых книгах, например в “Внедрение зависимостей в . Net” Марка Симана:
“ВНИМАНИЕ! ПО ОБЩЕМУ ПРАВИЛУ ПЕРЕЧИСЛЕНИЯ ЯВЛЯЮТСЯ КОДОМ С ЗАПАШКОМ, И ИХ НЕОБХОДИМО ПРЕОБРАЗОВЫВАТЬ В ПОЛИМОРФНЫЕ КЛАССЫ.
В большинстве случаев перечислениями действительно злоупотребляют, но это не значит, что их обязательно нужно избегать. При правильном использовании они могут сослужить мощным инструментом. В текущей статье мы разберем сценарии, в которых перечисления уместны и в которых нет.
Читать статью
👍5
Gradle 7.4 Introduces Aggregated Test Reports
Gradle has released version 7.4 of their open-source build automation tool that allows developers to create aggregated test and Jacoco coverage HTML reports. The versions catalog feature allows the centralized declaration of dependencies for usage in build noscripts. Shared build services allow caching of state or resources across multiple tasks.
Читать статью
Gradle has released version 7.4 of their open-source build automation tool that allows developers to create aggregated test and Jacoco coverage HTML reports. The versions catalog feature allows the centralized declaration of dependencies for usage in build noscripts. Shared build services allow caching of state or resources across multiple tasks.
Читать статью
InfoQ
Gradle 7.4 Introduces Aggregated Test Reports
Gradle has released version 7.4 of their open-source build automation tool that allows developers to create aggregated test and Jacoco coverage HTML reports. The versions catalog feature allows the centralized declaration of dependencies for usage in build…
👍4
Обобщенное программирование – обзор реализаций
В большинстве сильно типизированных языков поддерживается обобщенное программирование. Круг проблем, которые решаются на этих языках, один и тот же, но сами проблемы решались в разное время разными способами, и у каждого из этих способов были свои «за» и «против». Мы рассмотрим историю реализаций обобщенного программирования, чтобы вы могли распробовать его как инженер. Наилучшего подхода не существует, любой подход – это всегда компромисс, при котором одними преимуществами жертвуют ради других.
Читать статью
В большинстве сильно типизированных языков поддерживается обобщенное программирование. Круг проблем, которые решаются на этих языках, один и тот же, но сами проблемы решались в разное время разными способами, и у каждого из этих способов были свои «за» и «против». Мы рассмотрим историю реализаций обобщенного программирования, чтобы вы могли распробовать его как инженер. Наилучшего подхода не существует, любой подход – это всегда компромисс, при котором одними преимуществами жертвуют ради других.
Читать статью
👍5🔥1
5 моментов в Java Concurrency, о которых вы не знаете
В этой статье рассказывается о пяти интересных концепциях многопоточности, о которых начинающие и опытные разработчики могут не знать.
Читать статью
В этой статье рассказывается о пяти интересных концепциях многопоточности, о которых начинающие и опытные разработчики могут не знать.
Читать статью
👍3🔥1
Java News Roundup: JDK 18 GA, JMC 8.2, Spring Updates, MicroStream 7.0-Beta1, WildFly 26.1-Beta1
This week's Java roundup for March 21st, 2022 features news from JDK 18, JDK 19, JDK Mission Control 8.2, Amazon Corretto 18, BellSoft LibericaJDK 18, multiple Spring milestone and point releases, Micronaut 3.4.0, GraalVM Native Build Tools 0.9.11, WildFly 26 Beta 1, Hibernate Reactive 1.1.4.Final, MicroStream 7.0-M1, JReleaser 1.0-RC1, and TornadoVM 0.13.
Читать статью
This week's Java roundup for March 21st, 2022 features news from JDK 18, JDK 19, JDK Mission Control 8.2, Amazon Corretto 18, BellSoft LibericaJDK 18, multiple Spring milestone and point releases, Micronaut 3.4.0, GraalVM Native Build Tools 0.9.11, WildFly 26 Beta 1, Hibernate Reactive 1.1.4.Final, MicroStream 7.0-M1, JReleaser 1.0-RC1, and TornadoVM 0.13.
Читать статью
InfoQ
Java News Roundup: JDK 18 GA, JMC 8.2, Spring Updates, MicroStream 7.0-Beta1, WildFly 26.1-Beta1
This week's Java roundup for March 21st, 2022, features news from JDK 18, JDK 19, JDK Mission Control 8.2, Amazon Corretto 18, BellSoft LibericaJDK 18, multiple Spring milestone and point releases, Micronaut 3.4.0, GraalVM Native Build Tools 0.9.11, WildFly…
👍3🔥1
JPA-Buddy — избавляемся от рутины. Практические кейсы
Совсем недавно мне под руку попался плагин, который помогает генерировать код при написании программ - это JPA Buddy. В этой статье я не буду транслировать официальную документацию проекта или показывать на примере видеороликов, как нужно с ним работать, а приведу примеры своих рабочих кейсов, где плагин действительно выручил и сэкономил мое время. Спойлер: в создании POJO-классов, репозиториев для тучи сущностей, DTO-классов.
Читать статью
Совсем недавно мне под руку попался плагин, который помогает генерировать код при написании программ - это JPA Buddy. В этой статье я не буду транслировать официальную документацию проекта или показывать на примере видеороликов, как нужно с ним работать, а приведу примеры своих рабочих кейсов, где плагин действительно выручил и сэкономил мое время. Спойлер: в создании POJO-классов, репозиториев для тучи сущностей, DTO-классов.
Читать статью
🔥5👍2
Spring4Shell RCE — критическая уязвимость в Java Spring Framework
Не успел мир отойти от Apache Log4j2, как в сети появились сообщения о новых 0-day уязвимостях. В Spring Framework для Java обнаружено сразу несколько уязвимостей "нулевого дня", позволяющих, в том числе, выполнять произвольный код (RCE).
Читать статью
Не успел мир отойти от Apache Log4j2, как в сети появились сообщения о новых 0-day уязвимостях. В Spring Framework для Java обнаружено сразу несколько уязвимостей "нулевого дня", позволяющих, в том числе, выполнять произвольный код (RCE).
Читать статью
🔥3👍2😢1