📰 Новости Java: Jakarta EE 11 и удаление Applet API
Эта неделя принесла важные обновления в мире Java! Совсем недавно был выпущен Jakarta EE 11 Web Profile. Также представили одиннадцатую версию GlassFish 8.0.0 и кандидата на удаление устаревшего Applet API. Ознакомьтесь с последними новостями и оставайтесь в курсе!
Подробности: https://www.infoq.com/news/2025/04/java-news-roundup-mar31-2025/
#en
@a_cup_of_java | Другие наши каналы
Эта неделя принесла важные обновления в мире Java! Совсем недавно был выпущен Jakarta EE 11 Web Profile. Также представили одиннадцатую версию GlassFish 8.0.0 и кандидата на удаление устаревшего Applet API. Ознакомьтесь с последними новостями и оставайтесь в курсе!
Подробности: https://www.infoq.com/news/2025/04/java-news-roundup-mar31-2025/
#en
@a_cup_of_java | Другие наши каналы
Не сказ, а быль: Java-дев среди сисадминов
Долго ли, коротко ли, служил я java-разработчиком, да судьба-злодейка, крутанула меня в Platform Engineer’ы. Овладел я ремеслом devops’ским да сисадминским, но по ночам снится мне low-level Java, но быль моя совсем чуть-чуть об этом будет - поглаголю о JVM опциях, дабы приложение в k8s без дури запускать. Расскажу, как доблестно (а может, и безрассудно) SeaweedFS S3 storage выбирал, как кластер k8s поднимал, не щадя живота своего. Читай сии записки, запивая иван-чаем или медовухой: авось, умная мысль глянет меж строк. Не глянет — так хоть посмеёшься над моим devops экспириенсом.
Развернуть сказы
Читать: https://habr.com/ru/articles/897992/?utm_campaign=897992
@a_cup_of_java | Другие наши каналы
Долго ли, коротко ли, служил я java-разработчиком, да судьба-злодейка, крутанула меня в Platform Engineer’ы. Овладел я ремеслом devops’ским да сисадминским, но по ночам снится мне low-level Java, но быль моя совсем чуть-чуть об этом будет - поглаголю о JVM опциях, дабы приложение в k8s без дури запускать. Расскажу, как доблестно (а может, и безрассудно) SeaweedFS S3 storage выбирал, как кластер k8s поднимал, не щадя живота своего. Читай сии записки, запивая иван-чаем или медовухой: авось, умная мысль глянет меж строк. Не глянет — так хоть посмеёшься над моим devops экспириенсом.
Развернуть сказы
Читать: https://habr.com/ru/articles/897992/?utm_campaign=897992
@a_cup_of_java | Другие наши каналы
🔥4
Hibernate, JPA, N+1 и лишние запросы в БД
Введение
В начале статьи, хотел бы отметить, что если вы только начинаете изучать проблему N+1, возможно вам стоит отложить чтение данной статьи или учитывать, что она рассматривает эту проблему не как изолированный факт, а как часть процессов приводящих к замедлению производительности приложения. Последующие тезисы и аргументы, могут сместить фокус с общих аспектов проблемы N+1, на частные и нехарактерные, такие которые затруднят общее понимание проблемы. Также в этой статье только косвенно затрагиваются способы решения этой проблемы. В основном, эта статья оценивает и выявляет причины, которые приводят к лишним запросам в БД.
Читать: https://habr.com/ru/articles/896618/?utm_campaign=896618
@a_cup_of_java | Другие наши каналы
Введение
В начале статьи, хотел бы отметить, что если вы только начинаете изучать проблему N+1, возможно вам стоит отложить чтение данной статьи или учитывать, что она рассматривает эту проблему не как изолированный факт, а как часть процессов приводящих к замедлению производительности приложения. Последующие тезисы и аргументы, могут сместить фокус с общих аспектов проблемы N+1, на частные и нехарактерные, такие которые затруднят общее понимание проблемы. Также в этой статье только косвенно затрагиваются способы решения этой проблемы. В основном, эта статья оценивает и выявляет причины, которые приводят к лишним запросам в БД.
Читать: https://habr.com/ru/articles/896618/?utm_campaign=896618
@a_cup_of_java | Другие наши каналы
👍6❤🔥2
Как бросить исключение без throws в Java: технический разбор с примерами
В Java существует старое, но всё ещё актуальное ограничение: если метод бросает checked-исключение (например, IOException), он обязан явно объявить это с помощью throws. Это требование — не от JVM, а от компилятора. Компилятор жёстко следит за декларациями, но вот JVM — нет. Что создаёт любопытную лазейку: обойти компилятор, оставаясь при этом в рамках спецификации JVM.
Сегодня разберёмся, как это сделать с помощью
Читать: https://habr.com/ru/companies/otus/articles/897384/?utm_campaign=897384
@a_cup_of_java | Другие наши каналы
В Java существует старое, но всё ещё актуальное ограничение: если метод бросает checked-исключение (например, IOException), он обязан явно объявить это с помощью throws. Это требование — не от JVM, а от компилятора. Компилятор жёстко следит за декларациями, но вот JVM — нет. Что создаёт любопытную лазейку: обойти компилятор, оставаясь при этом в рамках спецификации JVM.
Сегодня разберёмся, как это сделать с помощью
Unsafe.throwException(), почему это вообще работает, где это может пригодиться, и на что стоит обратить внимание при использовании Java 17, 21 и 24.Читать: https://habr.com/ru/companies/otus/articles/897384/?utm_campaign=897384
@a_cup_of_java | Другие наши каналы
Java Digest #23
Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Константин, Константин и Роман. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
В этом выпуске будет много релизов, один из них — новый майлстоун Spring 7.0.0, а еще — новые версии Quarkus и Kora. Снова узнаем, как сделать Spring быстрее, вспомним старые хорошие доклады в новом формате и посмотрим на фичи Java 24 на примере крестиков-ноликов.
Читать: https://habr.com/ru/companies/tbank/articles/898284/?utm_campaign=898284
@a_cup_of_java | Другие наши каналы
Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Константин, Константин и Роман. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
В этом выпуске будет много релизов, один из них — новый майлстоун Spring 7.0.0, а еще — новые версии Quarkus и Kora. Снова узнаем, как сделать Spring быстрее, вспомним старые хорошие доклады в новом формате и посмотрим на фичи Java 24 на примере крестиков-ноликов.
Читать: https://habr.com/ru/companies/tbank/articles/898284/?utm_campaign=898284
@a_cup_of_java | Другие наши каналы
👍2
Компилируем компилятор или ускоряем javac вдвое
Ну блин короче :)
Знаете ли вы, куда уходит время и ресурсы при сборке проектов на Java? Сейчас покажем и расскажем, как сберечь время, нервы и кофе.
Мы ускорили
Читать: https://habr.com/ru/companies/axiomjdk/articles/898460/?utm_campaign=898460
@a_cup_of_java | Другие наши каналы
Ну блин короче :)
Знаете ли вы, куда уходит время и ресурсы при сборке проектов на Java? Сейчас покажем и расскажем, как сберечь время, нервы и кофе.
Мы ускорили
javac вдвое и теперь можно экономить на сборке.Читать: https://habr.com/ru/companies/axiomjdk/articles/898460/?utm_campaign=898460
@a_cup_of_java | Другие наши каналы
Какие есть паттерны в React и для чего они нужны: часть 1
В этой части Юсуп Изрипов рассказывает, что такое Container & Presentational Components, Higher-Order Component (HOC) и паттерн Render Props в React и что с ними делать.
Читать: «Какие есть паттерны в React и для чего они нужны: часть 1»
@a_cup_of_java | Другие наши каналы
В этой части Юсуп Изрипов рассказывает, что такое Container & Presentational Components, Higher-Order Component (HOC) и паттерн Render Props в React и что с ними делать.
Читать: «Какие есть паттерны в React и для чего они нужны: часть 1»
@a_cup_of_java | Другие наши каналы
🗿1
Узнаём какое аниме будет самым рейтинговым еще до выхода
Когда встал вопрос "о чем писать диплом", я точно знала, что не хочу писать о чем-то скучном или не интересным для меня. Было много идеи (не только про аниме) и даже в сфере аниме - не только про задачу прогнозирования. Когда уже надо было утверждать тему, на одной из лекции как раз рассказывали про задачи классификации и прогнозирования. Я знала, что уже есть вагон и маленькая тележка статей про прогнозирование в области фильмов, но в аниме? Критически мало. И я решила это исправить)
Читать: https://habr.com/ru/articles/898856/?utm_campaign=898856
@a_cup_of_java | Другие наши каналы
Когда встал вопрос "о чем писать диплом", я точно знала, что не хочу писать о чем-то скучном или не интересным для меня. Было много идеи (не только про аниме) и даже в сфере аниме - не только про задачу прогнозирования. Когда уже надо было утверждать тему, на одной из лекции как раз рассказывали про задачи классификации и прогнозирования. Я знала, что уже есть вагон и маленькая тележка статей про прогнозирование в области фильмов, но в аниме? Критически мало. И я решила это исправить)
Читать: https://habr.com/ru/articles/898856/?utm_campaign=898856
@a_cup_of_java | Другие наши каналы
SBOM в Spring Boot: от генерации до анализа уязвимостей
Команда Spring АйО перевела статью, которая расскажет вам, как правильно использовать SBOM файлы в Spring Boot для проверок безопасности приложений. Статья содержит примеры кода и выводимых при проверке данных, а также помогает правильно трактовать эти данные.
Читать: https://habr.com/ru/companies/spring_aio/articles/899018/?utm_campaign=899018
@a_cup_of_java | Другие наши каналы
Команда Spring АйО перевела статью, которая расскажет вам, как правильно использовать SBOM файлы в Spring Boot для проверок безопасности приложений. Статья содержит примеры кода и выводимых при проверке данных, а также помогает правильно трактовать эти данные.
Читать: https://habr.com/ru/companies/spring_aio/articles/899018/?utm_campaign=899018
@a_cup_of_java | Другие наши каналы
Какие есть паттерны в React и для чего они нужны: часть 2
В этой части Юсуп Изрипов рассказывает, что такое хуки и кастомные хуки, а также про Compound Components и Серверные компоненты и Suspense.
Читать: «Какие есть паттерны в React и для чего они нужны: часть 2»
@a_cup_of_java | Другие наши каналы
В этой части Юсуп Изрипов рассказывает, что такое хуки и кастомные хуки, а также про Compound Components и Серверные компоненты и Suspense.
Читать: «Какие есть паттерны в React и для чего они нужны: часть 2»
@a_cup_of_java | Другие наши каналы
Spring Boot 3.3 и Docker: изменение в эффективных docker-образах
Переход от Spring Boot 3.2 к 3.3 принес изменения в процесс распаковки JAR и запуск приложения в Docker-контейнере.
В новой статье от Рустама Курамшина, эксперта сообщества Spring АйО, вы узнаете:
• что именно изменилось
• как это отразится на создании Dockerfile
• и как адаптировать проекты к новым условиям
Читать: https://habr.com/ru/companies/spring_aio/articles/898912/?utm_campaign=898912
@a_cup_of_java | Другие наши каналы
Переход от Spring Boot 3.2 к 3.3 принес изменения в процесс распаковки JAR и запуск приложения в Docker-контейнере.
В новой статье от Рустама Курамшина, эксперта сообщества Spring АйО, вы узнаете:
• что именно изменилось
• как это отразится на создании Dockerfile
• и как адаптировать проекты к новым условиям
Читать: https://habr.com/ru/companies/spring_aio/articles/898912/?utm_campaign=898912
@a_cup_of_java | Другие наши каналы
🔥3❤1
Memory Maps и настройки Kafka или как положить весь кластер разом
Добрый день! Меня зовут Богдан, я тимлид в одном из отечественных финтехов. Сегодня я хочу поделиться нашей историей: как нам удалось, ненарочно, зашедулить падение всех нод одного из наших кластеров Kafka.
В один из холодных февральских дней пришло сообщение от мониторинга с виртуальных машин кластера Kafka: «Свободное дисковое пространство достигло значения < 15%». Было решено исследовать, нужно ли добавлять дискового пространства или же можно потюнить настройки ретеншена данных.
Тут стоит немного вспомнить теорию. Как известно, в Kafka сообщения распределяются по партициям, а каждая партиция на брокере представлена набором сегментов. Число сегментов у партиций может быть разным — оно варьируется в зависимости от интенсивности записи и настроек размера сегмента.
Сегмент (если упростить) — это лог-файл, в который просто пишутся данные в конец. По достижении временного предела либо его размера он ротируется: создается новый сегмент, и запись идет уже в него.
Держа вышесказанное в голове, мы отправились смотреть настройки хранения сегментов в нашем кластере Kafka..
Читать: https://habr.com/ru/articles/900094/?utm_campaign=900094
@a_cup_of_java | Другие наши каналы
Добрый день! Меня зовут Богдан, я тимлид в одном из отечественных финтехов. Сегодня я хочу поделиться нашей историей: как нам удалось, ненарочно, зашедулить падение всех нод одного из наших кластеров Kafka.
В один из холодных февральских дней пришло сообщение от мониторинга с виртуальных машин кластера Kafka: «Свободное дисковое пространство достигло значения < 15%». Было решено исследовать, нужно ли добавлять дискового пространства или же можно потюнить настройки ретеншена данных.
Тут стоит немного вспомнить теорию. Как известно, в Kafka сообщения распределяются по партициям, а каждая партиция на брокере представлена набором сегментов. Число сегментов у партиций может быть разным — оно варьируется в зависимости от интенсивности записи и настроек размера сегмента.
Сегмент (если упростить) — это лог-файл, в который просто пишутся данные в конец. По достижении временного предела либо его размера он ротируется: создается новый сегмент, и запись идет уже в него.
Держа вышесказанное в голове, мы отправились смотреть настройки хранения сегментов в нашем кластере Kafka..
Читать: https://habr.com/ru/articles/900094/?utm_campaign=900094
@a_cup_of_java | Другие наши каналы
☃2
Проблемы, которых у меня больше нет, потому что я использую рендеринг на стороне сервера
Новый перевод от команды Spring АйО расскажет вам, каких проблем можно избежать, если пользоваться подходом “Рендеринг на стороне сервера” и в чем преимущества такого подхода в целом по сравнению с подходом Single Page Application.
Читать: https://habr.com/ru/companies/spring_aio/articles/899832/?utm_campaign=899832
@a_cup_of_java | Другие наши каналы
Новый перевод от команды Spring АйО расскажет вам, каких проблем можно избежать, если пользоваться подходом “Рендеринг на стороне сервера” и в чем преимущества такого подхода в целом по сравнению с подходом Single Page Application.
Читать: https://habr.com/ru/companies/spring_aio/articles/899832/?utm_campaign=899832
@a_cup_of_java | Другие наши каналы
React и RTK Query — новый лёгкий путь для redux?
Разбираемся, как упростить запросы в react-redux с помощью redux toolkit. Пишем облегченные запросы с RTK query. Подойдет ли для всего?
Читать: «React и RTK Query — новый лёгкий путь для redux?»
@a_cup_of_java | Другие наши каналы
Разбираемся, как упростить запросы в react-redux с помощью redux toolkit. Пишем облегченные запросы с RTK query. Подойдет ли для всего?
Читать: «React и RTK Query — новый лёгкий путь для redux?»
@a_cup_of_java | Другие наши каналы
Основы ООП для Java-разработчиков
Хотите освоить объектно-ориентированное программирование на Java? Статья предлагает понимание ключевых концепций ООП: абстракция, инкапсуляция, наследование и полиморфизм. Также рассматриваются методы практического изучения через задачи на Codemia.io. Узнайте, как это поможет вам стать мастером Java! 🎓 Бесплатные курсы Java и другой IT-инфо
Если вы хотите бесплатно изучить Java, DSA, SQL, Linux или Docker, есть возможность прыжка в мир знаний! Также доступны уроки по ООП для изучения таких тем, как наследование, полиморфизм и многое другое. Узнайте, как улучшить навыки программирования и подготовиться к собеседованиям.
Подробности: http://www.java67.com/2016/09/oops-concept-tutorial-in-java-object-oriented-programming.html
#en
@a_cup_of_java | Другие наши каналы
Хотите освоить объектно-ориентированное программирование на Java? Статья предлагает понимание ключевых концепций ООП: абстракция, инкапсуляция, наследование и полиморфизм. Также рассматриваются методы практического изучения через задачи на Codemia.io. Узнайте, как это поможет вам стать мастером Java! 🎓 Бесплатные курсы Java и другой IT-инфо
Если вы хотите бесплатно изучить Java, DSA, SQL, Linux или Docker, есть возможность прыжка в мир знаний! Также доступны уроки по ООП для изучения таких тем, как наследование, полиморфизм и многое другое. Узнайте, как улучшить навыки программирования и подготовиться к собеседованиям.
Подробности: http://www.java67.com/2016/09/oops-concept-tutorial-in-java-object-oriented-programming.html
#en
@a_cup_of_java | Другие наши каналы
🔍 QCon London 2025: Главные итоги первого дня
Первый день QCon London 2025 порадовал обсуждениями о продуктивности разработчиков, платформенной экосистеме и локальных приложениях. Главный доклад о данных из космоса представил д-р Кеннет Харрис, разбирая работу инфракрасного излучения в телескопе Джеймса Уэбба.
Подробности: https://www.infoq.com/news/2025/04/day-one-qcon-london-2025/
#en
@a_cup_of_java | Другие наши каналы
Первый день QCon London 2025 порадовал обсуждениями о продуктивности разработчиков, платформенной экосистеме и локальных приложениях. Главный доклад о данных из космоса представил д-р Кеннет Харрис, разбирая работу инфракрасного излучения в телескопе Джеймса Уэбба.
Подробности: https://www.infoq.com/news/2025/04/day-one-qcon-london-2025/
#en
@a_cup_of_java | Другие наши каналы
GRASP: почему настоящая архитектура начинается не с SOLID
Хочу начать с личной предыстории.
Давным-давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие.
Также не обошли меня и классические принципы проектирования — SOLID, KISS, DRY — и, думаю, каждый читатель добавит сюда свои.
Безусловно, это всё важные и фундаментальные вещи.
Но однажды на горизонте появилось DDD — предметно-ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления.
Позже я открыл и «красную книгу» Вона Вернона, где DDD уже рассматривался с точки зрения практической имплементации: архитектура, код, реальные подходы в проектах.
Читая Эванса, рассматривая его диаграммы классов и примеры кода, я всё думал: как он это делает?
Самым большим открытием для меня стало то, что книга DDD хоть и показывает стратегические и тактические приёмы — агрегаты, объекты-значения, спецификации, фабрики и т.д. — но не учит проектировать саму предметную область.
Складывалось ощущение, что мы это уже откуда-то должны были знать.
А откуда — остаётся загадкой.
Читать: https://habr.com/ru/articles/900140/?utm_campaign=900140
@a_cup_of_java | Другие наши каналы
Хочу начать с личной предыстории.
Давным-давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие.
Также не обошли меня и классические принципы проектирования — SOLID, KISS, DRY — и, думаю, каждый читатель добавит сюда свои.
Безусловно, это всё важные и фундаментальные вещи.
Но однажды на горизонте появилось DDD — предметно-ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления.
Позже я открыл и «красную книгу» Вона Вернона, где DDD уже рассматривался с точки зрения практической имплементации: архитектура, код, реальные подходы в проектах.
Читая Эванса, рассматривая его диаграммы классов и примеры кода, я всё думал: как он это делает?
Самым большим открытием для меня стало то, что книга DDD хоть и показывает стратегические и тактические приёмы — агрегаты, объекты-значения, спецификации, фабрики и т.д. — но не учит проектировать саму предметную область.
Складывалось ощущение, что мы это уже откуда-то должны были знать.
А откуда — остаётся загадкой.
Читать: https://habr.com/ru/articles/900140/?utm_campaign=900140
@a_cup_of_java | Другие наши каналы
❤🔥3🔥1
Разработка навыка Яндекс Алисы для удалённого управления компьютером
В этой статье будет показано, как разработать навык для Яндекс Алисы, позволяющий удалённо управлять компьютером. Для реализации мы будем использовать языки Kotlin и Java.
Мне такой навык понадобился для управления медиаплеером — например, чтобы ставить видео на паузу, регулировать громкость, переключать треки или видео, перематывать назад или вперёд, открывать определённые фильмы на Кинопоиске. Я часто использую компьютер как телевизор, и возможность голосового управления делает использование гораздо удобнее.
Читать: https://habr.com/ru/articles/900450/?utm_campaign=900450
@a_cup_of_java | Другие наши каналы
В этой статье будет показано, как разработать навык для Яндекс Алисы, позволяющий удалённо управлять компьютером. Для реализации мы будем использовать языки Kotlin и Java.
Мне такой навык понадобился для управления медиаплеером — например, чтобы ставить видео на паузу, регулировать громкость, переключать треки или видео, перематывать назад или вперёд, открывать определённые фильмы на Кинопоиске. Я часто использую компьютер как телевизор, и возможность голосового управления делает использование гораздо удобнее.
Читать: https://habr.com/ru/articles/900450/?utm_campaign=900450
@a_cup_of_java | Другие наши каналы
👍2👎1
Тест: Какой язык программирования тебе подходит
Пройди наш квиз и проверь, какой язык программирования тебе подходит больше всего. Проверь свои текущие знания и выбирай новое направление!
Читать: «Тест: Какой язык программирования тебе подходит»
@a_cup_of_java | Другие наши каналы
Пройди наш квиз и проверь, какой язык программирования тебе подходит больше всего. Проверь свои текущие знания и выбирай новое направление!
Читать: «Тест: Какой язык программирования тебе подходит»
@a_cup_of_java | Другие наши каналы
🔍 Новинки Java: важнейшие обновления на апрель 2025
Обзор свежих релизов: WildFly 36, который поддерживает MicroProfile 7.0, Spring AI 1.0 с модульной архитектурой, и бета Open Liberty. Также новости Jakarta EE с подготовкой к выпуску новой платформы. Узнайте больше об изменениях и нововведениях в мире Java!
Подробности: https://www.infoq.com/news/2025/04/java-news-roundup-apr07-2025/
#en
@a_cup_of_java | Другие наши каналы
Обзор свежих релизов: WildFly 36, который поддерживает MicroProfile 7.0, Spring AI 1.0 с модульной архитектурой, и бета Open Liberty. Также новости Jakarta EE с подготовкой к выпуску новой платформы. Узнайте больше об изменениях и нововведениях в мире Java!
Подробности: https://www.infoq.com/news/2025/04/java-news-roundup-apr07-2025/
#en
@a_cup_of_java | Другие наши каналы