На GitHub выложили исходный код алгоритма рекомендаций X. Разобрались, что там внутри
X выложила на GitHub исходный код алгоритма рекомендаций. Внутри — Scala, Java, Rust и ML-модели для ранжирования твитов, поиска и уведомлений
Читать: «На GitHub выложили исходный код алгоритма рекомендаций X. Разобрались, что там внутри»
@a_cup_of_java | Другие наши каналы
X выложила на GitHub исходный код алгоритма рекомендаций. Внутри — Scala, Java, Rust и ML-модели для ранжирования твитов, поиска и уведомлений
Читать: «На GitHub выложили исходный код алгоритма рекомендаций X. Разобрались, что там внутри»
@a_cup_of_java | Другие наши каналы
Нововведения Java 25
Java не стоит на месте и продолжает активно развиваться. Скоро выйдет уже 25-я версия языка. В этом релизе изменили работу с boilerplate-кодом и конструкторами, а также отказались от поддержки устаревших систем. Обо всех этих и других нововведениях расскажем в статье.
Читать: https://habr.com/ru/companies/pvs-studio/articles/945626/?utm_campaign=945626
@a_cup_of_java | Другие наши каналы
Java не стоит на месте и продолжает активно развиваться. Скоро выйдет уже 25-я версия языка. В этом релизе изменили работу с boilerplate-кодом и конструкторами, а также отказались от поддержки устаревших систем. Обо всех этих и других нововведениях расскажем в статье.
Читать: https://habr.com/ru/companies/pvs-studio/articles/945626/?utm_campaign=945626
@a_cup_of_java | Другие наши каналы
Пять производительных паттернов кэширования, которые ускорят ваш микросервис
В современных микросервисных архитектурах кэширование играет ключевую роль в обеспечении высокой производительности, масштабируемости и отказоустойчивости систем. Правильное применение паттернов кэширования позволяет значительно снизить нагрузку на базы данных, уменьшить время отклика и повысить общую пропускную способность системы.
Читать: https://habr.com/ru/companies/otus/articles/945604/?utm_campaign=945604
@a_cup_of_java | Другие наши каналы
В современных микросервисных архитектурах кэширование играет ключевую роль в обеспечении высокой производительности, масштабируемости и отказоустойчивости систем. Правильное применение паттернов кэширования позволяет значительно снизить нагрузку на базы данных, уменьшить время отклика и повысить общую пропускную способность системы.
Читать: https://habr.com/ru/companies/otus/articles/945604/?utm_campaign=945604
@a_cup_of_java | Другие наши каналы
Как мы создали курс по разработке мобильных игр, в котором Java оживает, а наставник становится другом
В этом году мы запустили новую образовательную программу «Разработка мобильных игр» для школьников 8–9 классов — и она получилась по-настоящему особенной. Это не просто очередной курс по программированию или геймдеву: мы объединили код, персонажей, физику и истории в одно целое, сделав обучение настоящим приключением. Вместо сухих лекций, ребята начинают стажировку в виртуальной гейм-студии, где их сопровождает наставник Максим. Он не просто рассказывает про программирование, а делится эмоциями, личными историями и шутками про баги. Объясняет сложные вещи «на пальцах», вместе с учениками разбирает задачки и отвечает на вопросы в формате встреч (лонгридов) с примерами кода и иллюстрациями. Такая история «по ту сторону экрана» сильно вовлекает учеников: сторителлинг помогает им лучше усваивать материал и понимать, зачем всё это нужно.
Читать: https://habr.com/ru/companies/samsung/articles/946020/?utm_campaign=946020
@a_cup_of_java | Другие наши каналы
В этом году мы запустили новую образовательную программу «Разработка мобильных игр» для школьников 8–9 классов — и она получилась по-настоящему особенной. Это не просто очередной курс по программированию или геймдеву: мы объединили код, персонажей, физику и истории в одно целое, сделав обучение настоящим приключением. Вместо сухих лекций, ребята начинают стажировку в виртуальной гейм-студии, где их сопровождает наставник Максим. Он не просто рассказывает про программирование, а делится эмоциями, личными историями и шутками про баги. Объясняет сложные вещи «на пальцах», вместе с учениками разбирает задачки и отвечает на вопросы в формате встреч (лонгридов) с примерами кода и иллюстрациями. Такая история «по ту сторону экрана» сильно вовлекает учеников: сторителлинг помогает им лучше усваивать материал и понимать, зачем всё это нужно.
Читать: https://habr.com/ru/companies/samsung/articles/946020/?utm_campaign=946020
@a_cup_of_java | Другие наши каналы
Pro Деньги. JSR-354
Достаточно часто в реализации сервисов есть необходимость оперировать денежными единицами, хранить их в БД, обмениваться по API и выполнять конвертацию
Читать: https://habr.com/ru/articles/946108/?utm_campaign=946108
@a_cup_of_java | Другие наши каналы
Достаточно часто в реализации сервисов есть необходимость оперировать денежными единицами, хранить их в БД, обмениваться по API и выполнять конвертацию
Читать: https://habr.com/ru/articles/946108/?utm_campaign=946108
@a_cup_of_java | Другие наши каналы
Баги носят данные. Проверка Apache NiFi
Сбор, обработка и перемещение данных — ключевые процессы в IT. Но что, если они нарушатся из-за коварных багов в коде? Рассказываем об ошибках, найденных статическим анализатором в проекте Apache NiFi.
Читать: https://habr.com/ru/companies/pvs-studio/articles/946266/?utm_campaign=946266
@a_cup_of_java | Другие наши каналы
Сбор, обработка и перемещение данных — ключевые процессы в IT. Но что, если они нарушатся из-за коварных багов в коде? Рассказываем об ошибках, найденных статическим анализатором в проекте Apache NiFi.
Читать: https://habr.com/ru/companies/pvs-studio/articles/946266/?utm_campaign=946266
@a_cup_of_java | Другие наши каналы
Maven: verify или clean install?
Если вы автоматически пишете
В новом переводе от команды Spring АйО мы погрузимся в детали жизненного цикла Maven, поведение реактора, инкрементные сборки и подводные камни использования
Читать: https://habr.com/ru/companies/spring_aio/articles/946410/?utm_campaign=946410
@a_cup_of_java | Другие наши каналы
Если вы автоматически пишете
mvn clean install при сборке проекта, то вы такой точно не один — эта команда прочно укоренилась в привычке Java-разработчиков. Но действительно ли она всегда необходима? Что, если вместо неё использовать verify?В новом переводе от команды Spring АйО мы погрузимся в детали жизненного цикла Maven, поведение реактора, инкрементные сборки и подводные камни использования
clean и install. А главное — попробуем понять, когда можно (и нужно) обойтись без install и clean, чтобы ускорить сборку и сократить расходы памяти.Читать: https://habr.com/ru/companies/spring_aio/articles/946410/?utm_campaign=946410
@a_cup_of_java | Другие наши каналы
Как мы сократили время доставки кода в 40 раз, или Непрерывная поставка в действии
Как сократить доставку кода в 40 раз: опыт CI/CD
Читать: https://tprg.ru/JEq8
@a_cup_of_java | Другие наши каналы
Как сократить доставку кода в 40 раз: опыт CI/CD
Читать: https://tprg.ru/JEq8
@a_cup_of_java | Другие наши каналы
🗿2
JEP 502 — Stable Values. Новая фича из Java 25
Не final едины: StableValue в Java 25.
Stable Values - новая возможность, которая появится в Java 25 — следующем LTS-релизе, намеченном на сентябрь.
Читать: https://habr.com/ru/articles/946682/?utm_campaign=946682
@a_cup_of_java | Другие наши каналы
Не final едины: StableValue в Java 25.
Stable Values - новая возможность, которая появится в Java 25 — следующем LTS-релизе, намеченном на сентябрь.
Читать: https://habr.com/ru/articles/946682/?utm_campaign=946682
@a_cup_of_java | Другие наши каналы
Новые возможности Java: JDK 26 готовит поддержку HTTP/3 и улучшения сборщика мусора G1. Spring Framework обновляется с новыми функциями, Open Liberty усиливает безопасность, а TornadoVM теперь поддерживает запуск моделей ИИ на GPU. JBang получает улучшения и поддержку fish shell.
Подробности: https://www.infoq.com/news/2025/09/java-news-roundup-sep08-2025/
#en
@a_cup_of_java | Другие наши каналы
Подробности: https://www.infoq.com/news/2025/09/java-news-roundup-sep08-2025/
#en
@a_cup_of_java | Другие наши каналы
❤1
Spring Security для начинающих: конспект от аутентификации до JWT
На Хабре уже много статей про Spring Security — от кратких заметок до глубоких разборов. В этой статье я решил собрать всё в формате конспект-мануала, который можно читать как пошаговое введение: от базовой аутентификации и фильтров до JWT и OAuth2. Это материал, собранный по официальной документации и дополненный разъяснениями «на простом языке». Я не работал в больших enterprise-командах, поэтому буду рад комментариям и советам от более опытных коллег. Местами я использовал помощь ChatGPT: он помог структурировать материал и сделать стиль более читабельным, ближе к документации.
Читать: https://habr.com/ru/articles/946912/?utm_campaign=946912
@a_cup_of_java | Другие наши каналы
На Хабре уже много статей про Spring Security — от кратких заметок до глубоких разборов. В этой статье я решил собрать всё в формате конспект-мануала, который можно читать как пошаговое введение: от базовой аутентификации и фильтров до JWT и OAuth2. Это материал, собранный по официальной документации и дополненный разъяснениями «на простом языке». Я не работал в больших enterprise-командах, поэтому буду рад комментариям и советам от более опытных коллег. Местами я использовал помощь ChatGPT: он помог структурировать материал и сделать стиль более читабельным, ближе к документации.
Читать: https://habr.com/ru/articles/946912/?utm_campaign=946912
@a_cup_of_java | Другие наши каналы
Как получить и использовать бесплатную лицензию PVS-Studio на практике. Часть 1: подготовка и начало работы
Многие разработчики слышали о статическом анализаторе PVS-Studio, но не все знают, что анализатор можно использовать бесплатно на постоянной основе. В этой статье мы разберём, какие существуют варианты бесплатного лицензирования, для кого они подходят и как начать пользоваться инструментом.
Читать: https://habr.com/ru/companies/pvs-studio/articles/947098/?utm_campaign=947098
@a_cup_of_java | Другие наши каналы
Многие разработчики слышали о статическом анализаторе PVS-Studio, но не все знают, что анализатор можно использовать бесплатно на постоянной основе. В этой статье мы разберём, какие существуют варианты бесплатного лицензирования, для кого они подходят и как начать пользоваться инструментом.
Читать: https://habr.com/ru/companies/pvs-studio/articles/947098/?utm_campaign=947098
@a_cup_of_java | Другие наши каналы
Возвращение LTS: ты не пройдёшь… мимо новых фич Java 25
В одной из моих предыдущих статей я писал о фичах между LTS-версиями Java 17 и 21. Сегодня, два года спустя (Как?! Уже два года?!), выходит новый LTS-релиз — Java 25.
Подавляющее большинство проектов пропускают промежуточные релизы и используют только LTS-версии Java. Так что давайте посмотрим, какие возможности новая LTS-версия (Java 25) приносит по сравнению с предыдущей LTS-версией (Java 21).
Читать: https://habr.com/ru/companies/T1Holding/articles/946778/?utm_campaign=946778
@a_cup_of_java | Другие наши каналы
В одной из моих предыдущих статей я писал о фичах между LTS-версиями Java 17 и 21. Сегодня, два года спустя (Как?! Уже два года?!), выходит новый LTS-релиз — Java 25.
Подавляющее большинство проектов пропускают промежуточные релизы и используют только LTS-версии Java. Так что давайте посмотрим, какие возможности новая LTS-версия (Java 25) приносит по сравнению с предыдущей LTS-версией (Java 21).
Читать: https://habr.com/ru/companies/T1Holding/articles/946778/?utm_campaign=946778
@a_cup_of_java | Другие наши каналы
OWASP Top Ten 2021 через простые примеры на Java. И немного про SAST
В этой статье мы расскажем про категории OWASP Top Ten 2021 через призму срабатываний Java анализатора PVS-Studio. Так что, если у вас есть желание посмотреть на возможные паттерны уязвимостей в Java коде или узнать, что из себя представляют категории OWASP Top Ten, приятного чтения!
Читать: https://habr.com/ru/companies/pvs-studio/articles/947332/?utm_campaign=947332
@a_cup_of_java | Другие наши каналы
В этой статье мы расскажем про категории OWASP Top Ten 2021 через призму срабатываний Java анализатора PVS-Studio. Так что, если у вас есть желание посмотреть на возможные паттерны уязвимостей в Java коде или узнать, что из себя представляют категории OWASP Top Ten, приятного чтения!
Читать: https://habr.com/ru/companies/pvs-studio/articles/947332/?utm_campaign=947332
@a_cup_of_java | Другие наши каналы
Трейсинг в hh.ru: как мы выросли от 1 тысячи до 1 миллиона событий в секунду без семплирования
В каждой компании есть необходимость выстроить систему observability. В hh.ru мы перестраивали архитектуру под большее количество данных несколько раз — сейчас имеем на входе 24к RPS, 1 миллион спанов в секунду, 5к инстансов сервисов. Если вы — инженер, который находится в процессе построения или перестройки собственной системы трейсинга, этот доклад — для вас.
Привет, Хабр! Я — Александр Казанцев, уже более десяти лет в разработке. Когда-то был инженером на пивзаводе и могу рассказать, из чего делают пенное; но сегодня — о другом.
Читать: https://habr.com/ru/companies/hh/articles/939754/?utm_campaign=939754
@a_cup_of_java | Другие наши каналы
В каждой компании есть необходимость выстроить систему observability. В hh.ru мы перестраивали архитектуру под большее количество данных несколько раз — сейчас имеем на входе 24к RPS, 1 миллион спанов в секунду, 5к инстансов сервисов. Если вы — инженер, который находится в процессе построения или перестройки собственной системы трейсинга, этот доклад — для вас.
Привет, Хабр! Я — Александр Казанцев, уже более десяти лет в разработке. Когда-то был инженером на пивзаводе и могу рассказать, из чего делают пенное; но сегодня — о другом.
Читать: https://habr.com/ru/companies/hh/articles/939754/?utm_campaign=939754
@a_cup_of_java | Другие наши каналы
Java 25 выходит уже сегодня
Четверть века назад язык, придуманный для «умных тостеров», стал символом корпоративного софта и огромных систем. Сегодня Java продолжает эволюционировать, и каждая новая версия всё сильнее ломает стереотип о «тяжёлом корпоративном динозавре».
Встречайте 25 версию Java вместе с командой Spring АйО!
Читать: https://habr.com/ru/companies/spring_aio/articles/947420/?utm_campaign=947420
@a_cup_of_java | Другие наши каналы
Четверть века назад язык, придуманный для «умных тостеров», стал символом корпоративного софта и огромных систем. Сегодня Java продолжает эволюционировать, и каждая новая версия всё сильнее ломает стереотип о «тяжёлом корпоративном динозавре».
Встречайте 25 версию Java вместе с командой Spring АйО!
Читать: https://habr.com/ru/companies/spring_aio/articles/947420/?utm_campaign=947420
@a_cup_of_java | Другие наши каналы
Java 25 — новый LTS-релиз с акцентом на производительность и стабильность. Включает 18 JEP, из которых 7 финализированы, а 9 сосредоточены на улучшении работы JVM и ускорении запуска приложений. Поддержка HTTP/3 и улучшения в JDK 26 уже на горизонте.
Подробности: https://www.infoq.com/news/2025/09/java25-released/
#en
@a_cup_of_java | Другие наши каналы
Подробности: https://www.infoq.com/news/2025/09/java25-released/
#en
@a_cup_of_java | Другие наши каналы
Не LLM едиными: генерируем юнит-тесты из реального исполнения на лету
Представьте себе: вы отлаживаете новый баг в сложном многослойном приложении (например, на Spring). Чтобы воспроизвести проблему, приходится взаимодействовать со всей системой end-to-end: отправлять запрос на эндпоинт или что-то кликать в UI. Юнит-теста, который бы изолировал нежелательное поведение до уровня злополучного сервиса или утилиты, нет. А хотелось бы, чтобы он был: во-первых, воспроизводить баг было бы проще (особенно если UI кликает QA, а не вы), а во-вторых, его потом можно было бы легко превратить в регрессионный и улучшить стабильность системы.
Тем временем все данные, нужные для воспроизведения бага в изоляции, есть. В окне отладчика видно, что приходит в метод, и в каком состоянии находится сервис перед тем, как все пойдёт не так. Мы в Explyt RnD решили, что нечего добру пропадать, и научились перехватывать это состояние, а потом генерировать юнит-тест, который в точности его воспроизводит.
Сегодня расскажу о пройденном исследовательском пути, о том, как попробовать нашу экспериментальную фичу в плагине для IntelliJ IDEA, и о том, что у неё под капотом (спойлер: не только LLM).
Читать: https://habr.com/ru/companies/explyt/articles/947856/?utm_campaign=947856
@a_cup_of_java | Другие наши каналы
Представьте себе: вы отлаживаете новый баг в сложном многослойном приложении (например, на Spring). Чтобы воспроизвести проблему, приходится взаимодействовать со всей системой end-to-end: отправлять запрос на эндпоинт или что-то кликать в UI. Юнит-теста, который бы изолировал нежелательное поведение до уровня злополучного сервиса или утилиты, нет. А хотелось бы, чтобы он был: во-первых, воспроизводить баг было бы проще (особенно если UI кликает QA, а не вы), а во-вторых, его потом можно было бы легко превратить в регрессионный и улучшить стабильность системы.
Тем временем все данные, нужные для воспроизведения бага в изоляции, есть. В окне отладчика видно, что приходит в метод, и в каком состоянии находится сервис перед тем, как все пойдёт не так. Мы в Explyt RnD решили, что нечего добру пропадать, и научились перехватывать это состояние, а потом генерировать юнит-тест, который в точности его воспроизводит.
Сегодня расскажу о пройденном исследовательском пути, о том, как попробовать нашу экспериментальную фичу в плагине для IntelliJ IDEA, и о том, что у неё под капотом (спойлер: не только LLM).
Читать: https://habr.com/ru/companies/explyt/articles/947856/?utm_campaign=947856
@a_cup_of_java | Другие наши каналы
❤3
WebAssembly 3.0 добрался до браузеров: 64-битная память, сборщик мусора и настоящие исключения
WebAssembly 3.0 уже работает в браузерах: 64-битная память, полноценный GC, система исключений и новые инструменты для языков
Читать: «WebAssembly 3.0 добрался до браузеров: 64-битная память, сборщик мусора и настоящие исключения»
@a_cup_of_java | Другие наши каналы
WebAssembly 3.0 уже работает в браузерах: 64-битная память, полноценный GC, система исключений и новые инструменты для языков
Читать: «WebAssembly 3.0 добрался до браузеров: 64-битная память, сборщик мусора и настоящие исключения»
@a_cup_of_java | Другие наши каналы
Андроид всё еще не готов к RAW-видео
Уверен, что многих возмутит уже само название этой статьи. А некоторые сразу же побегут в комментарии указывать на приложение, которое “смогло”. Но не стоит спешить, друзья!
Сегодня вам предстоит увлекательное путешествие по стыку технологий, кода и технических решений, которые и расскажут вам то, о чем адепты съемки мобильного RAW-видео предпочитают не говорить.
Читать: https://habr.com/ru/articles/947578/?utm_campaign=947578
@a_cup_of_java | Другие наши каналы
Уверен, что многих возмутит уже само название этой статьи. А некоторые сразу же побегут в комментарии указывать на приложение, которое “смогло”. Но не стоит спешить, друзья!
Сегодня вам предстоит увлекательное путешествие по стыку технологий, кода и технических решений, которые и расскажут вам то, о чем адепты съемки мобильного RAW-видео предпочитают не говорить.
Читать: https://habr.com/ru/articles/947578/?utm_campaign=947578
@a_cup_of_java | Другие наши каналы
Чем хорош Postgres 18?
PostgreSQL 18 вот-вот выйдет, и это не просто минорное обновление, а настоящий прорыв для разработчиков и администраторов БД. В новом переводе от команды Spring АйО рассмотрим ключевые новинки — асинхронный I/O для ускорения чтения, поддержка UUID версии 7 с улучшенной сортировкой, skip scans в B-tree индексах, виртуальные вычисляемые столбцы и даже OAUTH 2.0 для аутентификации. Всё это делает Postgres ещё более быстрым, гибким и современным.
Читать: https://habr.com/ru/companies/spring_aio/articles/948068/?utm_campaign=948068
@a_cup_of_java | Другие наши каналы
PostgreSQL 18 вот-вот выйдет, и это не просто минорное обновление, а настоящий прорыв для разработчиков и администраторов БД. В новом переводе от команды Spring АйО рассмотрим ключевые новинки — асинхронный I/O для ускорения чтения, поддержка UUID версии 7 с улучшенной сортировкой, skip scans в B-tree индексах, виртуальные вычисляемые столбцы и даже OAUTH 2.0 для аутентификации. Всё это делает Postgres ещё более быстрым, гибким и современным.
Читать: https://habr.com/ru/companies/spring_aio/articles/948068/?utm_campaign=948068
@a_cup_of_java | Другие наши каналы
👍1